Spring JmsTemplate是否默认关闭连接?

时间:2010-11-01 23:58:46

标签: java spring jms jmstemplate

我写了一个在Glassfish中的Web服务中运行的JMS应用程序(也在JBoss中部署),我注意到在通过MessageListener MDP处理了几条消息之后,JMS服务器用完了连接!

使用Apache ActiveMQ和Glassfish内部JMS代理(openMQ?)

进行了尝试

有没有办法检查为什么会这样?如果这是JmsTemplate的默认行为,那么以正确的方式开发JMS生产者和消费者的替代方法是什么?

谢谢!

2 个答案:

答案 0 :(得分:3)

每次收到或发送消息时,Spring JMSTemplate将关闭并创建所有资源(Connections,Consumers,Producers ..)。 如果您不使用池化连接,会话,消费者......这将是一个巨大的性能瓶颈。

话虽如此,是的,JMSTemplate应该每次关闭你的连接。

答案 1 :(得分:1)

是的,连接已关闭。执行方法的See the code

JmsUtils.closeSession(sessionToClose);
ConnectionFactoryUtils.releaseConnection(
    conToClose, getConnectionFactory(), startConnection);