Package org.mariadb.jdbc
Class MariaDbXid
- java.lang.Object
-
- org.mariadb.jdbc.MariaDbXid
-
- All Implemented Interfaces:
javax.transaction.xa.Xid
public class MariaDbXid extends java.lang.Object implements javax.transaction.xa.XidMariaDB XID implementation
-
-
Field Summary
Fields Modifier and Type Field Description private byte[]branchQualifierprivate intformatIdprivate byte[]globalTransactionId
-
Constructor Summary
Constructors Constructor Description MariaDbXid(int formatId, byte[] globalTransactionId, byte[] branchQualifier)Global transaction identifier.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description booleanequals(java.lang.Object obj)Equal implementation.static MariaDbXidfromRecoverRow(int formatId, int gtridLength, int bqualLength, byte[] data)Build an XID from an XA RECOVER row.byte[]getBranchQualifier()Get branch qualifier from XIDintgetFormatId()Get format id from XIDbyte[]getGlobalTransactionId()Get global transaction id from XIDinthashCode()
-
-
-
Constructor Detail
-
MariaDbXid
public MariaDbXid(int formatId, byte[] globalTransactionId, byte[] branchQualifier)Global transaction identifier.- Parameters:
formatId- the format identifier part of the XID.globalTransactionId- the global transaction identifier part of XID as an array of bytes.branchQualifier- the transaction branch identifier part of XID as an array of bytes.
-
-
Method Detail
-
fromRecoverRow
public static MariaDbXid fromRecoverRow(int formatId, int gtridLength, int bqualLength, byte[] data) throws javax.transaction.xa.XAException
Build an XID from an XA RECOVER row. The row carries the gtrid and bqual concatenated in a singledatacolumn, split according to thegtrid_lengthandbqual_lengthcolumns. Those lengths come from the server, so they are validated against the XA specification bounds and the actual payload before any allocation or copy: a rogue or man-in-the-middle server must not be able to drive the client into a huge allocation or an undeclared runtime exception.- Parameters:
formatId- the format identifier part of the XIDgtridLength- server-declared global transaction identifier lengthbqualLength- server-declared branch qualifier lengthdata- concatenated gtrid + bqual bytes- Returns:
- the parsed XID
- Throws:
javax.transaction.xa.XAException- with XAER_RMFAIL when the lengths are negative, exceedXid.MAXGTRIDSIZE/Xid.MAXBQUALSIZE, or do not fit the payload
-
equals
public boolean equals(java.lang.Object obj)
Equal implementation.- Overrides:
equalsin classjava.lang.Object- Parameters:
obj- object to compare- Returns:
- true if object is MariaDbXi and as same parameters
-
hashCode
public int hashCode()
- Overrides:
hashCodein classjava.lang.Object
-
getFormatId
public int getFormatId()
Get format id from XID- Specified by:
getFormatIdin interfacejavax.transaction.xa.Xid- Returns:
- format id
-
getGlobalTransactionId
public byte[] getGlobalTransactionId()
Get global transaction id from XID- Specified by:
getGlobalTransactionIdin interfacejavax.transaction.xa.Xid- Returns:
- global transaction id
-
getBranchQualifier
public byte[] getBranchQualifier()
Get branch qualifier from XID- Specified by:
getBranchQualifierin interfacejavax.transaction.xa.Xid- Returns:
- branch qualifier
-
-