/** * @param xid The transaction to commit/rollback. * * @return the XAResource than can be used to commit/rollback the specified * transaction. */ private XAResource getNewXAResource(Xid xid) { if (_xidScans == null) { bottomUpRecovery(); } if (_xidScans != null) { Enumeration<XAResource> keys = _xidScans.keys(); while (keys.hasMoreElements()) { XAResource theKey = keys.nextElement(); RecoveryXids xids = _xidScans.get(theKey); // JBTM-1255 moved stale check back to bottomUpRecovery if (xids.contains(xid)) return theKey; } } return null; }
public void periodicWorkSecondPass() { if (jtaLogger.logger.isDebugEnabled()) { jtaLogger.logger.debugv("{0} - second pass", _logName); } try { // do the recovery on anything from the scan in first pass transactionInitiatedRecovery(); if (jtaLogger.logger.isDebugEnabled()) { jtaLogger.logger.debug(_logName + ".transactionInitiatedRecovery completed"); } bottomUpRecovery(); if (jtaLogger.logger.isDebugEnabled()) { jtaLogger.logger.debug(_logName + ".resourceInitiatedRecovery completed"); } } catch (Exception e) { jtaLogger.i18NLogger.warn_recovery_periodicsecondpass(_logName+".periodicWorkSecondPass", e); } clearAllFailures(); }
public void periodicWorkSecondPass() { setScanState(ScanStates.SECOND_PASS); if (jtaLogger.logger.isDebugEnabled()) { jtaLogger.logger.debugv("{0} - second pass", _logName); } try { // do the recovery on anything from the scan in first pass transactionInitiatedRecovery(); if (jtaLogger.logger.isDebugEnabled()) { jtaLogger.logger.debug(_logName + ".transactionInitiatedRecovery completed"); } bottomUpRecovery(); if (jtaLogger.logger.isDebugEnabled()) { jtaLogger.logger.debug(_logName + ".resourceInitiatedRecovery completed"); } } catch (Exception e) { jtaLogger.i18NLogger.warn_recovery_periodicsecondpass(_logName+".periodicWorkSecondPass", e); } clearAllFailures(); setScanState(ScanStates.IDLE); }