Details
Description
There is a problem with a RAR managed connection enlisted in a xa transaction that aborts, if that connection is used to produce messages.
getConnection succeeds and enlists the resource, the session is in an xa transaction, all is good.
If however, the transaction times out and aborts, before a producer gets to send(), the send will not see a transaction context and will produce a message with no transaction identity in error.
The abort forces an end(fail) and rollback, however this results in the transaction context being unset and the producer session not being aware of the aborted transaction.
The transaction management is external in the case of a managed connection and the default is non transactional in the absence of an external or RAR local transaction.
Getting a reference to the TransactionManager and doing a transaction status check before send is a workaround, but that should not be necessary.