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-tp19666038p19666038.html
Sent from the ActiveMQ - User mailing list archive at Nabble.com.

Reply via email to