]
Ondra Chaloupka updated JBTM-2780:
----------------------------------
Affects Version/s: 5.3.5.Final
JTS recovery does not process commit when connection is halt during
2PC
-----------------------------------------------------------------------
Key: JBTM-2780
URL:
https://issues.jboss.org/browse/JBTM-2780
Project: JBoss Transaction Manager
Issue Type: Bug
Affects Versions: 5.3.5.Final
Reporter: Ondra Chaloupka
Assignee: Tom Jenkinson
Priority: Critical
Attachments: .jts_haltConnectionAfterDbCommits_server.log.syntax,
haltConnectionAfterDbCommits_standalone-full.xml
I experience wrong behavior of JTS implementation in following test scenario. This seems
to be a regression against behavior of recovery for 7.0.0.GA.
# there is two jboss eap 7.1.0.DR6 servers used. First deploys MDB and does periodic
recovery. Second is used only as a Artemis messaging broker.
# first app server receives a message via MDB #onMessage from artemis broker (second eap
server)
# during onMessage processing a enw message is send to different remote queue on artemis
broker
# testing XA resource is enlisted to txn
# prepare phase passes for all 3 resources - mdb inbound, outbound queue, test xa
resource
# connection to the second server is halt at time when commit message of MDB resource is
sent to artemis broker but the confirmation is not delivered back to TM
# commit of MDB as xa resource and outbound queue as resource fail - XAException.XA_RETRY
is returned
# the test XAResource is committed
# recovery starts work and log shows that XAResourceRecord.commit is called at some point
of time but the real commit on the XAResource is not done and transaction is rolled back
at the end
The expected behavior (and what I can observe for JTA as well) is that recovery process
should commit the outbound connection resource (MDB resource should be committed just not
confirmed back from artemis broker to TM).