I've been investigating this more the whole week, I would really appreciate a response. What I can see from inspecting the logs and metricbeat analysis, is that the mssql connection in the first broker starts getting very slow, which causes it to lose the master lease while messages are still inflight.
When the first broker fails to restore the lease it starts to shutdown and the messages are lost without being processed. The jdbc persistence adapter in the activemq.xml file does not set failIfLocked so that should be false. Is there a way to stop the broker from shutting down when it fails to renew its lease? Secondly, when the second broker starts and retries the failed messages, it gets a Primary Key violation in object 'dbo.ACTIVEMQ_MSGS'. I believe this is in the temp store within the server. Is there a way to flush this temp store on a failure? We are using ActiveMq classic v5.18.3 and these failovers started not long after upgrading from v5.13.2. Thanks -----Original Message----- From: Jack Fry (They/Them) <j...@scottlogic.com.INVALID> Sent: Monday, February 12, 2024 4:16 PM To: users@activemq.apache.org Subject: RE: Message delivery failure and Primary Key violation on load balanced ActiveMQ Broker [You don't often get email from j...@scottlogic.com.invalid. Learn why this is important at https://aka.ms/LearnAboutSenderIdentification ] Looking at the logs again, we noticed this warning on the broker as well: Store limit is 30720 mb (current store usage is 0 mb). The data directory: D:\Apps\apache-activemq-5.18.3\data only has 25672 mb of usable space. - resetting to maximum available disk space: 25672 mb Could this be related? If there was not enough available disk space would It cause this exception to occur? -----Original Message----- From: Jack Fry (They/Them) <j...@scottlogic.com.INVALID> Sent: Monday, February 12, 2024 2:35 PM To: users@activemq.apache.org Subject: Message delivery failure and Primary Key violation on load balanced ActiveMQ Broker [You don't often get email from j...@scottlogic.com.invalid. Learn why this is important at https://aka.ms/LearnAboutSenderIdentification ] (Re-sent this as I wanted to change the subject) Hi, Last week our ActiveMQ message broker lost a message from the queue. We have a load balanced system with two separate brokers sharing a data store. At some point during the transfer of the lease, the original lease holder started shutting down, which started a cascade of failures as the Transport Connection failed to deliver the message. 16:54:07.869 Starting Job Scheduler Store 16:54:07.869 Persistence Adapter successfully started 16:54:08.456 Apache ActiveMQ 5.18.3 (gbldnsrv4pw4564, ID:GBLDNSRV4PW4564-50268-1705135858444-0:3) is starting 16:54:10.807 gbldnsrv4pw4563, no longer able to keep the exclusive lock so giving up being a master 16:54:10.807 Apache ActiveMQ 5.18.3 (gbldnsrv4pw4563, ID:GBLDNSRV4PW4563-63611-1706742264783-0:2) is shutting down 16:54:10.807 Transport Connection to: tcp://10.18.136.56:51504 failed: Broker BrokerService[gbldnsrv4pw4563] is being stopped 16:54:10.807 socketQueue interrupted - stopping 16:54:10.807 Could not accept connection during shutdown : null (null) 16:54:10.823 Transport Connection to: tcp://10.18.136.38:57430 failed: Broker BrokerService[gbldnsrv4pw4563] is being stopped 16:54:10.823 Failed delivery for (MessageId: ID-GBLDNSRV4PW4563-1706742293708-1-145409 on ExchangeId: ID-GBLDNSRV4PW4563-1706742293708-1-145309). On delivery attempt: 0 caught: org.springframework.jms.UncategorizedJmsException: Uncategorized exception occurred during JMS processing; nested exception is javax.jms.JMSException: Peer (vm://localhost#35661) disposed. However, when the second broker came to process the failed messages, there was an Primary Key exception from the sqldb that the message was already stored in the database. 16:54:37.357 Error while closing connection: Violation of PRIMARY KEY constraint 'PK__ACTIVEMQ__3214EC27C81AADFA'. Cannot insert duplicate key in object 'dbo.ACTIVEMQ_MSGS'. The duplicate key value is (510684907). 16:54:37.374 Ignoring SQLException, java.io.IOException: Violation of PRIMARY KEY constraint 'PK__ACTIVEMQ__3214EC27C81AADFA'. Cannot insert duplicate key in object 'dbo.ACTIVEMQ_MSGS'. The duplicate key value is (510684907). 16:54:37.421 Ignoring SQLException, java.io.IOException: Violation of PRIMARY KEY constraint 'PK__ACTIVEMQ__3214EC27C81AADFA'. Cannot insert duplicate key in object 'dbo.ACTIVEMQ_MSGS'. The duplicate key value is (510684909). 16:54:37.421 Commit failed: Violation of PRIMARY KEY constraint 'PK__ACTIVEMQ__3214EC27C81AADFA'. Cannot insert duplicate key in object 'dbo.ACTIVEMQ_MSGS'. The duplicate key value is (510684909). 16:54:37.483 Store COMMIT FAILED: 16:54:40.824 Failed delivery for (MessageId: ID-GBLDNSRV4PW4563-1706742293708-1-145409 on ExchangeId: ID-GBLDNSRV4PW4563-1706742293708-1-145309). On delivery attempt: 1 caught: java.lang.IllegalStateException: SendProcessor has not been started: sendTo(activemq://queue: 16:54:40.824 Failed delivery for (MessageId: ID-GBLDNSRV4PW4563-1706742293708-1-145410 on ExchangeId: ID-GBLDNSRV4PW4563-1706742293708-1-145312). On delivery attempt: 1 caught: java.lang.IllegalStateException: SendProcessor has not been started: sendTo(activemq://queue:) Would anyone here know what happened here? Is this a bug? Many thanks, Jack