tomee-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Jonathan S Fisher (JIRA)" <>
Subject [jira] [Commented] (TOMEE-2229) JMSContext Injected by TomEE does not participate in JTA, or at least sends messages immediately
Date Sat, 15 Sep 2018 15:03:00 GMT


Jonathan S Fisher commented on TOMEE-2229:

So I *did* get this to partially work with Romain's configuration by specifying a brokerUrl
and having multiple JMSConnectionFactory's defined in tomee.xml, then overriding the connection
factory selection with `@JMSConnectionFactory` at the top of the class. Phew.

TomEE is most certainly behaving out of spec though, it looks as JMSContext is definitely
supposed to auto-join the ongoing XA:

The other bug is with the TomEEXAConnectionFactory itself... It would be really nice if it
could point to a resource adapter rather than straight to a broker url. Not a huge dealbreaker,
but for consistency of configuration, that'd be nice.

> JMSContext Injected by TomEE does not participate in JTA, or at least sends messages
> ------------------------------------------------------------------------------------------------
>                 Key: TOMEE-2229
>                 URL:
>             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:
> *

This message was sent by Atlassian JIRA

View raw message