0
我們定義了一個applicationContext.xml,其中包含我們的ActiveMQ偵聽器的容器。我們使用使用DefaultMessageListenerContainer如下圖所示:ActiveMQ消費者在applicationContext.xml中使用DefaultMessageListenerContainer時增長
<bean id="jmsFactory" class="org.apache.activemq.ActiveMQConnectionFactory">
<property name="brokerURL" value="${smqurl}"/>
</bean>
<bean id="documentListener" class="org.abc.jms.SMsgListener">
<property name="appProperties" ref="ApplicationProperties"/>
</bean>
<bean id="cachingConnectionFactory"
class="org.springframework.jms.connection.CachingConnectionFactory">
<property name="targetConnectionFactory" ref="jmsFactory" />
<property name="sessionCacheSize" value="1"/>
<property name="cacheConsumers" value="false"/>
</bean>
<bean id="container"
class="org.springframework.jms.listener.DefaultMessageListenerContainer">
<property name="connectionFactory" ref="cachingConnectionFactory"/>
<property name="messageListener" ref="documentListener"/>
<property name="destinationName" value="SQueue" />
<property name="concurrentConsumers" value="10" />
<property name="maxConcurrentConsumers" value="20" />
</bean>
的問題是,消費者不斷增加所有的時間和不被破壞掉了。最終,我們遇到了OutOfMemory異常。
我們嘗試查看文檔和聯機,但無法找到任何顯式方式通過applicationContext.xml中的屬性銷燬/釋放消費者。
是否有其他人遇到過類似的問題?你最終如何解決這個問題?
謝謝。