jakartaee / jakartaee/messaging
Allow client-acknowledgement and local transactions to be used in the Java EE web and EJB container
- Dominant language
- Java
- Stars
- 49
- Forks
- 34
- PR merge metrics
- No merged PRs in 30d
Description
The JMS 2.0 specification, section 12.3 "Behaviour of JMS sessions in the Java EE web or EJB container" states that if a Session or JMSContext is created when there is no active JTA transaction in progress, then the Session or JMSContext that is created will be non-transacted and any messages received will be automatically acknowledged.
The specification states that the use of local transactions or client acknowledgement is not permitted. A session parameter may be used to specify whether the acknowledgement mode should be AUTO_ACKNOWLEDGE or DUPS_OK_ACKNOWLEDGE, but any other values will be ignored.
**Issue:** When there is no application server transaction (or if the Session or JMSContext has opted out of the JTA transaction if allowed by #130), should client-acknowledgement or local transactions be permitted?
If so, we would need to define an appropriate API by which the application specifies this. We can't use the existing parameters to createSession and createContext for this purpose since these must be ignored in accordance with the EJB 3.1 specification).
#### Affected Versions
[2.0]
Contributor guide
Research direction
Start with JMS 2.0 section 12.3 and the EJB 3.1 constraints described here, then review the related opt-out discussion in issue #130. Determine whether client acknowledgement or local transactions should be supported without an application-server transaction, and define the appropriate API and resulting behavior for createSession and createContext.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- java
- Domain
- api
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100