jakartaee / jakartaee/messaging

Clarify when acknowledged persistent messages may be dropped

Open
#84 4 comments 0 reactions 0 assignees View on GitHub
pd20-veryminor Priority: Major Type: Improvement
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.