[ https://issues.apache.org/jira/browse/TOMEE-2229?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16598249#comment-16598249 ]
Romain Manni-Bucau commented on TOMEE-2229: ------------------------------------------- Hi Jonathan The scope is respected (see [https://github.com/apache/tomee/blob/master/container/openejb-core/src/main/java/org/apache/openejb/resource/activemq/jms2/cdi/JMS2CDIExtension.java).] You can ensure you use RA flavor of the connecrion factory but i think the behavior is correct regarding your quote. Romain > JMSContext Injected by TomEE does not participate in JTA, or at least sends > messages immediately > ------------------------------------------------------------------------------------------------ > > Key: TOMEE-2229 > URL: https://issues.apache.org/jira/browse/TOMEE-2229 > Project: TomEE > Issue Type: Bug > Components: TomEE Core Server > Affects Versions: 7.0.5 > Reporter: Jonathan S Fisher > Priority: Critical > > Hey guys, > We noticed that if you have a JMSContext in a transaction EJB or CDI Bean, it > always sends messages immediately instead of waiting for the XA to commit. > We found this by injecting a JMSContext into an MDB marked with > TransactionAttribute(Required), calling the jmsContext.createProducer() > method, sending some messages, then sleeping the original MDB thread for > several seconds. The messages arrive at their destinations immediately, long > before the MDB thread wakes up and the XA transaction completes. > Is there a chance our understanding is not correct? > According to the docs: > {quote}If the injected JMSContext is used in a JTA transaction (whether > container-managed or bean-managed), the JMSContext is considered to have > transaction scope. This means that after the JTA transaction is committed, > the JMSContext will be automatically closed.{quote} > References: > * https://www.oracle.com/technetwork/articles/java/jms20-1947669.html -- This message was sent by Atlassian JIRA (v7.6.3#76005)