16011602160316041605160616071608160916101611
if (info.getState() == TxInfo.ASSOCIATION_SUSPENDED) { if (XAUtils.mustEndSuspendedRMs(xaRes)) xaRes.start(info.xid(), XAResource.TMRESUME); xaRes.end(info.xid(), XAResource.TMSUCCESS); info.setState(TxInfo.NOT_ASSOCIATED); } } } catch (XAException ex)
612613614615616617618619620621622
int xaStartResume = ((theModifier == null) ? XAResource.TMRESUME : theModifier .xaStartParameters(XAResource.TMRESUME)); xaRes.start(info.xid(), xaStartResume); info.setState(TxInfo.ASSOCIATED); synchronized (this) {
642643644645646647648649650651652
int xaStartJoin = ((theModifier == null) ? XAResource.TMJOIN : theModifier .xaStartParameters(XAResource.TMJOIN)); xaRes.start(info.xid(), xaStartJoin); info.setState(TxInfo.ASSOCIATED); return true; }
874875876877878879880881882883884
/* * Re-create xid. */ xid = existingRM.xid(); try { int xaStartJoin = ((theModifier == null) ? XAResource.TMJOIN : theModifier.xaStartParameters(XAResource.TMJOIN));
10781079108010811082108310841085108610871088
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;
10791080108110821083108410851086108710881089
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; }
10981099110011011102110311041105110611071108
{ 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)
11051106110711081109111011111112111311141115
} else { if ((flags & XAResource.TMSUSPEND) != 0) { xaRes.end(info.xid(), XAResource.TMSUSPEND); info.setState(TxInfo.ASSOCIATION_SUSPENDED); synchronized (this) { _suspendCount++;
11151116111711181119112011211122112311241125
_suspendCount++; } } else { xaRes.end(info.xid(), XAResource.TMFAIL); info.setState(TxInfo.FAILED); } } } break;
11291130113111321133113411351136113711381139
{ // Oracle barfs if we don't send 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)