Slave not replicating consumption with Pure Master Slave
--------------------------------------------------------

                 Key: AMQ-3489
                 URL: https://issues.apache.org/jira/browse/AMQ-3489
             Project: ActiveMQ
          Issue Type: Bug
          Components: Broker
    Affects Versions: 5.5.0, 5.4.2
            Reporter: Dan Checkoway


I'm seeing some strange behavior with ActiveMQ 5.4.2 pure master slave setup...

5.4.2 master running on mqmaster01:

 <broker xmlns="http://activemq.apache.org/schema/core"; brokerName="localhost" 
dataDirectory="${activemq.base}/data" destroyApplicationContextOnStop="true" 
schedulerSupport="false" advisorySupport="false">
...
        <transportConnectors>
            <transportConnector name="openwire" uri="tcp://0.0.0.0:61616"/>
        </transportConnectors>

5.4.2 slave running on mqslave01:

    <broker masterConnectorURI="tcp://mqmaster01:61616" shutdownOnMasterFailure=
"false" xmlns="http://activemq.apache.org/schema/core"; brokerName="localhost" da
taDirectory="${activemq.base}/data" destroyApplicationContextOnStop="true" sched
ulerSupport="false" advisorySupport="false">
...
        <transportConnectors>
            <transportConnector name="openwire" uri="tcp://0.0.0.0:61616"/>
        </transportConnectors>

Producers and consumers are using this connection URL:

failover:(tcp://mqmaster01:61616,tcp://mqslave01:61616)?randomize=false

Here's what I'm seeing.  I start up the master.  My producers/consumers connect 
immediately (they were waiting to connect) and begin doing their thing.

I then start up the slave (with a freshly emptied ./data dir).  The slave 
connects to the master, as witnessed by this in data/activemq.log on mqslave01:

2011-08-24 22:51:48,833 | INFO  | Starting a slave connection between 
vm://localhost#0 and tcp://mqmaster01:61616 | 
org.apache.activemq.broker.ft.MasterConnector | main
2011-08-24 22:51:48,843 | INFO  | Slave connection between vm://localhost#0 and 
tcp://mqmaster01/10.0.3.42:61616 has been established. | 
org.apache.activemq.broker.ft.MasterConnector | main

Shortly thereafter, a message is sent to a queue.  A consumer consumes it.  On 
mqmaster01, I can see on http://mqmaster01:8161/admin/queues.jsp that the 
enqueue/dequeue count went up by one, and "Number Of Pending Messages" is zero. 
 All good, right?

Yeah, except mqslave01 now shows Messages Enqueued = 1, and Number Of Pending 
Messages = 1.  As more messages run through the system, mqslave01's enqueue & 
pending count continues to go up, but the dequeue count remains at zero.  I 
don't understand why the slave isn't replicating the consumption of these 
messages...

Has anybody seen this before?  Any idea what might be causing it?  Did I screw 
something up in my configuration, i.e. with schedulerSupport="false" or 
advisorySupport="false"?

Any help would be much appreciated... 


------------------------------------------



Torsten then posted:

Hi,

I just gave it a quick test here using the latest 5.5 release and there does 
indeed seem to be an issue.
Was sending and consuming msgs on the master broker using a new queue and the 
JMX properties got updated correctly on both master and slave.
 
However when sending some msgs to queue example.A which also has a Camel 
consumer connected, I noticed the same problem as reported here. On the slave 
the Enqueue Count rises correctly but dequeue and dispatch count remain 0. 
QueueSize is at EnqueueCount number, despite all msgs being consumed already.

I further noticed the following error in the slave log:

WARN | Async error occurred: java.lang.IllegalStateException: Cannot lookup a 
connection that had not been registered: 
ID:mac.fritz.box-53812-1315495654277-4:1
java.lang.IllegalStateException: Cannot lookup a connection that had not been 
registered: ID:mac.fritz.box-53812-1315495654277-4:1
        at 
org.apache.activemq.broker.MapTransportConnectionStateRegister.lookupConnectionState(MapTransportConnectionStateRegister.java:97)
        at 
org.apache.activemq.broker.TransportConnection.lookupConnectionState(TransportConnection.java:1444)
        at 
org.apache.activemq.broker.TransportConnection.processRemoveProducer(TransportConnection.java:530)
        at org.apache.activemq.command.RemoveInfo.visit(RemoveInfo.java:78)
        at 
org.apache.activemq.broker.TransportConnection.service(TransportConnection.java:316)
        at 
org.apache.activemq.broker.TransportConnection$1.onCommand(TransportConnection.java:180)
        at 
org.apache.activemq.transport.ResponseCorrelator.onCommand(ResponseCorrelator.java:116)
        at 
org.apache.activemq.transport.TransportFilter.onCommand(TransportFilter.java:69)
        at 
org.apache.activemq.transport.vm.VMTransport.iterate(VMTransport.java:218)
        at 
org.apache.activemq.thread.DedicatedTaskRunner.runTask(DedicatedTaskRunner.java:98)
        at 
org.apache.activemq.thread.DedicatedTaskRunner$1.run(DedicatedTaskRunner.java:36)



There seems to be a problem here.

Dan, if you have the time, could you raise a new JIRA for this problem?

Thanks,

Torsten Mielke 

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to