【发布时间】:2020-05-09 01:01:02
【问题描述】:
我的 Spring JMS 侦听器应用程序在侦听该主题时遇到问题。
每当 ActiveMQ 上发生主/从转换时,我的使用者 ID 都会从 ActiveMQ Web 控制台报告的“活动持久订阅者”变为“离线持久订阅者”。如果我再次重新启动我的消费者应用程序,它会在“Active Durable Subscribers”下变得活跃。我不确定我的 Spring Listener 配置有什么问题。
<bean id="amqConnectionFactory" class="org.apache.activemq.ActiveMQConnectionFactory">
<property name="brokerURL" value="failover:(tcp://xxx01:61616,tcp://xxx02:61626)?randomize=false&initialReconnectDelay=100&maxReconnectDelay=100&maxReconnectAttempts=30"/>
<property name="clientID" value="DevTest" />
</bean>
<bean id="connectionFactory" class="org.springframework.jms.connection.CachingConnectionFactory">
<constructor-arg ref="amqConnectionFactory" />
<property name="reconnectOnException" value="true" />
</bean>
<bean id="messageReceiver" class="com.example.jms.TestMessageListener">
</bean>
<bean class="org.springframework.jms.listener.DefaultMessageListenerContainer">
<property name="connectionFactory" ref="connectionFactory" />
<property name="destinationName" value="TESTTOPIC" />
<property name="messageListener" ref="messageReceiver" />
<property name="subscriptionDurable" value="true" />
<property name="pubSubDomain" value="true" />
</bean>
【问题讨论】:
-
您是否尝试将连接 URL 上的
maxReconnectAttempts从 30 增加到更高的值? -
嗨@JustinBertram,是的,我做到了。我已将其更改为 100,但仍然面临同样的问题。
-
删除最大重新连接尝试设置并查看它是否有效,如果有效,您需要更多尝试或更长的延迟。
标签: spring spring-mvc jms activemq spring-jms