Uploaded image for project: 'JBoss Transaction Manager'
  1. JBoss Transaction Manager
  2. JBTM-3351

clearHeuristic management operation should clear participant's heuristic flag as well as it clears the transaction heuristic flag

    XMLWordPrintable

Details

    Description

      The management operation clearHeuristic should consider to clear heuristic flag not only from the transaction (BasicAction) but from the participant record as well - when possible, e.g. the XA resource record maintains heuristic flag for participant and thus it should be cleared on the operation.

      The current management operation 'clearHeuristic' is invoked only on the "covering" transaction - BasicAction is modified[1] -> [2] -> [3]. But the XAResourceRecord heuristics state[4] is unchanged. Then during recovery commit retry the XAResource.commit is denied[5].

      [1] https://github.com/jbosstm/narayana/blob/5.10.5.Final/ArjunaCore/arjuna/classes/com/arjuna/ats/arjuna/tools/osb/mbean/ActionBean.java#L433
      [2] https://github.com/jbosstm/narayana/blob/5.10.5.Final/ArjunaCore/arjuna/classes/com/arjuna/ats/arjuna/tools/osb/mbean/ActionBean.java#L295
      [3] https://github.com/jbosstm/narayana/blob/5.10.5.Final/ArjunaCore/arjuna/classes/com/arjuna/ats/arjuna/coordinator/BasicAction.java#L2551
      [4] https://github.com/jbosstm/narayana/blob/5.10.5.Final/ArjunaJTA/jta/classes/com/arjuna/ats/internal/jta/resources/arjunacore/XAResourceRecord.java#L1320
      [5] https://github.com/jbosstm/narayana/blob/5.10.5.Final/ArjunaJTA/jta/classes/com/arjuna/ats/internal/jta/resources/arjunacore/XAResourceRecord.java#L463

      Attachments

        Issue Links

          Activity

            People

              ochaloup@redhat.com Ondrej Chaloupka (Inactive)
              ochaloup@redhat.com Ondrej Chaloupka (Inactive)
              Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: