ActiveMQ JMS的connection用完是否关闭

[code="java"].......

ActiveMQConnectionFactory connectionFactory = new ActiveMQConnectionFactory(
ActiveMQConnection.DEFAULT_USER,
ActiveMQConnection.DEFAULT_PASSWORD, "tcp://127.0.0.1:61616");

        connection = connectionFactory.createConnection();
                connection.start();
......    

[/code]

如上所示,每个JMS像mq发送信息的时候都会依次建立connection,session.messsage,那这3个东西因该每次用的时候都去新建一个呢
还是一直开着呢?
希望有做高性能应用的朋友指教一下,谢谢!

设计思路是这样的,互相借鉴印证。
一般认为close就是断开连接,同时这个connection对象会被系统回收。
如果你从连接池里面拿连接,这时候由连接池检查connection是否有效。连接池不同,实现也不同,还是非常灵活的,你可以根据需要起一个后台线程定时检查活性(如果有必要)。
在网络通讯中tcp/ip协议是支持长连接的,只要不是故障,均可以长久保持。

MQ提供了基础的connection工厂,你可以基于这个工厂来实现连接池的功能。这样就达到了connection的复用了。
其实看看JDBC的使用就知道了,驱动不负责管理connection,connection由后面的c3p0等连接池去封装。