How to get rid of the warning: WARN: com.arjuna.ats.jta ARJUNA016037: Could not find new XAResource to use for recovering non-serializable XAResource XAResourceRecord?

marielle.spiteri's picture
marielle.spiteri
Blog Categories: 

In this article, you'll learn about this error and how to remove it from your log file.

What do you see in your Bonita log file?

Depending on your RDBMS database server, the trace may vary a little, but you'll always see the ARJUNA016037 code. For example, you'll see:

2019-12-24 11:25:32.789 +0100 WARN: com.arjuna.ats.jta ARJUNA016037: Could not find new XAResource to use for recovering non-serializable XAResource XAResourceRecord < resource:null, txid:< formatId=131077, gtrid_length=29, bqual_length=36, tx_uid=0:ffff0a9a7092:ecf9:5e00e42c:35, node_name=1, branch_uid=0:ffff0a9a7092:ecf9:5e00e42c:3a, subordinatenodename=null, eis_name=0 >, heuristic: TwoPhaseOutcome.HEURISTIC_HAZARD com.arjuna.ats.internal.jta.resources.arjunacore.XAResourceRecord@76bd9032 >

2019-12-24 11:25:32.789 +0100 WARN: com.arjuna.ats.jta XAResourceRecord restored heuristic instance: XAResourceRecord < resource:null, txid:< formatId=131077, gtrid_length=29, bqual_length=36, tx_uid=0:ffff0a9a7092:ecf9:5e00e42c:35, node_name=1, branch_uid=0:ffff0a9a7092:ecf9:5e00e42c:3a, subordinatenodename=null, eis_name=0 >, heuristic: TwoPhaseOutcome.HEURISTIC_HAZARD com.arjuna.ats.internal.jta.resources.arjunacore.XAResourceRecord@76bd9032 >

2019-12-24 11:25:32.789 +0100 WARN: com.arjuna.ats.arjuna Transaction 0:ffff0a9a7092:ecf9:5e00e42c:35 restored heuristic participant XAResourceRecord < resource:null, txid:< formatId=131077, gtrid_length=29, bqual_length=36, tx_uid=0:ffff0a9a7092:ecf9:5e00e42c:35, node_name=1, branch_uid=0:ffff0a9a7092:ecf9:5e00e42c:3a, subordinatenodename=null, eis_name=0 >, heuristic: TwoPhaseOutcome.HEURISTIC_HAZARD com.arjuna.ats.internal.jta.resources.arjunacore.XAResourceRecord@76bd9032 >
2019-12-24 11:27:42.893 +0100 WARN: com.arjuna.ats.arjuna Transaction 0:ffff0a9a7092:ecf9:5e00e42c:35 has 1 heuristic participant(s)!

Why do you see this error in your Bonita log file?

This message means that there was a transaction that was committed by the transaction manager but the application server does not receive confirmation that a transaction has been completed in the database ... So the transaction manager tries to recover this transaction but cannot find it. This is harmless as everything was committed. If you did not notice any missing instances or blocked processes, you may just delete this message.

Sometimes, ARJUNA016037 comes along with ARJUNA16038.

What should you do to remove that error for your log file?

  1. The first thing to do is to identify the transaction(s) that is/are raising error in your log, for instance in the trace above: tx_uid=0:ffff0a9a7092:ecf9:5e00e42c:35
  2. Then go inside the folder: BonitaSubscription-7.10.4/server/work/bonita-tx-object-store/
  3. Move down in this folder and find the transaction file named after the tx_uid (note that_ will replace the :): 0_ffff0a9a7092_ecf9_5e00e42c_35
  4. Important: Be very wary about that step, and double check the name of the file for your transaction object. If you remove the wrong file, then you will have inconsistent state. Once you're sure, remove the file, for example: 0_ffff0a9a7092_ecf9_5e00e42c_35

For further information, here's some reading!

https://developer.jboss.org/thread/221033 https://stackoverflow.com/questions/6490328/what-causes-arjuna-1603-could-not-find-new-xaresource-to-use-for-recovering-non

Have fun with Bonita!

Notifications