我写了一个在Glassfish中的Web服务中运行的JMS应用程序(也在JBoss中部署),我注意到在通过MessageListener MDP处理了几条消息之后,JMS服务器用完了连接!
使用Apache ActiveMQ和Glassfish内部JMS代理(openMQ?)
进行了尝试有没有办法检查为什么会这样?如果这是JmsTemplate的默认行为,那么以正确的方式开发JMS生产者和消费者的替代方法是什么?
谢谢!
答案 0 :(得分:3)
每次收到或发送消息时,Spring JMSTemplate将关闭并创建所有资源(Connections,Consumers,Producers ..)。 如果您不使用池化连接,会话,消费者......这将是一个巨大的性能瓶颈。
话虽如此,是的,JMSTemplate应该每次关闭你的连接。
答案 1 :(得分:1)
是的,连接已关闭。执行方法的See the code:
JmsUtils.closeSession(sessionToClose);
ConnectionFactoryUtils.releaseConnection(
conToClose, getConnectionFactory(), startConnection);