Skip to main content

Developing with XCC

Cleaning Up After Heuristic Completion

If a heuristic decision is made for a MarkLogic Server branch of an XA transaction and the Transaction Manager subsequently completes the transaction, there are two possible outcomes:

  • The global transaction completes with an outcome that matches the heuristic decision. No further action is required.

  • The global transaction completes with an outcome that does not match the heuristic decision. Take the clean up steps listed below.

If the global transaction outcome does not agree with the heuristic decision, you may need to do the following to clean up the heuristic decision:

  • Take whatever manual steps are necessary to restore data integrity for the heuristically completed branch.

  • If the heuristic decision was remembered by setting the remember parameter of xdmp:xa-complete() to true, call xdmp:xa-forget() to clean up the remaining transaction state information.