У нас есть требование, в котором я буду развертывать приложение на n числе серверов, скажем S1, S2, .... Sn.There имеет активную очередь MQ, определенную на один из серверов, скажем, S1.I настроил мои серверы для создания сообщений и поместил их в ту же очередь, которая настроена на S1. Хотя все серверы настроены на использование одной и той же очереди для хранения полученных сообщений, мое требование состоит в том, чтобы только один из n серверов обрабатывал все сообщения из очереди, опять же скажем S1.So, а все серверы от S1, S2, ... Sn могут создавать и хранить их в очереди, сконфигурированной на S1, только S1 должен обрабатывать все из них. Именно поэтому я отключил часть MessageListener для всех серверов, кроме S1. По какой-то причине S1 не обрабатывает все. Я чувствую, что очередь распределяет сообщения в циклическом режиме, несмотря на то, что остальные Слушатели отключены. S1 обрабатывает каждое альтернативное сообщение в случае, когда два сервера обращаются к очереди. Любая помощь для решения этой проблемы была бы весьма признательна.ActiveMQ: прослушиватель сообщений не обрабатывает все записи в очереди
Примечание: если это может помочь, я использую шаблон Spring JMS и полную конфигурацию Spring JMS для JMS.
Вот моя конфигурация фрагмент XML
<bean id="jmsConnectionFactory" class="org.apache.activemq.ActiveMQConnectionFactory">
<property name="brokerURL" value="tcp://ipaddress:61617"/>
</bean>
<bean id="cscoDest" class="org.apache.activemq.command.ActiveMQQueue">
<constructor-arg value="STOCKS.CSCO" />
</bean>
<!--The message listener-->
<bean id="portfolioListener" class="my.test.jms.Listener">
</bean>
<!--Spring DMLC-->
<bean id="cscoConsumer" class="org.springframework.jms.listener.DefaultMessageListenerContainer102">
<property name="connectionFactory" ref="jmsConnectionFactory" />
<property name="destination" ref="cscoDest" />
<property name="messageListener" ref="portfolioListener" />
</bean>
<!--Spring JMS Template-->
<bean id="jmsTemplate" class="org.springframework.jms.core.JmsTemplate">
<property name="connectionFactory" ref="jmsConnectionFactory" />
</bean>
<bean id="stockPublisher" class="my.test.jms.SpringPublisher">
<property name="template" ref="jmsTemplate" />
<property name="destinations">
<list>
<ref local="cscoDest" />
</list>
</property>
</bean>
выше конфигурация присутствует во всех моих servers.I'm отключении боба в «portfolioListener» и это отображение свойства в «cscoConsumer» во всех серверах, кроме один из которых является S1 в соответствии с приведенным выше примером. Но все же сообщения пропускаются циклическим способом.
'Я отключил MessageListener часть всех серверов, кроме S1': Как вы отключили это? Может быть, это действительно не отключено, и поэтому вы все еще видите круговое распространение! – brainOverflow