6

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

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

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

谢谢!

4

2 回答 2

3

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

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

于 2011-02-05T10:48:32.787 回答
1

是的,连接被关闭。查看execute方法的代码:

JmsUtils.closeSession(sessionToClose);
ConnectionFactoryUtils.releaseConnection(
    conToClose, getConnectionFactory(), startConnection);
于 2010-11-02T05:54:13.570 回答