11 Replies Latest reply on Feb 15, 2016 6:40 AM by tomjenkinson

    how app thread should clear tx with status STATUS_ROLLEDBACK

    smarlow

      Hi,

       

      Previous discussion here mentions that calling tm.suspend, can be used to clear a (reaper) cancelled transaction from the application thread.  I also heard from Jonathan (on irc today), that tm.suspend or tm.rollback can be used to clear the (canceled) transaction from the application thread.

       

      Jesper raised a concern, that other transaction managers may operate differently (Narayana?)  I'm posting here so others can express additional concerns and recommendations (as to whether WF8 should use tm.rollback or tm.suspend to clear current threads tx for rolledback tx case).

       

      Current options that we have for disassociating the canceled transaction from the application thread are:

       

      1. call tm.rollback() from application thread if tx status is Status.STATUS_ROLLEDBACK
      2. call tm.suspend() from application thread if tx status is Status.STATUS_ROLLEDBACK

       

      Currently, we are calling tm.commit(), which gets a "ARJUNA016063: The transaction is not active!". 

       

      If we call tm.rollback(), we will get warning noise about "ARJUNA012077: Abort called on already aborted atomic action".

       

      My preference is to clear the transaction from the application thread, in the most (tm) portable way, in case something changes on the JBossTM/JBossTS/Narayana side. 

       

      Scott