Hi Ben-

I suggest you open a ticket with AWS. The Apache community does not have 
visibility to their build to know what patches or changes have been applied to 
their build.

Thanks,
Matt Pavlovich

> On Aug 4, 2024, at 8:21 PM, Ben D'Herville <b...@encompasscorporation.com> 
> wrote:
> 
> We have been experiencing issues with duplicate issues in several of our 
> production environments.  The behaviour we see is that sometimes when our 
> application starts it logs a “suppressing duplicate delivery” message for a 
> message that has never been acknowledged.  After this occurs the consumers do 
> not consume any more messages until we restart the application.  Normally 
> that resolves the issue, the message is consumed successfully and continues 
> to consume messages.  Occasionally it gets into the same state so we restart 
> again.
> 
> An example of the suppressing duplicate delivery messages is;
> ID:ip-10-210-179-152-19241-1722563936693-1:6:5:1 suppressing duplicate 
> delivery on connection, poison acking: MessageDispatch {commandId = 0, 
> responseRequired = false, consumerId = 
> ID:ip-10-210-179-152-19241-1722563936693-1:6:5:1, destination 
> =queue://TEMPLATE_ORCHESTRATION_MESSAGES, message = ActiveMQObjectMessage 
> {commandId = 27442, responseRequired = true, messageId = 
> ID:ip-10-210-181-64-5463-1722503120609-7:1:50:1:980, originalDestination = 
> null, originalTransactionId = null, producerId 
> =ID:ip-10-210-181-64-5463-1722503120609-7:1:50:1, destination = 
> queue://TEMPLATE_ORCHESTRATION_MESSAGES, transactionId = null, deliveryTime = 
> 0, expiration = 0, timestamp = 1722565114517, arrival = 0, brokerInTime = 
> 1722565319026, brokerOutTime = 1722565319026, correlationId = null, replyTo = 
> null, persistent = true, type = null, priority = 4, groupID = null, 
> groupSequence = 0, targetConsumerId = null, compressed = false, userID = 
> null, content = 
> org.apache.activemq.util.ByteSequence@222083bc<mailto:org.apache.activemq.util.ByteSequence@222083bc>,
>  marshalledProperties = 
> org.apache.activemq.util.ByteSequence@44247f43<mailto:org.apache.activemq.util.ByteSequence@44247f43>,
>  dataStructure = null, redeliveryCounter = 3, size = 0, properties = 
> {WORKSPACE_ID=66ac0e4ef78b094c390c1d6b, 
> x__dash__datadog__dash__trace__dash__id=8195324751683450459,x__dash__datadog__dash__sampling__dash__priority=1,
>  
> x__dash__datadog__dash__parent__dash__id=2836570378207542649,scheduledJobId=ID:ip-10-210-181-64-5463-1722503120609-7:1:50:1:529018,
>  
> TEMPLATE_PURCHASE_ID=66ac0e4ef78b094c390c1d7b,tracestate=dd=t.dm:-1;t.tid:66ac41bd00000000,
>  CALLER_REFERENCE_ID=66ac0e470cfa9827bc10744c, 
> traceparent=00-66ac41bd0000000071bba470e30ef65b-275d85baed74bd79-01, 
> redeliveryDelay=25000,x__dash__datadog__dash__tags=_dd.p.dm=-1,_dd.p.tid=66ac41bd00000000},
>  readOnlyProperties = true, readOnlyBody = true, droppable = false, 
> jmsXGroupFirstForConsumer = false}, redeliveryCounter = 3}
> 
> We are using Amazon MQ with ActiveMQ version 5.16.3 (although we experienced 
> this issue on previous versions too).
> Our java application is using  org.apache.activemq:activemq-client:5.16.3.
> 
> The Spring config is;
> 
> @Bean
> public ConnectionFactory 
> jmsConsumerConnectionFactory(@Value("${jms.broker.url}") String jmsBrokerUrl,
>                                                      
> @Value("${jms.broker.username}") String username,
>                                                      
> @Value("${jms.broker.password}") String password,
>                                                      RedeliveryPolicyMap 
> consumerRedeliveryPolicyMap,
>                                                      ActiveMQPrefetchPolicy 
> prefetchPolicy) {
>    return activeMQConnectionFactory(jmsBrokerUrl, username, password, 
> consumerRedeliveryPolicyMap, prefetchPolicy, "enc-consumer");
> }
> 
> private ActiveMQConnectionFactory activeMQConnectionFactory(String 
> jmsBrokerUrl, String username, String password, RedeliveryPolicyMap 
> consumerRedeliveryPolicyMap, ActiveMQPrefetchPolicy prefetchPolicy, String 
> clientIdPrefix) {
>    ActiveMQConnectionFactory connectionFactory = new 
> ActiveMQConnectionFactory(jmsBrokerUrl);
>    connectionFactory.setUserName(trimToNull(username));
>    connectionFactory.setPassword(trimToNull(password));
> 
>    connectionFactory.setObjectMessageSerializationDefered(true);
>    connectionFactory.setAlwaysSyncSend(true);
>    connectionFactory.setTrustAllPackages(true);
>    connectionFactory.setRedeliveryPolicyMap(consumerRedeliveryPolicyMap);
>    connectionFactory.setPrefetchPolicy(prefetchPolicy);
> 
>    connectionFactory.setClientIDPrefix(clientIdPrefix);
> 
>    return connectionFactory;
> }
> 
> 
> protected DefaultJmsListenerContainerFactory 
> defaultJmsListenerContainerFactory(boolean autoStartupEnabled, String 
> concurrency, ErrorHandler errorHandler) {
>    DefaultJmsListenerContainerFactory factory = new 
> DefaultJmsListenerContainerFactory();
>    factory.setConcurrency(concurrency);
>    factory.setConnectionFactory(jmsConsumerConnectionFactory);
>    factory.setTransactionManager(localJmsTransactionManager);
>    factory.setErrorHandler(errorHandler);
>    factory.setAutoStartup(autoStartupEnabled);
>    factory.setCacheLevel(CACHE_CONSUMER);
> 
>    return factory;
> }
> 
> and the broker URI is typically;
> 
> 
> jms.broker.url="failover:(ssl://b-7cef9e05-66d6cbcf570b-1.mq.eu-west-2.amazonaws.com:61617,ssl://b-7cef9e05-66d6cbcf570b-2.mq.eu-west-2.amazonaws.com:61617)?initialReconnectDelay=100&maxReconnectAttempts=10&jms.checkForDuplicates=true&jms.watchTopicAdvisories=false&jms.prefetchPolicy.queuePrefetch=0&nested.wireFormat.maxInactivityDuration=1800000&nested.wireFormat.maxFrameSize=104857600"
> 
> I’ve debugged the client code to try and see where it’s detecting the 
> duplicate and it seems to have the duplicate message id in it’s cache.  It’s 
> difficult to reproduce and so it’s hard to tell if does indeed get the same 
> message twice but given it doesn’t handle the message at all then I’m 
> suspecting the cache is incorrectly preloaded.  Could it be that it’s caching 
> to the filesystem and when the application restarts it reloads the cache?
> 
> Would appreciate any help as we really want duplicate detection enabled.
> 
> Regards
> Ben
> 
> 
> 
> 
> [https://6032599.fs1.hubspotusercontent-na1.net/hubfs/6032599/Email%20images/Encompass%20logo/Encompass-(full)_300x52.png]
> 
> The leader in Corporate Digital Identity
> 
> Website<https://www.encompasscorporation.com/> |  
> LinkedIn<https://www.linkedin.com/company/encompass-corporation/>
> 
> Encompass Corporation UK Ltd | Company No. SC493055 | Address: Level 3, 33 
> Bothwell Street, Glasgow, UK, G2 6NL
> Encompass Corporation Australia PTY Ltd | 605 414 499| Address: Level 1, 117 
> Clarence Street, Sydney, New South Wales, 2000
> Encompass Corporation US Inc | Company No. 7946259 | Address: 11 West 42nd 
> Street, New York, New York, 10036
> 
> This email and any attachments is intended only for the use of the individual 
> or entity named above and may contain confidential information. If you are 
> not the intended recipient, any dissemination, distribution or copying of 
> this email is prohibited. If received in error, please notify us immediately 
> by return email and destroy the original message.
> 
> 
> 
> 
> 
> 
> Public


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@activemq.apache.org
For additional commands, e-mail: users-h...@activemq.apache.org
For further information, visit: https://activemq.apache.org/contact


Reply via email to