[
https://issues.apache.org/jira/browse/QPID-3990?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Weston M. Price resolved QPID-3990.
-----------------------------------
Resolution: Fixed
Fix Version/s: 0.17
Fixed with latest additions to trunk.
> Multiple XAResources isSameRM behavior
> --------------------------------------
>
> Key: QPID-3990
> URL: https://issues.apache.org/jira/browse/QPID-3990
> Project: Qpid
> Issue Type: Bug
> Components: Java Client, JCA
> Affects Versions: 0.14, 0.17
> Environment: All supported OS platforms. All supported JEE platforms.
> Reporter: Weston M. Price
> Assignee: Weston M. Price
> Priority: Critical
> Fix For: 0.17
>
>
> In fixing QPID-3263, an issue has cropped up when two XAResources have the
> same underlying ResourceManager(RM). Originally the isSameRM method returned
> false regardless of whether or not the RM's were the same. Since we now
> return true when two or more XAResources are involved, we get an
> ILLEGAL_STATE exception being that the DtxStart/DtxEnd calls are not paired
> for each XAResource because the TransactionManager (TM) treats the
> XAResource(s) as being on the same transaction branch. As a result, DtxEnd is
> only called on one resource.
> According to Gordon, this may be a discrepancy between XA and the AMQP .10
> specification. This has inadvertently worked in the JCA code due to bug in
> the isSameRM method and the use of the QpidRAXAResourceWrapper.
> While it might make sense to simply roll back to the old behavior, this is
> not going to perform as well being that most TM's can optimize underlying
> transaction state with isSameRM is true. This has performance implications
> for the TM in terms of logging, management etc.
> I have a fix for this issue that allows XAResources to be aware of each other
> in a transaction chain. When DtxEnd is called on one resource, the sibling
> XAResources.end method is called thereby matching the DtxStart/DtxEnd
> invocations appropriately allowing the transaction to complete.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators:
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]