Module org.hsqldb

Class JDBCXID

java.lang.Object
org.hsqldb.jdbc.pool.JDBCXID
All Implemented Interfaces:
Xid

public class JDBCXID extends Object implements Xid
Implementation of Xid for tests.
 // Example usage:

 JDBCXADataSource ds = new JDBCXADataSource();

 ds.setUser(user);
 ds.setPassword(password);
 ds.setUrl(jdbcUrl);

 XAConnection xaCon = ds.getConnection();
 Connection con = xaCon.getConnection();
 Xid xid = JDBCXID.getUniqueXid((int)Thread.currentThread().getId());
 XAResource xaRes = xaCon.getXAResource();

  // Start the transaction.
 System.out.println("Starting XA transaction with xid = " + xid.toString());

 xaRes.setTransactionTimeout(0);
 xaRes.start(xid,XAResource.TMNOFLAGS);

 // Do work here ....

 // Commit the transaction.
 xaRes.end(xid,XAResource.TMSUCCESS);
 xaRes.commit(xid,true);

 // Cleanup.
 con.close();
 xaCon.close();
 
Author:
Fred Toussi (fredt@users dot sourceforge.net), Campbell Burnet (campbell-burnet@users dot sourceforge.net)
  • Constructor Details

    • JDBCXID

      public JDBCXID(int formatID, byte[] txID, byte[] txBranch)
  • Method Details

    • getFormatId

      public int getFormatId()
      Specified by:
      getFormatId in interface Xid
    • getGlobalTransactionId

      public byte[] getGlobalTransactionId()
      Specified by:
      getGlobalTransactionId in interface Xid
    • getBranchQualifier

      public byte[] getBranchQualifier()
      Specified by:
      getBranchQualifier in interface Xid
    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class Object
    • equals

      public boolean equals(Object other)
      Overrides:
      equals in class Object
    • toString

      public String toString()
      Overrides:
      toString in class Object
    • getUniqueXid

      public static Xid getUniqueXid(int threadId)
      Retrieves a randomly generated JDBCXID. The newly generated object is based on the local IP address, the given threadId and a randomly generated number using the current time in milliseconds as the random seed. Note that java.util.Random is used, not java.security.SecureRandom.
      Parameters:
      threadId - can be a real thread id or just some convenient tracking value.
      Returns:
      a randomly generated JDBCXID