jakartaee / jakartaee/messaging
Clarify when acknowledged persistent messages may be dropped
- Dominant language
- Java
- Stars
- 49
- Forks
- 34
- PR merge metrics
- No merged PRs in 30d
Description
The javadoc for javax.jms.DeliveryMode ([http://docs.oracle.com/javaee/6/api/javax/jms/DeliveryMode.html](http://docs.oracle.com/javaee/6/api/javax/jms/DeliveryMode.html)) states:
> Delivery mode covers only the transport of the message to its destination. Retention of a message at the destination until its receipt is acknowledged is not guaranteed by a PERSISTENT delivery mode. Clients should assume that message retention policies are set administratively. Message retention policy governs the reliability of message delivery from destination to message consumer. For example, if a client's message storage space is exhausted, some messages may be dropped in accordance with a site-specific message retention policy.
>
> A message is guaranteed to be delivered once and only once by a JMS provider if the delivery mode of the message is PERSISTENT and if the destination has a sufficient message retention policy.
This introduces several important features of JMS which are not described in such explicit terms in the JMS specification itself, in particular the statement that a JMS provider may drop (delete from storage) an unacknowledged message if the client is somehow running out of resources. The expression "message retention policy" is not used in the spec.
Section 4.10 "Reliability" is the relevant section. This states that "Once-and-only-once message delivery, as described in this specification... does not cover loss due to resource restrictions" but does not mention that messages may be dropped from the server because the client was short of resources.
This should be clarified.
Contributor guide
Research direction
Start by comparing the javax.jms.DeliveryMode javadoc with section 4.10, “Reliability,” of the JMS specification. Review the wording about retention policies, resource restrictions, and dropping unacknowledged messages; the work is done when the specification clearly explains the behavior and its relationship to the javadoc.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- java
- Domain
- documentation
- Issue type
- Documentation
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100