xaRes.end(manager.getBranchId(), flag); if (flag == XAResource.TMSUSPEND) { suspendedXaResources.put(xaRes, manager);
xaRes.end(manager.getBranchId(), flag); if (flag == XAResource.TMSUSPEND) { suspendedXaResources.put(xaRes, manager);
xaRes.end(manager.getBranchId(), flag); if (flag == XAResource.TMSUSPEND) { suspendedXaResources.put(xaRes, manager);
int vote = manager.getCommitter().prepare(manager.getBranchId()); if (vote == XAResource.XA_RDONLY) {
if (manager != null) { xaRes.start(manager.getBranchId(), XAResource.TMRESUME); activeXaResources.put(xaRes, manager); return true; xaRes.start(manager.getBranchId(), XAResource.TMJOIN); activeXaResources.put(xaRes, manager); return true;
TransactionBranch manager = (TransactionBranch) resourceManagers.getFirst(); try { manager.getCommitter().commit(manager.getBranchId(), true); synchronized (this) { status = Status.STATUS_COMMITTED;
if (manager != null) { xaRes.start(manager.getBranchId(), XAResource.TMRESUME); activeXaResources.put(xaRes, manager); return true; xaRes.start(manager.getBranchId(), XAResource.TMJOIN); activeXaResources.put(xaRes, manager); return true;
if (manager != null) { xaRes.start(manager.getBranchId(), XAResource.TMRESUME); activeXaResources.put(xaRes, manager); return true; xaRes.start(manager.getBranchId(), XAResource.TMJOIN); activeXaResources.put(xaRes, manager); return true;
int vote = manager.getCommitter().prepare(manager.getBranchId()); if (vote == XAResource.XA_RDONLY) {
int vote = manager.getCommitter().prepare(manager.getBranchId()); if (vote == XAResource.XA_RDONLY) {
int vote = manager.getCommitter().prepare(manager.getBranchId()); if (vote == XAResource.XA_RDONLY) {
TransactionBranch manager = (TransactionBranch) i.next(); try { manager.getCommitter().rollback(manager.getBranchId()); } catch (XAException e) { log.error("Unexpected exception rolling back " + manager.getCommitter() + "; continuing with rollback", e); manager.getCommitter().forget(manager.getBranchId()); } else if (e.errorCode == XAException.XA_RBROLLBACK || e.errorCode == XAException.XAER_RMERR
TransactionBranch manager = (TransactionBranch) i.next(); try { manager.getCommitter().rollback(manager.getBranchId()); } catch (XAException e) { log.error("Unexpected exception rolling back " + manager.getCommitter() + "; continuing with rollback", e); manager.getCommitter().forget(manager.getBranchId()); } else if (e.errorCode == XAException.XA_RBROLLBACK || e.errorCode == XAException.XAER_RMERR
xaRes.end(manager.getBranchId(), flag); if (flag == XAResource.TMSUSPEND) { suspendedXaResources.put(xaRes, manager);
TransactionBranch manager = (TransactionBranch) i.next(); try { manager.getCommitter().commit(manager.getBranchId(), false); } catch (XAException e) { log.error("Unexpected exception committing" + manager.getCommitter() + "; continuing to commit other RMs", e);
private void endResources(IdentityHashMap resourceMap) { while (true) { XAResource xaRes; TransactionBranch manager; int flags; synchronized (this) { Set entrySet = resourceMap.entrySet(); if (entrySet.isEmpty()) { return; } Map.Entry entry = (Map.Entry) entrySet.iterator().next(); xaRes = (XAResource) entry.getKey(); manager = (TransactionBranch) entry.getValue(); flags = (status == Status.STATUS_MARKED_ROLLBACK) ? XAResource.TMFAIL : XAResource.TMSUCCESS; resourceMap.remove(xaRes); } try { xaRes.end(manager.getBranchId(), flags); } catch (XAException e) { log.warn("Error ending association for XAResource " + xaRes + "; transaction will roll back. XA error code: " + e.errorCode, e); synchronized (this) { status = Status.STATUS_MARKED_ROLLBACK; } } } }
private void endResources(IdentityHashMap resourceMap) { while (true) { XAResource xaRes; TransactionBranch manager; int flags; synchronized (this) { Set entrySet = resourceMap.entrySet(); if (entrySet.isEmpty()) { return; } Map.Entry entry = (Map.Entry) entrySet.iterator().next(); xaRes = (XAResource) entry.getKey(); manager = (TransactionBranch) entry.getValue(); flags = (status == Status.STATUS_MARKED_ROLLBACK) ? XAResource.TMFAIL : XAResource.TMSUCCESS; resourceMap.remove(xaRes); } try { xaRes.end(manager.getBranchId(), flags); } catch (XAException e) { log.warn("Error ending association for XAResource " + xaRes + "; transaction will roll back. XA error code: " + e.errorCode, e); synchronized (this) { status = Status.STATUS_MARKED_ROLLBACK; } } } }
private void rollbackResources(List rms) throws SystemException { SystemException cause = null; synchronized (this) { status = Status.STATUS_ROLLING_BACK; } for (Iterator i = rms.iterator(); i.hasNext();) { TransactionBranch manager = (TransactionBranch) i.next(); try { manager.getCommitter().rollback(manager.getBranchId()); } catch (XAException e) { log.error("Unexpected exception rolling back " + manager.getCommitter() + "; continuing with rollback", e); if (cause == null) { cause = new SystemException(e.errorCode); } } } synchronized (this) { status = Status.STATUS_ROLLEDBACK; } if (cause != null) { throw cause; } }
private void endResources(IdentityHashMap<XAResource, TransactionBranch> resourceMap) { while (true) { XAResource xaRes; TransactionBranch manager; int flags; synchronized (this) { Set entrySet = resourceMap.entrySet(); if (entrySet.isEmpty()) { return; } Map.Entry entry = (Map.Entry) entrySet.iterator().next(); xaRes = (XAResource) entry.getKey(); manager = (TransactionBranch) entry.getValue(); flags = (status == Status.STATUS_MARKED_ROLLBACK) ? XAResource.TMFAIL : XAResource.TMSUCCESS; resourceMap.remove(xaRes); } try { xaRes.end(manager.getBranchId(), flags); } catch (XAException e) { log.warn("Error ending association for XAResource " + xaRes + "; transaction will roll back. XA error code: " + e.errorCode, e); synchronized (this) { markRollbackCause(e); status = Status.STATUS_MARKED_ROLLBACK; } } } }
private void endResources(IdentityHashMap resourceMap) { while (true) { XAResource xaRes; TransactionBranch manager; int flags; synchronized (this) { Set entrySet = resourceMap.entrySet(); if (entrySet.isEmpty()) { return; } Map.Entry entry = (Map.Entry) entrySet.iterator().next(); xaRes = (XAResource) entry.getKey(); manager = (TransactionBranch) entry.getValue(); flags = (status == Status.STATUS_MARKED_ROLLBACK) ? XAResource.TMFAIL : XAResource.TMSUCCESS; resourceMap.remove(xaRes); } try { xaRes.end(manager.getBranchId(), flags); } catch (XAException e) { log.warn("Error ending association for XAResource " + xaRes + "; transaction will roll back. XA error code: " + e.errorCode, e); synchronized (this) { status = Status.STATUS_MARKED_ROLLBACK; } } } }