jakartaee / jakartaee/messaging
Poison message management
- Dominant language
- Java
- Stars
- 49
- Forks
- 34
- PR merge metrics
- No merged PRs in 30d
Description
This issue was raised on the JMS forum:
[https://forums.oracle.com/forums/thread.jspa?threadID=2124413](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]
Contributor guide
Research direction
Start by reviewing the linked Oracle JMS forum discussion and the JMS Message:getJMSRedelivered behavior, then compare the vendor features named in the issue: redelivery limits, delays, and error or dead-letter destinations. No repository files or tests are identified. Done would require an agreed portable poison-message management mechanism.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- java
- Domain
- backend-api-design
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100