Module org.hsqldb

Class JDBCXID

  • All Implemented Interfaces:
    javax.transaction.xa.Xid

    public class JDBCXID
    extends java.lang.Object
    implements javax.transaction.xa.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)
    • Field Summary

      • Fields inherited from interface javax.transaction.xa.Xid

        MAXBQUALSIZE, MAXGTRIDSIZE
    • Constructor Summary

      Constructors 
      Constructor Description
      JDBCXID​(int formatID, byte[] txID, byte[] txBranch)  
    • Constructor Detail

      • JDBCXID

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

      • getFormatId

        public int getFormatId()
        Specified by:
        getFormatId in interface javax.transaction.xa.Xid
      • getGlobalTransactionId

        public byte[] getGlobalTransactionId()
        Specified by:
        getGlobalTransactionId in interface javax.transaction.xa.Xid
      • getBranchQualifier

        public byte[] getBranchQualifier()
        Specified by:
        getBranchQualifier in interface javax.transaction.xa.Xid
      • hashCode

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

        public boolean equals​(java.lang.Object other)
        Overrides:
        equals in class java.lang.Object
      • toString

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

        public static javax.transaction.xa.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