bitronix.tm
Class BitronixXid

java.lang.Object
  extended bybitronix.tm.BitronixXid
All Implemented Interfaces:
javax.transaction.xa.Xid

public class BitronixXid
extends java.lang.Object
implements javax.transaction.xa.Xid

Implementation of Xid.

A XID is divided in two parts: globalTransactionId (GTRID) and branchQualifier (BQUAL). The first one uniquely identifies the global transaction while the latter uniquely identifies the transaction branch, or the local part of the global transaction inside a resource.

Technically in the Bitronix implementation, GTRID and BQUAL have the same format as described by Mike Spille. Each BitronixTransaction get assigned a GTRID at creation time and full XIDs are created and assigned to every XAResourceHolderState when enlisted in the transaction's XAResourceManager. Both GTRID and XIDs are generated by the UidGenerator.

© Bitronix Software

Author:
lorban
See Also:
UidGenerator, BitronixTransaction, XAResourceManager, XA Exposed, Part III: The Implementor's Notebook

Field Summary
static int FORMAT_ID
          int-encoded "Btnx" string.
 
Fields inherited from interface javax.transaction.xa.Xid
MAXBQUALSIZE, MAXGTRIDSIZE
 
Constructor Summary
BitronixXid(Uid globalTransactionId, Uid branchQualifier)
          Create a new XID using the specified GTRID and BQUAL.
BitronixXid(javax.transaction.xa.Xid xid)
           
 
Method Summary
 boolean equals(java.lang.Object obj)
          Compare two XIDs for equality.
 byte[] getBranchQualifier()
          Get the BQUAL of the XID.
 Uid getBranchQualifierUid()
           
 int getFormatId()
          Get Bitronix XID format ID.
 byte[] getGlobalTransactionId()
          Get the GTRID of the XID.
 Uid getGlobalTransactionIdUid()
           
 int hashCode()
          Get an integer hash for the XID.
 java.lang.String toString()
          Get a human-readable string representation of the XID.
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 

Field Detail

FORMAT_ID

public static final int FORMAT_ID
int-encoded "Btnx" string. This is used as the globally unique ID to discriminate BTM XIDs.

See Also:
Constant Field Values
Constructor Detail

BitronixXid

public BitronixXid(Uid globalTransactionId,
                   Uid branchQualifier)
Create a new XID using the specified GTRID and BQUAL.

Parameters:
globalTransactionId - the GTRID.
branchQualifier - the BQUAL.

BitronixXid

public BitronixXid(javax.transaction.xa.Xid xid)
Method Detail

getFormatId

public int getFormatId()
Get Bitronix XID format ID. Defined by FORMAT_ID.

Specified by:
getFormatId in interface javax.transaction.xa.Xid
Returns:
the Bitronix XID format ID.

getBranchQualifier

public byte[] getBranchQualifier()
Get the BQUAL of the XID.

Specified by:
getBranchQualifier in interface javax.transaction.xa.Xid
Returns:
the XID branch qualifier.

getBranchQualifierUid

public Uid getBranchQualifierUid()

getGlobalTransactionId

public byte[] getGlobalTransactionId()
Get the GTRID of the XID.

Specified by:
getGlobalTransactionId in interface javax.transaction.xa.Xid
Returns:
the XID global transaction ID.

getGlobalTransactionIdUid

public Uid getGlobalTransactionIdUid()

toString

public java.lang.String toString()
Get a human-readable string representation of the XID.

Returns:
a human-readable string representation.

equals

public boolean equals(java.lang.Object obj)
Compare two XIDs for equality.

Parameters:
obj - the XID to compare to.
Returns:
true if both XIDs have the same format ID and contain exactly the same GTRID and BQUAL.

hashCode

public int hashCode()
Get an integer hash for the XID.

Returns:
a constant hash value.