Class ResourcedTransaction

java.lang.Object
org.datanucleus.transaction.ResourcedTransaction

public class ResourcedTransaction extends Object
Transaction allowing resources to be enlisted, with branches and phased commit, following the style of an Open/XA transaction. Enlisted resources are typically datastore resources which, in turn, need committing.
  • Field Details

    • random

      public static final Random random
      Random number generator, for use when needing unique names.
    • STATUS_ACTIVE

      static final int STATUS_ACTIVE
      See Also:
    • STATUS_MARKED_ROLLBACK

      static final int STATUS_MARKED_ROLLBACK
      See Also:
    • STATUS_PREPARED

      static final int STATUS_PREPARED
      See Also:
    • STATUS_COMMITTED

      static final int STATUS_COMMITTED
      See Also:
    • STATUS_ROLLEDBACK

      static final int STATUS_ROLLEDBACK
      See Also:
    • STATUS_UNKNOWN

      static final int STATUS_UNKNOWN
      See Also:
    • STATUS_NO_TRANSACTION

      static final int STATUS_NO_TRANSACTION
      See Also:
    • STATUS_PREPARING

      static final int STATUS_PREPARING
      See Also:
    • STATUS_COMMITTING

      static final int STATUS_COMMITTING
      See Also:
    • STATUS_ROLLING_BACK

      static final int STATUS_ROLLING_BACK
      See Also:
    • NODE_ID

      private static final int NODE_ID
      id of this instance
    • NEXT_GLOBAL_TRANSACTION_ID

      private static int NEXT_GLOBAL_TRANSACTION_ID
      sequence number for global transactions
    • nextBranchId

      private int nextBranchId
      number for next branch
    • xid

      private final Xid xid
      transaction id
    • status

      private int status
      transaction status
    • completing

      private boolean completing
      has completing started ?
    • synchronization

      private List<Synchronization> synchronization
      Synchonization
    • enlistedResources

      private List<XAResource> enlistedResources
      enlisted XAResource resources
    • branches

      private Map<Xid,XAResource> branches
      branches - each resource is a new branch
    • activeBranches

      private Map<XAResource,Xid> activeBranches
      active branches are resources that have not ended and are not suspended
    • suspendedResources

      private Map<XAResource,Xid> suspendedResources
      suspended branches
    • idString

      private final String idString
  • Constructor Details

    • ResourcedTransaction

      ResourcedTransaction()
  • Method Details

    • getStatus

      public int getStatus()
    • isEnlisted

      public boolean isEnlisted(XAResource xaRes)
    • enlistResource

      public boolean enlistResource(XAResource xaRes)
    • delistResource

      public boolean delistResource(XAResource xaRes, int flag)
    • registerSynchronization

      public void registerSynchronization(Synchronization sync)
    • commit

      public void commit()
    • rollback

      public void rollback()
    • setRollbackOnly

      public void setRollbackOnly()
    • getXAErrorCode

      public static String getXAErrorCode(Throwable xae)
    • getXAFlag

      private static String getXAFlag(int flag)
    • toString

      public String toString()
      Overrides:
      toString in class Object