I am running and ActiveMQ broker within JBoss. I have a Spring client which uses JMSTemplate/DefaultMessageListenerContainer to consume messages from 7 queues. When I bring up the client consumers, they run great for an hour or 2 and then they don't seem to receive any messages from the queues, though messages keep piling up in the queue. I see these messages which say that they are listening but not getting any messages
08:22:46.140 DEBUG[listenerContainer-2] [ ] [msg:] listener.DefaultMessageListenerContainer - Consumer [com.stc.jms.client.STCQueueReceiver@ae1cf] of session [com.stc.jms.client.STCSession@6ef7ba] did not receive a message
08:22:46.290 DEBUG[listenerContainer-5] [ ] [msg:] listener.DefaultMessageListenerContainer - Consumer [com.stc.jms.client.STCQueueReceiver@93c4f1] of session [com.stc.jms.client.STCSession@166c114] did not receive a message
08:22:46.540 DEBUG[listenerContainer-1] [ ] [msg:] listener.DefaultMessageListenerContainer - Consumer [com.stc.jms.client.STCQueueReceiver@1dae160] of session [com.stc.jms.client.STCSession@102679a] did not receive a message
Here are snippets from my Spring config
<bean id="highPriorityUploadListenerContainer" class="org.springframework.jms.listener.DefaultMessageListenerContainer" >
<property name="concurrentConsumers" value="15" />
<property name="connectionFactory" ref="jmsQueueConnectionFactory" />
<property name="destinationName" value="highPriorityUploadQueue" />
<property name="messageListener" ref="messageListener" />
<property name="cacheLevel" value="3" />
<property name="maxConcurrentConsumers" value="30" />
</bean>
<bean id="jmsQueueConnectionFactory" class="org.apache.activemq.pool.PooledConnectionFactory" destroy-method="stop">
<property name="maxConnections" value="100"/>
<property name="maximumActive" value="50"/>
<property name="connectionFactory">
<bean class="org.apache.activemq.ActiveMQConnectionFactory">
<property name="brokerURL" value="${activemq.jndi.url}"/>
</bean>
</property>
<bean id="highPriorityUploadQueue" class="com.citi.cfd.queue.impl.jms.JmsHandlerQueueImpl">
<property name="queueSender">
<bean id="highPriorityUploadJMSSender" class="com.citi.cfd.queue.impl.jms.JMSMessageSender">
<property name="jmsTemplate" >
<bean class="org.springframework.jms.core.JmsTemplate">
<property name="connectionFactory" ref="singleConnectionFactory" />
<property name="defaultDestinationName" value="highPriorityUploadQueue"/>
<property name="receiveTimeout" value="30000"/>
</bean>
</property>
<property name="dataSource" ref="dataSource"/>
</bean>
</property>
</bean>
<!-- Spring JMS Template -->
<bean id="singleConnectionFactory" class="org.springframework.jms.connection.SingleConnectionFactory">
<property name="targetConnectionFactory" ref="jmsQueueConnectionFactory"/>
</bean>