protected int doCommit(Xid xid, int cPhase) throws XAException { int returnVal = -1; synchronized (physicalConn) { synchronized (this) { int command = cPhase != 1 ? 2 : 4; returnVal = doTransaction(xid, 1, command); if (cPhase == 1 && (returnVal == 2 || returnVal == 4)) { returnVal = 0; } else if (cPhase != 1 && returnVal == 5) { returnVal = 0; } else if (returnVal == 8) { throw new XAException(106); } if (returnVal == 24756) { returnVal = kputxrec(xid, 1, timeout + 120); } else if (returnVal == 24780) { OracleXADataSource oxds = null; XAConnection pc = null; try { oxds = new OracleXADataSource(); oxds.setURL(physicalConn.url); oxds.setUser(physicalConn.user); physicalConn.getPasswordInternal(this); oxds.setPassword(password); pc = oxds.getXAConnection(); XAResource oxar = pc.getXAResource(); oxar.commit(xid, cPhase == 1); returnVal = 0; } catch (SQLException e) { throw new XAException(-6); } finally { try { if (pc != null) { pc.close(); } if (oxds != null) { oxds.close(); } } catch (Exception ee) { } } } } } return returnVal; }
protected int doRollback(Xid xid) throws XAException { int returnVal = -1; synchronized (physicalConn) { synchronized (this) { returnVal = doTransaction(xid, 2, 3); if (returnVal == 8) { throw new XAException(106); } if (returnVal == 3 || returnVal == 25402) { returnVal = 0; } if (returnVal == 24756) { returnVal = kputxrec(xid, 2, timeout + 120); } else if (returnVal == 24780) { OracleXADataSource oxds = null; XAConnection pc = null; try { oxds = new OracleXADataSource(); oxds.setURL(physicalConn.url); oxds.setUser(physicalConn.user); physicalConn.getPasswordInternal(this); oxds.setPassword(password); pc = oxds.getXAConnection(); XAResource oxar = pc.getXAResource(); oxar.rollback(xid); returnVal = 0; } catch (SQLException e) { throw new XAException(-6); } finally { try { if (pc != null) { pc.close(); } if (oxds != null) { oxds.close(); } } catch (Exception ee) { } } } } } return returnVal; }