Yes, I cleared this directory before running my test, and there is no
synchronization problem on brokers starts.

The error usually occurs after four or five iterations. All messages in the
master broker are consumed while there is still one (or more) pending
messages in the slave broker.

But the master/slave configuration still works after this error occurs.
Then, if I stop the master broker, the slave starts its connectors and the
"lost" messages (the one(s) that were consumed once on the master broker)
can be consumed another time. And this behaviour is quite problematic...







Joe Fernandez wrote:
> 
> Did you clear out the ${activemq.base}/data directory before running the
> test?
> 
> Joe
> Get a free ActiveMQ user guide @ http://www.ttmsolutions.com 
> 
> 
> 
> Manu86 wrote:
>> 
>> Hello, 
>> 
>> I have a simple Master/Slave configuration between two brokers. I use
>> default configuration of ActiveMQ 5.1.
>> I start the master and then the slave, both with empty queues. 
>> 
>> I repeat the following steps :
>> - A producer sends 10 messages on a queue (Then the
>> producer/session/connection is closed)
>> - A consumer receives the messages (Then the consumer/session/connection
>> is closed)
>> 
>> After several iterations, the following error is raised while receiving :
>> 
>> On the master :
>> 
>> ERROR MasterBroker                   - Slave Failed
>> javax.jms.JMSException: Slave broker out of sync with master:
>> Acknowledgment (MessageAck {commandId = 131, responseRequired = true,
>> ackType = 2, consumerId = ID:cocker-2847-122233360910
>> 9-0:0:1:1, firstMessageId = null, lastMessageId =
>> ID:cocker-2824-1222333604765-0:0:1:1:1, destination =
>> queue://queueTest01, transactionId = null, messageCount = 1}) was not in
>> the disp
>> atch list: []
>>         at
>> org.apache.activemq.broker.region.PrefetchSubscription.acknowledge(PrefetchSubscription.java:365)
>>         at
>> org.apache.activemq.broker.region.AbstractRegion.acknowledge(AbstractRegion.java:364)
>>         at
>> org.apache.activemq.broker.region.RegionBroker.acknowledge(RegionBroker.java:470)
>>         at
>> org.apache.activemq.broker.TransactionBroker.acknowledge(TransactionBroker.java:194)
>>         at
>> org.apache.activemq.broker.BrokerFilter.acknowledge(BrokerFilter.java:73)
>>         at
>> org.apache.activemq.broker.BrokerFilter.acknowledge(BrokerFilter.java:73)
>>         at
>> org.apache.activemq.broker.MutableBrokerFilter.acknowledge(MutableBrokerFilter.java:84)
>>         at
>> org.apache.activemq.broker.TransportConnection.processMessageAck(TransportConnection.java:443)
>>         at
>> org.apache.activemq.command.MessageAck.visit(MessageAck.java:196)
>>         at
>> org.apache.activemq.broker.TransportConnection.service(TransportConnection.java:292)
>>         at
>> org.apache.activemq.broker.TransportConnection$1.onCommand(TransportConnection.java:180)
>>         at
>> org.apache.activemq.transport.ResponseCorrelator.onCommand(ResponseCorrelator.java:104)
>>         at
>> org.apache.activemq.transport.TransportFilter.onCommand(TransportFilter.java:68)
>>         at
>> org.apache.activemq.transport.vm.VMTransport.iterate(VMTransport.java:205)
>>         at
>> org.apache.activemq.thread.DedicatedTaskRunner.runTask(DedicatedTaskRunner.java:98)
>>         at
>> org.apache.activemq.thread.DedicatedTaskRunner$1.run(DedicatedTaskRunner.java:36)
>> 
>> 
>> On the slave :
>> 
>> ERROR Service                        - Async error occurred:
>> javax.jms.JMSException: Slave broker out of sync with master: Dispatched
>> message (ID:cocker-2824-1222333604765-0:0:1:1:1) wa
>> s not in the pending list
>> javax.jms.JMSException: Slave broker out of sync with master: Dispatched
>> message (ID:cocker-2824-1222333604765-0:0:1:1:1) was not in the pending
>> list
>>         at
>> org.apache.activemq.broker.region.PrefetchSubscription.processMessageDispatchNotification(PrefetchSubscription.java:166)
>>         at
>> org.apache.activemq.broker.region.AbstractRegion.processDispatchNotification(AbstractRegion.java:405)
>>         at
>> org.apache.activemq.broker.region.RegionBroker.processDispatchNotification(RegionBroker.java:593)
>>         at
>> org.apache.activemq.broker.BrokerFilter.processDispatchNotification(BrokerFilter.java:201)
>>         at
>> org.apache.activemq.broker.BrokerFilter.processDispatchNotification(BrokerFilter.java:201)
>>         at
>> org.apache.activemq.broker.BrokerFilter.processDispatchNotification(BrokerFilter.java:201)
>>         at
>> org.apache.activemq.broker.MutableBrokerFilter.processDispatchNotification(MutableBrokerFilter.java:208)
>>         at
>> org.apache.activemq.broker.TransportConnection.processMessageDispatchNotification(TransportConnection.java:453)
>>         at
>> org.apache.activemq.command.MessageDispatchNotification.visit(MessageDispatchNotification.java:77)
>>         at
>> org.apache.activemq.broker.TransportConnection.service(TransportConnection.java:292)
>>         at
>> org.apache.activemq.broker.TransportConnection$1.onCommand(TransportConnection.java:180)
>>         at
>> org.apache.activemq.transport.ResponseCorrelator.onCommand(ResponseCorrelator.java:104)
>> 
>>         at
>> org.apache.activemq.transport.TransportFilter.onCommand(TransportFilter.java:68)
>>         at
>> org.apache.activemq.transport.vm.VMTransport.iterate(VMTransport.java:205)
>>         at
>> org.apache.activemq.thread.DedicatedTaskRunner.runTask(DedicatedTaskRunner.java:98)
>>         at
>> org.apache.activemq.thread.DedicatedTaskRunner$1.run(DedicatedTaskRunner.java:36)
>> 
>> 
>> Messages are all consumed on the master broker but some are still in the
>> queue of the slave broker.
>> 
>> Is there something to configure in order to keep the synchronization
>> between master and slave ?
>> 
>> Thanks.
>> 
> 
> 

-- 
View this message in context: 
http://www.nabble.com/Master-Slave-out-of-sync-tp19666038p19668666.html
Sent from the ActiveMQ - User mailing list archive at Nabble.com.

Reply via email to