I've implemented an ActiveMQConnector which uses the TransportListener interface to listen for session events. This morning an issue arose where the messages where sent to the DeadLetterQueue in AMQ with error "dlqDeliveryFailureCause=java.lang.Throwable: duplicate from store for queue". This error coincided with the following errors is some of the log files:
INFO | jvm 1 | 2016/03/02 08:03:07 | WARN | Transport Connection to: tcp://xxxxx:58893 failed: java.net.SocketException: Connection reset
INFO | jvm 1 | 2016/03/02 08:03:10 | WARN | Transport Connection to: tcp://xxxxx:58896 failed: java.io.EOFException
INFO | jvm 1 | 2016/03/02 08:03:13 | WARN | Transport Connection to: tcp://xxxxx:58900 failed: java.io.EOFException
INFO | jvm 1 | 2016/03/02 08:03:16 | WARN | Transport Connection to: tcp://xxxxx:49486 failed: java.io.EOFException
The connector implementation receives a message to send and attempts to resume connectivity with the broker but reports a TransportInterrupted event and the connector seems to go into a continual resume/interrupted cycle.
Could you explain what reasons there are for the broker sending the TransportInterrupted event to the Connector (producer). There is no producer flow control configuration in place, so I expect the broker should attempt to process every message sent to it.
Also, can you explain or point me at documentation that covers errors and behaviors tied to the Dead Letter Queue?