messaging icon indicating copy to clipboard operation
messaging copied to clipboard

Poison message management

Open glassfishrobot opened this issue 13 years ago • 4 comments

This issue was raised on the JMS forum: https://forums.oracle.com/forums/thread.jspa?threadID=2124413 and is being logged here on behalf of that contributor

Poison messages are messages that are redelivered again and again when an untreated error occurs, possibly resulting in CPU eating long lasting loops.

This is a well known messaging related issue, but it is not fully adressed by the JMS specification. The Message:getJMSRedelivered method can tell if a message is being redelivered. But this is not good enough and application servers implement their own solutions. Such solutions are based, for example, on redelivery limit and error destinations.

With WebSphere 6, it is possible to specify, at the SI Bus destination level, an exception destination and a maximum failed deliveries threshold. When messages consumption fails more than the threshold allows, messages are moved to the exception destination.

JBoss 4 has equivalent features, with a dead letter queue where messages that reached the redelivery limit are moved. It is also possible to use the specific 'JMS_JBOSS_REDELIVERY_DELAY' message property to specify a redelivery delay from the message producer side. JBoss 5 has the same features with the 'dead-letter-address', 'max-delivery-attempts' and 'redelivery-delay' destination configuration parameters.

WebLogic has equivalent features, see 'Error Destination', 'Redelivery Limit' and 'Redelivery Delay' parameters.

A portable mechanism should be defined.

Affected Versions

[1.1]

glassfishrobot avatar Feb 15 '12 12:02 glassfishrobot

  • Issue Imported From: https://github.com/javaee/jms-spec/issues/72
  • Original Issue Raised By:@glassfishrobot
  • Original Issue Assigned To: Unassigned

glassfishrobot avatar Feb 12 '18 18:02 glassfishrobot

@glassfishrobot Commented Reported by @nigeldeakin

glassfishrobot avatar Feb 15 '12 12:02 glassfishrobot

@glassfishrobot Commented @nigeldeakin said: #42 (already included in the JMS 2.0 Early Draft) makes support for JMSXDeliveryCount mandatory, which should make it easier for applications and frameworks to do their own poison message handling. However this does not itself define how poison messages are handled.

I will raise this with the expert group for possible inclusion in the JMS 2.0 Public Draft. Tagging accordingly.

glassfishrobot avatar Mar 09 '12 14:03 glassfishrobot

@glassfishrobot Commented This issue was imported from java.net JIRA JMS_SPEC-72

glassfishrobot avatar May 02 '17 10:05 glassfishrobot