Uploaded image for project: 'WildFly Transaction Client'
  1. WildFly Transaction Client
  2. WFTC-82

XAResourceRegistry record cleanup cannot be permitted for XAResource.recover(TMENDRSCAN)


    • Icon: Bug Bug
    • Resolution: Done
    • Icon: Blocker Blocker
    • 1.1.11.Final
    • 1.1.10.Final
    • None

      This is effective revert of the fix provided in issue WFTC-77.

      The WFTC-77 tried to enhance integration with Narayana in way to permit deletion of the XAResourceRegistry record (https://github.com/wildfly/wildfly-transaction-client/blob/1.1.10.Final/src/main/java/org/wildfly/transaction/client/XAResourceRegistry.java) in case of call XAResource.recover(XAResource.TMENDRSCAN) (https://github.com/wildfly/wildfly-transaction-client/pull/99/files).

      The fix was not well considered.
      The ClientChannel (https://github.com/wildfly/wildfly-transaction-client/blob/1.1.10.Final/src/main/java/org/wildfly/transaction/client/provider/remoting/TransactionClientChannel.java#L437) works only with the XAResource.TMSTARTRSCAN flag and otherwise it returns empty array which leads to situation that XAResourceRegistry record is deleted when the remote side still contains some participants for recovery.

      My understanding is that intent of using only XAResource.TMSTARTRSCAN to proceed with the remote call and trying to find unfinished participants is the Narayana integration.
      Narayana finishes with the XAResource.recover(XAResource.TMENDRSCAN) call processing the XAResource in particular recovery cycle. It's uses only as a marker there is no other processing to be done. Narayana use no result of such call

            ochaloup@redhat.com Ondrej Chaloupka (Inactive)
            ochaloup@redhat.com Ondrej Chaloupka (Inactive)
            0 Vote for this issue
            2 Start watching this issue