Package oracle.jdbc.xa
Class OracleXid
- java.lang.Object
-
- oracle.jdbc.xa.OracleXid
-
- All Implemented Interfaces:
Serializable,Xid
public class OracleXid extends Object implements Xid, Serializable
The OracleXid class:- See Also:
- Serialized Form
-
-
Field Summary
Fields Modifier and Type Field Description static intMAXBQUALSIZEstatic intMAXGTRIDSIZE
-
Constructor Summary
Constructors Constructor Description OracleXid(int fId, byte[] gId, byte[] bId)OracleXid() -- The constructor that constructs an OracleXid with given formatId, global transacrion Id and branch qualifier.OracleXid(int fId, byte[] gId, byte[] bId, byte[] context)OracleXid() -- The constructor that constructs an OracleXid with given formatId, global transacrion Id and branch qualifier, and transaction context.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description booleanequals(Object xid)byte[]getBranchQualifier()getBranchQualifier() -- Obtain the txn branch qualifier of the XIDprotected oracle.jdbc.internal.OracleConnectiongetConnectionDuringExceptionHandling()Compares the given transaction identifiers with this.intgetFormatId()getFormatId() -- Obtain the format identifier part of the Xid.byte[]getGlobalTransactionId()getGlobalTransactionId() -- Obtain the global txn id of the XIDinthashCode()static booleanisLocalTransaction(Xid xid)
-
-
-
Field Detail
-
MAXGTRIDSIZE
public static final int MAXGTRIDSIZE
- See Also:
- Constant Field Values
-
MAXBQUALSIZE
public static final int MAXBQUALSIZE
- See Also:
- Constant Field Values
-
-
Constructor Detail
-
OracleXid
public OracleXid(int fId, byte[] gId, byte[] bId) throws XAExceptionOracleXid() -- The constructor that constructs an OracleXid with given formatId, global transacrion Id and branch qualifier.- Parameters:
fId- format IDgId- global transaction ID (no copy performed)bId- branch Qualifier (no copy performed)- Throws:
XAException- if the size of gId or bId is more than 64 bytes
-
OracleXid
public OracleXid(int fId, byte[] gId, byte[] bId, byte[] context) throws XAExceptionOracleXid() -- The constructor that constructs an OracleXid with given formatId, global transacrion Id and branch qualifier, and transaction context.- Parameters:
fId- format IDgId- global transaction ID (no copy performed)bId- branch Qualifier (no copy performed)context- transation context (no copy performed)- Throws:
XAException- if the size of gId or bId is more than 64 bytes
-
-
Method Detail
-
getFormatId
public int getFormatId()
getFormatId() -- Obtain the format identifier part of the Xid.- Specified by:
getFormatIdin interfaceXid- Returns:
- Format identifier. 0 means the OSI CCR format.
-
getGlobalTransactionId
public byte[] getGlobalTransactionId()
getGlobalTransactionId() -- Obtain the global txn id of the XID- Specified by:
getGlobalTransactionIdin interfaceXid- Returns:
- A byte array containing the global transaction identifier.
-
getBranchQualifier
public byte[] getBranchQualifier()
getBranchQualifier() -- Obtain the txn branch qualifier of the XID- Specified by:
getBranchQualifierin interfaceXid- Returns:
- A byte array containing the branch qualifier of the transaction.
-
isLocalTransaction
public static final boolean isLocalTransaction(Xid xid)
-
getConnectionDuringExceptionHandling
protected oracle.jdbc.internal.OracleConnection getConnectionDuringExceptionHandling()
Compares the given transaction identifiers with this. If the format is different or any byte in the global transaction if or the branch qualifier differs from this, then false is returned. public boolean equals(Object obj) { if(obj==this) return true; OracleXid xid =null; try { xid = (OracleXid)obj; } catch(ClassCastException e){ return false; } if(formatId != xid.getFormatId()) return false; byte[] gtridB = xid.getGlobalTransactionId(); byte[] bqualB = xid.getBranchQualifier(); if(gtrid != gtridB){ if( (gtrid == null && gtridB != null) || (gtridB == null && gtrid != null) ) return false; if(gtridB!=null){ if(gtridB.length != gtrid.length) return false; for(int i=0;i<gtrid.length;i++){ if(gtridB[i] != gtrid[i]) return false; } } } if(bqual != bqualB){ if( ( bqualB == null && bqual != null) || (bqual == null && bqualB != null) ) return false; if(bqualB!=null){ if(bqualB.length != bqual.length) return false; for(int i=0;i<bqualB.length;i++){ if(bqualB[i] != bqual[i]) return false; } } } return true; } public int hashCode() { int ret = formatId; int temp = 0; for(int i=0;i<gtrid.length/4;i++){ temp = (int)gtrid[i] + ((int)(gtrid[i+1]<<8))&0xff00 + ((int)(gtrid[i+2]<<16))&0xff0000 + ((int)(gtrid[i+3]<<24))&0xff000000; ret += temp; } for(int i=0;i<bqual.length/4;i++){ temp = (int)bqual[i] + ((int)(bqual[i+1]<<8))&0xff00 + ((int)(bqual[i+2]<<16))&0xff0000 + ((int)(bqual[i+3]<<24))&0xff000000; ret += temp; } return ret; }
-
-