activemq-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Vitali Kviatkouski (JIRA)" <>
Subject [jira] [Commented] (AMQ-3489) Slave not replicating consumption with Pure Master Slave
Date Tue, 21 Aug 2012 10:39:38 GMT


Vitali Kviatkouski commented on AMQ-3489:

Reproduced on ActiveMQ 5.6.0
 Seems this happens because it is expected that there is consumer connection on slave. And
when we follow this flow:
 1. Start master
 2. Start slave
 3. Start consumers (consuming app)
 everything works fine as consumer connections are replicated to slave only when they are
 But when we restart slave, consumer connections on master are untouched, so they are not
replicated to slave.
 My proposal is to replicate active consumer connections on slave when slave connects to master.
> Slave not replicating consumption with Pure Master Slave
> --------------------------------------------------------
>                 Key: AMQ-3489
>                 URL:
>             Project: ActiveMQ
>          Issue Type: Bug
>          Components: Broker
>    Affects Versions: 5.4.2, 5.5.0
>            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="" brokerName="localhost" dataDirectory="${activemq.base}/data"
destroyApplicationContextOnStop="true" schedulerSupport="false" advisorySupport="false">
> ...
>         <transportConnectors>
>             <transportConnector name="openwire" uri="tcp://"/>
>         </transportConnectors>
> 5.4.2 slave running on mqslave01:
>     <broker masterConnectorURI="tcp://mqmaster01:61616" shutdownOnMasterFailure=
> "false" xmlns="" brokerName="localhost" da
> taDirectory="${activemq.base}/data" destroyApplicationContextOnStop="true" sched
> ulerSupport="false" advisorySupport="false">
> ...
>         <transportConnectors>
>             <transportConnector name="openwire" uri="tcp://"/>
>         </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 | | main
> 2011-08-24 22:51:48,843 | INFO  | Slave connection between vm://localhost#0 and tcp://mqmaster01/
has been established. | | 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:
> java.lang.IllegalStateException: Cannot lookup a connection that had not been registered:
>         at
>         at
>         at
>         at org.apache.activemq.command.RemoveInfo.visit(
>         at
>         at$1.onCommand(
>         at org.apache.activemq.transport.ResponseCorrelator.onCommand(
>         at org.apache.activemq.transport.TransportFilter.onCommand(
>         at org.apache.activemq.transport.vm.VMTransport.iterate(
>         at org.apache.activemq.thread.DedicatedTaskRunner.runTask(
>         at org.apache.activemq.thread.DedicatedTaskRunner$
> 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.
If you think it was sent incorrectly, please contact your JIRA administrators:!default.jspa
For more information on JIRA, see:


View raw message