【问题标题】:Spring JmsTemplate and Apache ActiveMQ, why so many connections?Spring JmsTemplate 和 Apache ActiveMQ,为什么有这么多连接?
【发布时间】:2011-06-23 18:57:32
【问题描述】:

我有一个 Web 应用程序,一旦在 ActiveMQ 上收到一条消息,它就会在后台运行文本处理作业,该消息由 Spring MessageListener 侦听......我遇到的问题是,一旦我处理了大约 30 个背景作业,ActiveMQ 停止处理任何消息,Spring 消息侦听器失去其 JMS 连接,有时我在 ActiveMQ 日志中收到错误消息,指出打开的文件太多。

我在 Linux 上针对 ActiveMQ 进程运行了“lsof”(列出打开文件)命令,并注意到对于 JmsTemplate 排队/发布/接收的几乎每条消息,都会打开一个新连接。这正常吗?

这是我的配置:

<bean id="connectionFactory" class="org.springframework.jms.connection.CachingConnectionFactory">
    <constructor-arg ref="amqConnectionFactory" />
    <property name="exceptionListener" ref="jmsExceptionListener" />
    <property name="sessionCacheSize" value="100" />
</bean>

【问题讨论】:

    标签: spring jms activemq jmstemplate


    【解决方案1】:

    需要用到ActiveMQ提供的PooledConnectionFactory,可以看完整配置here。确保您也阅读了JmsTemplate Gotchas

    【讨论】:

      猜你喜欢
      • 2016-01-18
      • 2015-02-27
      • 2017-11-30
      • 2015-04-17
      • 2020-12-12
      • 2015-03-21
      • 2019-05-24
      • 2016-05-19
      • 1970-01-01
      相关资源
      最近更新 更多