Package org.datanucleus.transaction
Class ResourcedTransaction
- java.lang.Object
-
- org.datanucleus.transaction.ResourcedTransaction
-
public class ResourcedTransaction extends java.lang.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 Summary
Fields Modifier and Type Field Description private java.util.Map<javax.transaction.xa.XAResource,javax.transaction.xa.Xid>
activeBranches
active branches are resources that have not ended and are not suspendedprivate java.util.Map<javax.transaction.xa.Xid,javax.transaction.xa.XAResource>
branches
branches - each resource is a new branchprivate boolean
completing
has completing started ?private java.util.List<javax.transaction.xa.XAResource>
enlistedResources
enlisted XAResource resourcesprivate java.lang.String
idString
private static int
NEXT_GLOBAL_TRANSACTION_ID
sequence number for global transactionsprivate int
nextBranchId
number for next branchprivate static int
NODE_ID
id of this instancestatic java.util.Random
random
Random number generator, for use when needing unique names.private int
status
transaction status(package private) static int
STATUS_ACTIVE
(package private) static int
STATUS_COMMITTED
(package private) static int
STATUS_COMMITTING
(package private) static int
STATUS_MARKED_ROLLBACK
(package private) static int
STATUS_NO_TRANSACTION
(package private) static int
STATUS_PREPARED
(package private) static int
STATUS_PREPARING
(package private) static int
STATUS_ROLLEDBACK
(package private) static int
STATUS_ROLLING_BACK
(package private) static int
STATUS_UNKNOWN
private java.util.Map<javax.transaction.xa.XAResource,javax.transaction.xa.Xid>
suspendedResources
suspended branchesprivate java.util.List<javax.transaction.Synchronization>
synchronization
Synchonizationprivate javax.transaction.xa.Xid
xid
transaction id
-
Constructor Summary
Constructors Constructor Description ResourcedTransaction()
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description void
commit()
boolean
delistResource(javax.transaction.xa.XAResource xaRes, int flag)
boolean
enlistResource(javax.transaction.xa.XAResource xaRes)
int
getStatus()
static java.lang.String
getXAErrorCode(java.lang.Throwable xae)
private static java.lang.String
getXAFlag(int flag)
boolean
isEnlisted(javax.transaction.xa.XAResource xaRes)
void
registerSynchronization(javax.transaction.Synchronization sync)
void
rollback()
void
setRollbackOnly()
java.lang.String
toString()
-
-
-
Field Detail
-
random
public static final java.util.Random random
Random number generator, for use when needing unique names.
-
STATUS_ACTIVE
static final int STATUS_ACTIVE
- See Also:
- Constant Field Values
-
STATUS_MARKED_ROLLBACK
static final int STATUS_MARKED_ROLLBACK
- See Also:
- Constant Field Values
-
STATUS_PREPARED
static final int STATUS_PREPARED
- See Also:
- Constant Field Values
-
STATUS_COMMITTED
static final int STATUS_COMMITTED
- See Also:
- Constant Field Values
-
STATUS_ROLLEDBACK
static final int STATUS_ROLLEDBACK
- See Also:
- Constant Field Values
-
STATUS_UNKNOWN
static final int STATUS_UNKNOWN
- See Also:
- Constant Field Values
-
STATUS_NO_TRANSACTION
static final int STATUS_NO_TRANSACTION
- See Also:
- Constant Field Values
-
STATUS_PREPARING
static final int STATUS_PREPARING
- See Also:
- Constant Field Values
-
STATUS_COMMITTING
static final int STATUS_COMMITTING
- See Also:
- Constant Field Values
-
STATUS_ROLLING_BACK
static final int STATUS_ROLLING_BACK
- See Also:
- Constant Field Values
-
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 javax.transaction.xa.Xid xid
transaction id
-
status
private int status
transaction status
-
completing
private boolean completing
has completing started ?
-
synchronization
private java.util.List<javax.transaction.Synchronization> synchronization
Synchonization
-
enlistedResources
private java.util.List<javax.transaction.xa.XAResource> enlistedResources
enlisted XAResource resources
-
branches
private java.util.Map<javax.transaction.xa.Xid,javax.transaction.xa.XAResource> branches
branches - each resource is a new branch
-
activeBranches
private java.util.Map<javax.transaction.xa.XAResource,javax.transaction.xa.Xid> activeBranches
active branches are resources that have not ended and are not suspended
-
suspendedResources
private java.util.Map<javax.transaction.xa.XAResource,javax.transaction.xa.Xid> suspendedResources
suspended branches
-
idString
private final java.lang.String idString
-
-
Method Detail
-
getStatus
public int getStatus()
-
isEnlisted
public boolean isEnlisted(javax.transaction.xa.XAResource xaRes)
-
enlistResource
public boolean enlistResource(javax.transaction.xa.XAResource xaRes)
-
delistResource
public boolean delistResource(javax.transaction.xa.XAResource xaRes, int flag)
-
registerSynchronization
public void registerSynchronization(javax.transaction.Synchronization sync)
-
commit
public void commit()
-
rollback
public void rollback()
-
setRollbackOnly
public void setRollbackOnly()
-
getXAErrorCode
public static java.lang.String getXAErrorCode(java.lang.Throwable xae)
-
getXAFlag
private static java.lang.String getXAFlag(int flag)
-
toString
public java.lang.String toString()
- Overrides:
toString
in classjava.lang.Object
-
-