10 Replies Latest reply on Dec 11, 2015 11:07 AM by Ondra Chaloupka

    Whether to attempt to query the transaction manager rather than rely solely on orphan detection

    Tom Jenkinson Master

      I was recently discussing with a user the potential for the recovery manager to attempt to contact the transaction manager to determine if an Xid is indoubt before rolling it back.

       

      There are a couple of advantages to this:

      1. In the common case where the recovery manager and transaction manager are co-located this negates the need for a timeout based process entirely

      2. In the case where the recovery manager and transaction manager are distributed, the same behaviour of orphan detection can be employed (or possibly the timeout interval extended)

       

      I have a diff for this over here: Query the action status service in orphan detection by tomjenkinson · Pull Request #957 · jbosstm/narayana · GitHub

       

      The disadvantages are:

      1. Different behaviour could be observed when the two actors are in different JVMs - i.e. distributed case eventually needs to rely on timeout (in case of partition/crash ambiguity) and local would not need that

      2. In the distributed case, the actors need to share an object store

      3. TransactionStatusConnectionManager must be enabled

       

      I am creating this discussion to see if there are strong objections to adding this new feature.