Hi Greg-

A review of the activemq configuration files and logs would be needed to get a 
full picture.

From your description, it sounds like you are using a ‘failover’ uri for the 
brokerA to brokerB communication. That is a common misconfiguration. Network 
Connectors automatically reconnect, so you should not use a failover: uri. 

For a static store-and-forward configuration such as yours, you probably just 
need the static:// uri in the network connector setting. I recommend correcting 
that configuration first, and then seeing if the issue persists.

Thanks,
Matt

> On Dec 31, 2024, at 9:29 AM, Greg Rabil <greg.ra...@cygnalabs.com> wrote:
> 
> Hello ActiveMQ users,
>  
> I am using ActiveMQ 5.15.16 on a Linux platform.  My setup is such that I 
> have an application which produces messages for two separate queues.  That 
> application sends the messages to a local AMQ broker, and the local AMQ 
> broker has a network connection to a remote AMQ broker using the failover 
> protocol.  The consumer of both queues is on the remote broker.
>  
> In the initial setup, all works as expected.  The producers send messages to 
> the two queues “through” the local AMQ broker to the remote AMQ broker where 
> the messages are consumed.  However, if I restart the remote AMQ broker, then 
> problems will occur.  Specifically, when the producers start sending messages 
> after the brokers are reconnected, the sequence IDs are no longer associated 
> with the two producers, but as if there is only one producer.
>  
> The problem is that the producer for queue A sends two messages, with 
> sequence IDs 1 and 2.  Then the producer for queue B sends a message with 
> sequence ID=1, but the remote broker suppresses the delivery of this message, 
> complaining that it is a duplicate because ID 1<=2 (last sequence ID from 
> producer for queue A).  It seems like the reconnect is not handled correctly. 
>  I can see this message in the debug log of the remote broker when the 
> producer for queue a sends the message with sequence ID=1 after the reconnect:
>  
> 2024-12-26 10:40:04,888 | DEBUG | last stored sequence id set: -1 | 
> org.apache.activemq.broker.ProducerBrokerExchange | ActiveMQ Transport: 
> ssl:///10.10.10.11:46160
>  
> Immediately after this message, I see it send message with sequence ID=1 to 
> queue A where it is consumed.  Shortly thereafter, queue A’s producer sends 
> message with sequence ID=2, and that is properly sent and consumed.  Then 
> when the producer for queue B sends a message (sequence ID=1), it is 
> suppressed:
>  
> 2024-12-26 10:40:50,076 | DEBUG | suppressing duplicated message send 
> [ID:test-43384-1735226828739-1:1:2:1:1] with producerSequenceId [1] <= last 
> stored: 2 | org.apache.activemq.broker.ProducerBrokerExchange | ActiveMQ 
> Transport: ssl:///10.10.10.11:46160
>  
>  
> I have tried using auditNetworkProducers="true" on the transportConnector on 
> the remote AMQ broker, but that did not make a difference.
>  
> I’m not sure if there is some other configuration that is required, or if 
> this is a bug.  Can someone help me to fix this problem?
>  
> Thanks,
> Greg
>  
> --
> A. Gregory Rabil
> 
> Sr. Software Architect DDI
>   cygnalabs.com <http://cygnalabs.com/>
> 
>  <https://www.facebook.com/cygnalabs>      
> <https://www.linkedin.com/company/cygnalabs/>      
> <https://twitter.com/cygna_labs>
> This electronic message contains information from Cygna Labs Corp., which may 
> be privileged or confidential. The information is intended for use only by 
> the individual(s) or entity named above. If you are not the intended 
> recipient, please notify the sender immediately by e-mail and be aware that 
> any disclosure, copying, distribution or use of the contents of this e-mail 
> is strictly prohibited. Cygna Labs monitors its e-mail system and may record 
> your e-mails. Cygna Labs Corp, 1111 Lincoln Rd., Suite 760, Miami Beach, FL 
> 33139

Reply via email to