600601602603604605606607608609610
* Have seen resource before, so do a resume. The * Resource instance will still be registered with the * transaction though. */ xaRes.start(info.xid(), XAResource.TMRESUME); info.setState(TxInfo.ASSOCIATED); synchronized (this) {
625626627628629630631632633634635
case TxInfo.NOT_ASSOCIATED: { /* * Resource was associated, but was presumably delisted. */ xaRes.start(info.xid(), XAResource.TMJOIN); info.setState(TxInfo.ASSOCIATED); return true; }
808809810811812813814815816817818
/* * Re-create xid. */ xid = existingRM.xid(); try { xaRes.start(xid, XAResource.TMJOIN); }
982983984985986987988989990991992
if (status == javax.transaction.Status.STATUS_MARKED_ROLLBACK) { if (XAUtils.canOptimizeDelist(xaRes)) { xaRes.end(info.xid(), XAResource.TMFAIL); xaRes.rollback(info.xid()); info.setState(TxInfo.OPTIMIZED_ROLLBACK); optimizedRollback = true;
983984985986987988989990991992993
if (status == javax.transaction.Status.STATUS_MARKED_ROLLBACK) { if (XAUtils.canOptimizeDelist(xaRes)) { xaRes.end(info.xid(), XAResource.TMFAIL); xaRes.rollback(info.xid()); info.setState(TxInfo.OPTIMIZED_ROLLBACK); optimizedRollback = true; }
10021003100410051006100710081009101010111012
{ case TxInfo.ASSOCIATED: { if ((flags & XAResource.TMSUCCESS) != 0) { xaRes.end(info.xid(), XAResource.TMSUCCESS); info.setState(TxInfo.NOT_ASSOCIATED); } else { if ((flags & XAResource.TMSUSPEND) != 0)
10091010101110121013101410151016101710181019
} else { if ((flags & XAResource.TMSUSPEND) != 0) { xaRes.end(info.xid(), XAResource.TMSUSPEND); info.setState(TxInfo.ASSOCIATION_SUSPENDED); synchronized (this) { _suspendCount++;
10191020102110221023102410251026102710281029
_suspendCount++; } } else { xaRes.end(info.xid(), XAResource.TMFAIL); info.setState(TxInfo.FAILED); } } } break;
10331034103510361037103810391040104110421043
{ // Oracle barfs if we don't resume first, despite what // XA says! if (XAUtils.mustEndSuspendedRMs(xaRes)) xaRes.start(info.xid(), XAResource.TMRESUME); xaRes.end(info.xid(), XAResource.TMSUCCESS); info.setState(TxInfo.NOT_ASSOCIATED); synchronized (this)
10351036103710381039104010411042104310441045
// XA says! if (XAUtils.mustEndSuspendedRMs(xaRes)) xaRes.start(info.xid(), XAResource.TMRESUME); xaRes.end(info.xid(), XAResource.TMSUCCESS); info.setState(TxInfo.NOT_ASSOCIATED); synchronized (this) { _suspendCount--;