[
https://issues.jboss.org/browse/JBTM-860?page=com.atlassian.jira.plugin.s...
]
Ondra Chaloupka commented on JBTM-860:
--------------------------------------
Hi [~alon3392],
the fix of the issue is part of the JBoss EAP from release 7.0.0. I have to admit that the
documentation is not clear in this and the section seems to be a remainder from times of
the EAP 6.4.
The core of the fix is let the transaction manager to know what is the data source of
particular unfinished record in the transaction object store. That's ensured by
verifying jndi name bound to the particular XAResource (loaded from the object store). The
value of the jndi name is obtained from XAResources implementing the special interface
https://github.com/jbosstm/jboss-transaction-spi/blob/master/src/main/jav....
If particular implementation of the XAResource uses the wrapper and provides the jndi name
identifier for the transaction manager then it's capable to decide if the indoubt
transaction participant loaded from the object store was or wasn't committed. This
interface is "implemented" by ironjacamar (JCA implementation in WildFly) and by
Artemis ActiveMQ resource adapter.
In summary it means the fix JBTM-860 involves
* any datasource - database jdbc connection - configured in WildFly
* artemis activemq resource adapter - {{messaging-activemq}} WildFly configuration
If you use other resource adapters (e.g. WSMQ) then this fix does not apply for it.
use XAResourceWrapper metadata for assume complete
--------------------------------------------------
Key: JBTM-860
URL:
https://issues.jboss.org/browse/JBTM-860
Project: JBoss Transaction Manager
Issue Type: Feature Request
Components: Resource Manager
Affects Versions: 4.15.0
Reporter: Jonathan Halliday
Assignee: Gytis Trikleris
Fix For: 5.1.0
In the XA protocol a time window exists wherein the RM has committed and thus forgotten a
tx branch but the TM has not yet deleted its log. A crash during this window currently
results in an unrecoverable situation, as the TM assumes the branch belongs to an RM that
is uncontactable and will retry recovery indefinitely. This stems from an inability to
relate the Xid to a specific RM. It can be overridden globally with
JTAEnvironmentBean.xaAssumeRecoveryComplete, but we would prefer more fine-grained
control. With the availability of RM id information from XAResourceWrapper this becomes
feasible.
--
This message was sent by Atlassian JIRA
(v7.5.0#75005)