jakartaee / jakartaee/messaging

Vendor-defined acknowledgement modes

Open
#169 13 comments 0 reactions 0 assignees View on GitHub
jms21-forreview-minor New Feature Priority: Major
Dominant language
Java
Stars
49
Forks
34
PR merge metrics
No merged PRs in 30d

Description

Several vendors currently support non-standard acknowledgement modes as vendor-specific extensions.

(Edited) The most common vendor-specific modes are no-acknowledgement mode (see #168 and #21) and individual-acknowledge mode (see #95), and these are already proposed for standardization.

However individual vendors may wish to offer additional acknowledgement modes which are probably too vendor-specific to be suitable for incorporating in the standard.

Currently the JMS specification does not allow createSession and createContext to support modes other than the four defined in the specification. It is proposed to relax this restriction to allow vendors to define additional modes, so long as their integer value is within a special defined range.

Applications which use such vendor-specific modes will, inevitably, not be portable.

The specification for Session#getAcknowledgementMode and JMSContext#getSessionMode would need to be extended to cover this new feature.

One drawback of defining an integer range for vendor-specific modes is the possibility that two vendors may choose the same value. One way to avoid this would be to define new createContext and createSession methods which allow the session/acknowledgement mode to be specified as a string. JMS-defined modes would start with javax.jms, vendor-defined modes would start with a vendor-specific string such as com.vendorname.
#### Affected Versions
[2.0]

Contributor guide

Open the contributing guide

Research direction

Start by reviewing the JMS createSession and createContext entry points, along with Session#getAcknowledgementMode and JMSContext#getSessionMode. Compare the referenced issues #168, #21, and #95, then determine which vendor-specific mode approach should be specified and what the completed specification changes must cover.

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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.