CachingConnectionFactory

CachingConnectionFactory

Activemq版本:5.14.3
Java 1.7版

一个队列有8个使用者,消息停留在某些使用者中。java - 邮件卡在activemq队列中-LMLPHP

在上面的图像消息被卡在前四个消费者的调度队列中。
这是我的弹簧配置文件。

       <bean id="connectionFactory" class="org.apache.activemq.ActiveMQConnectionFactory">
        <property name="brokerURL" value="failover:(tcp://localhost:61616,tcp://localhost:61617)?randomize=false"/>
    </bean>

    <bean id="cachingFactory" class="org.springframework.jms.connection.CachingConnectionFactory">
        <property name="targetConnectionFactory" ref="connectionFactory"/>
    </bean>

    <bean id="jmsTemplate" class="org.springframework.jms.core.JmsTemplate">
        <property name="connectionFactory" ref="connectionFactory"/>
        <property name="defaultDestinationName" value="queue/WebHookProcessingQueue"/>
    </bean>

    <bean id="myMessageSender" class="com.omoto.jms.sender.MyMessageSender">
        <property name="jmsTemplate">
            <ref bean="jmsTemplate"/>
        </property>
    </bean>

  <bean id="responseJsonMessageListenerContainer" class="org.springframework.jms.listener.DefaultMessageListenerContainer">
        <property name="connectionFactory" ref="cachingFactory"/>
        <property name="destinationName" value="/queue/ResponseJsonProcessingQueue"/>
        <property name="concurrentConsumers" value="8"/>
        <property name="messageListener" ref="responseJsonServiceListner"/>
    </bean>


我是activemq的新手,请帮助我解决此问题。

最佳答案

我们使用带有DefaultMessageListenerContainer的CachingConnectionFactory遇到了类似的问题,从DefaultMessageListenerContainer中删除了CachingConnectionFactory后,该问题得以解决。或者,您可以从CachingConnectionFactory禁用使用者缓存。请参阅该线程以获取更多信息Why DefaultMessageListenerContainer should not use CachingConnectionFactory?

关于java - 邮件卡在activemq队列中,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/50966289/

10-11 10:39