jtaLogger.i18NLogger.warn_resources_arjunacore_rollbacknulltx("XAResourceRecord.rollback"); _theXAResource = getNewXAResource(); if (endAssociation()) _theXAResource.end(_tranID, XAResource.TMSUCCESS); jtaLogger.i18NLogger.warn_resources_arjunacore_rollbackerror(XAHelper.xidToString(_tranID), _theXAResource.toString(), XAHelper.printXAErrorCode(e1), e1); removeConnection(); jtaLogger.i18NLogger.warn_resources_arjunacore_rollbackerror(XAHelper.xidToString(_tranID), _theXAResource.toString(), "-", e); _theXAResource.rollback(_tranID); jtaLogger.i18NLogger.warn_resources_arjunacore_rollbackerror(XAHelper.xidToString(_tranID), _theXAResource.toString(), XAHelper.printXAErrorCode(e1), e1); jtaLogger.i18NLogger.warn_resources_arjunacore_rollbackerror(XAHelper.xidToString(_tranID), _theXAResource.toString(), "-", e2); jtaLogger.i18NLogger.warn_resources_arjunacore_noresource(XAHelper.xidToString(_tranID)); jtaLogger.i18NLogger.info_resources_arjunacore_assumecomplete(XAHelper.xidToString(_tranID));
/** * Is the Xid is in the failure list, i.e., the list of those transactions * we couldn't recover, possibly because of transient failures. If so, * return the uid of (one of) the records and remove it from the list. */ private final Uid previousFailure(Xid xid) { if (_failures == null) { return null; } Enumeration e = _failures.keys(); while (e.hasMoreElements()) { Xid theXid = (Xid) e.nextElement(); if (XAHelper.sameXID(xid, theXid)) { // remove uid from failure list Vector failureItem = (Vector) _failures.get(theXid); Uid u = (Uid) failureItem.remove(0); if (failureItem.size() == 0) _failures.remove(theXid); return u; } } // not present in the failures list. return null; }
jtaLogger.i18NLogger.warn_resources_arjunacore_rollbackerror(XAHelper.xidToString(xid), xaResource.toString(), XAHelper.printXAErrorCode(e), e);
jtaLogger.i18NLogger.warn_resources_arjunacore_commitnulltx("XAResourceRecord.commit"); _theXAResource = getNewXAResource(); _theXAResource.commit(_tranID, false); if (notAProblem(e1, true)) jtaLogger.i18NLogger.warn_resources_arjunacore_commitxaerror(XAHelper.xidToString(_tranID), _theXAResource.toString(), XAHelper.printXAErrorCode(e1), e1); jtaLogger.i18NLogger.warn_resources_arjunacore_commitxaerror(XAHelper.xidToString(_tranID), _theXAResource.toString(), "-", e2); removeConnection(); jtaLogger.i18NLogger.warn_resources_arjunacore_noresource(XAHelper.xidToString(_tranID)); jtaLogger.i18NLogger.info_resources_arjunacore_assumecomplete(XAHelper.xidToString(_tranID));
public int topLevelPrepare() jtaLogger.logger.trace("XAResourceRecord.topLevelPrepare for " + this + ", record id=" + order()); jtaLogger.i18NLogger.warn_resources_arjunacore_preparenulltx("XAResourceRecord.prepare"); removeConnection(); endAssociation(XAResource.TMSUCCESS, TxInfo.NOT_ASSOCIATED); if (_theXAResource.prepare(_tranID) == XAResource.XA_RDONLY) addDeferredThrowable(e1); jtaLogger.i18NLogger.warn_resources_arjunacore_preparefailed(XAHelper.xidToString(_tranID), _theXAResource.toString(), XAHelper.printXAErrorCode(e1), e1); jtaLogger.i18NLogger.warn_resources_arjunacore_preparefailed(XAHelper.xidToString(_tranID), _theXAResource.toString(), "-", e2);
Enumeration el = _resources.keys(); while (el.hasMoreElements()) XAResource x = (XAResource) el.nextElement(); if (x.isSameRM(xaRes)) return (TxInfo) _resources.get(x); el = _duplicateResources.keys(); while (el.hasMoreElements()) XAResource x = (XAResource) el.nextElement(); if (x.isSameRM(xaRes)) return (TxInfo) _duplicateResources.get(x); jtaLogger.i18NLogger.warn_transaction_arjunacore_newtmerror("TransactionImple.isNewRM", XAHelper.printXAErrorCode(ex), ex); jtaLogger.i18NLogger.warn_transaction_arjunacore_newtmerror("TransactionImple.isNewRM", "-", e);
trans = xares.recover(XAResource.TMSTARTRSCAN); jtaLogger.i18NLogger.warn_recovery_xarecovery1(_logName+".xaRecovery", XAHelper.printXAErrorCode(e), e); xares.recover(XAResource.TMENDRSCAN); _xidScans = new Hashtable<XAResource,RecoveryXids>(); else xidsToRecover = _xidScans.get(xares); java.util.Enumeration<RecoveryXids> elements = _xidScans.elements(); boolean found = false; while (elements.hasMoreElements()) xidsToRecover = elements.nextElement();
info = (TxInfo) _resources.get(xaRes); info = (TxInfo) _duplicateResources.get(xaRes); .xaStartParameters(XAResource.TMRESUME)); xaRes.start(info.xid(), xaStartResume); .xaStartParameters(XAResource.TMJOIN)); xaRes.start(info.xid(), xaStartJoin); jtaLogger.i18NLogger.warn_transaction_arjunacore_enlisterror("TransactionImple.enlistResource", XAHelper.printXAErrorCode(exp)); if (_resources.size() == 0)// first ever, so no need for jtaLogger.i18NLogger.warn_transaction_arjunacore_timeouterror("TransactionImple.enlistResource",XAHelper.xidToString(xid), XAHelper.printXAErrorCode(te), te); jtaLogger.i18NLogger.warn_transaction_arjunacore_enliststarterror("TransactionImple.enlistResource", XAHelper.xidToString(xid), XAHelper.printXAErrorCode(e), e); jtaLogger.i18NLogger.warn_transaction_arjunacore_enliststarterror("TransactionImple.enlistResource", XAHelper.xidToString(xid), XAHelper.printXAErrorCode(e), e); jtaLogger.i18NLogger.warn_transaction_arjunacore_xastart("TransactionImple.enlistResource - xa_start ", XAHelper.xidToString(xid), XAHelper.printXAErrorCode(ex), ex);
throw new javax.transaction.SystemException( "TransactionImple.enlistResource - " + jtaxLogger.i18NLogger.get_jtax_transaction_jts_nullparam()); info = (TxInfo) _resources.get(xaRes); info = (TxInfo) _duplicateResources.get(xaRes); xaRes.start(info.xid(), XAResource.TMRESUME); xaRes.start(info.xid(), XAResource.TMJOIN); XAHelper.printXAErrorCode(exp), exp); if (_resources.size() == 0)// first ever, so no need for xaRes.setTransactionTimeout(timeout); XAHelper.printXAErrorCode(te), XAHelper.xidToString(xid), te); XAHelper.printXAErrorCode(e), XAHelper.xidToString(xid), e); XAHelper.printXAErrorCode(e), XAHelper.xidToString(xid), e); jtaxLogger.i18NLogger.warn_jtax_transaction_jts_xaerror("TransactionImple.enlistResource - xa_start: ", XAHelper.printXAErrorCode(ex), ex);
throw new javax.transaction.SystemException( "TransactionImple.delistResource - " + jtaLogger.i18NLogger.get_transaction_arjunacore_nullres() ); break; default: throw new IllegalStateException( jtaLogger.i18NLogger.get_transaction_arjunacore_inactive() ); info = (TxInfo) _resources.get(xaRes); info = (TxInfo) _duplicateResources.get(xaRes); jtaLogger.i18NLogger.warn_transaction_arjunacore_unknownresource("TransactionImple.delistResource"); xaRes.end(info.xid(), XAResource.TMFAIL); xaRes.rollback(info.xid()); xaRes.end(info.xid(), XAResource.TMSUCCESS); info.setState(TxInfo.NOT_ASSOCIATED); jtaLogger.i18NLogger.warn_transaction_arjunacore_delistresource("TransactionImple.delistResource", XAHelper.printXAErrorCode(exp), exp);
private void xaRecoverySecondPass(XAResource xares) { RecoveryXids xidsToRecover = _xidScans.get(xares); if (xidsToRecover != null) { try { jtaLogger.i18NLogger.warn_recovery_failedtorecover(_logName+".xaRecovery", Integer.toString(recoveryStatus)); xares.forget(xids[j]); jtaLogger.i18NLogger.warn_recovery_forgetfailed(_logName+".xaRecovery", e); jtaLogger.i18NLogger.warn_recovery_generalrecoveryerror(_logName + ".xaRecovery", e); xares.recover(XAResource.TMENDRSCAN); jtaLogger.i18NLogger.warn_recovery_xarecovery1(_logName+".xaRecovery", XAHelper.printXAErrorCode(e), e);
throw new javax.transaction.SystemException( "TransactionImple.delistResource - " + jtaLogger.logMesg info = (TxInfo) _resources.get(xaRes); info = (TxInfo) _duplicateResources.get(xaRes); xaRes.end(info.xid(), XAResource.TMFAIL); xaRes.rollback(info.xid()); xaRes.end(info.xid(), XAResource.TMSUCCESS); info.setState(TxInfo.NOT_ASSOCIATED); new Object[] { "TransactionImple.delistResource", XAHelper.printXAErrorCode(exp) });
jtaLogger.i18NLogger.warn_resources_arjunacore_opcnulltx("XAResourceRecord.1pc"); if (endAssociation()) _theXAResource.end(_tranID, XAResource.TMSUCCESS); default: jtaLogger.i18NLogger.warn_resources_arjunacore_opcerror(XAHelper.xidToString(_tranID), _theXAResource.toString(), XAHelper.printXAErrorCode(e1), e1); removeConnection(); jtaLogger.i18NLogger.warn_resources_arjunacore_opcerror(XAHelper.xidToString(_tranID), _theXAResource.toString(), "-", e); _theXAResource.commit(_tranID, true); else _theXAResource.rollback(_tranID); jtaLogger.i18NLogger.warn_resources_arjunacore_opcerror(XAHelper.xidToString(_tranID), _theXAResource.toString(), XAHelper.printXAErrorCode(e1), e1); jtaLogger.i18NLogger.warn_resources_arjunacore_opcerror(XAHelper.xidToString(_tranID), _theXAResource.toString(), "-", e2);
/** * Commit the one phase resource. * @return TwoPhaseOutcome.FINISH_OK or TwoPhaseOutcome.FINISH_ERROR */ public int rollback() { try { xaResource.rollback(xid) ; return TwoPhaseOutcome.FINISH_OK ; } catch (final XAException xae) { jtaLogger.i18NLogger.warn_resources_arjunacore_XAOnePhaseResource_rollbackexception(XAHelper.xidToString(xid), xae); } catch (final Throwable ex) { if (jtaLogger.logger.isTraceEnabled()) { jtaLogger.logger.trace("XAOnePhaseResource.rollback(" + xid + ") " + ex.getMessage()); } } return TwoPhaseOutcome.FINISH_ERROR ; }
((XAResource) connectableResource).commit(xid, false); hasCompleted = true; committed = true; return heuristic; } catch (Throwable e) { jtaLogger.i18NLogger.warn_resources_arjunacore_commitxaerror(XAHelper.xidToString(xid), connectableResource.toString(), "-", e); return TwoPhaseOutcome.FINISH_ERROR;
((XAResource) connectableResource).rollback(xid); hasCompleted = true; committed = false; return heuristic; } catch (Throwable e) { jtaLogger.i18NLogger.warn_resources_arjunacore_rollbackerror(XAHelper.xidToString(xid), connectableResource.toString(), "-", e); return TwoPhaseOutcome.FINISH_ERROR;
removeConnection(); removeConnection(); if (endAssociation()) _theXAResource.end(_tranID, XAResource.TMSUCCESS); if (_theXAResource.prepare(_tranID) == XAResource.XA_RDONLY) new Object[] { _tranID, _theXAResource, XAHelper.printXAErrorCode(e1) }, e1);
jtaLogger.i18NLogger.info_recovery_rollingback(XAHelper.xidToString(xid)); xares.rollback(xid); jtaLogger.i18NLogger.warn_recovery_xarecovery1(_logName+".xaRecovery", XAHelper.printXAErrorCode(e1), e1); jtaLogger.i18NLogger.warn_recovery_xarecovery2(_logName+".xaRecovery", e2);
Iterator<SerializableXAResourceDeserializer> iterator = getXAResourceDeserializers().iterator(); while (iterator.hasNext()) { SerializableXAResourceDeserializer proxyXAResourceDeserializer = iterator.next(); jtaLogger.i18NLogger.warn_resources_arjunacore_classnotfound(className); haveXAResource = false; jtaLogger.i18NLogger.warn_resources_arjunacore_restorestate(ex); _theXAResource = getNewXAResource(); jtaLogger.i18NLogger.warn_resources_arjunacore_norecoveryxa( toString() ); jtaLogger.i18NLogger.warn_resources_arjunacore_restorestateerror(_theXAResource.toString(), XAHelper.xidToString(_tranID), e);
jtaLogger.i18NLogger.warn_resources_arjunacore_restorestate(ex); _theXAResource = getNewXAResource(); jtaLogger.i18NLogger.warn_resources_arjunacore_norecoveryxa( toString() ); jtaLogger.i18NLogger.warn_resources_arjunacore_restorestateerror(_theXAResource.toString(), XAHelper.xidToString(_tranID), e);