@Override public Vote checkXid(Xid xid) { if(xid.getFormatId() != myFormatId) { return Vote.ABSTAIN; } return nodeNameFilter.checkXid(xid); } }
while (ri.hasMoreResources()) xaresources.add(ri.getXAResource());
private List<XAResource> resourceInitiatedRecoveryForRecoveryHelpers() { List<XAResource> xaresources = new ArrayList<XAResource>(); recoveryHelpersXAResource.clear(); for (XAResourceRecoveryHelper xaResourceRecoveryHelper : _xaResourceRecoveryHelpers) { try { XAResource[] xaResources = xaResourceRecoveryHelper.getXAResources(); if (xaResources != null) { for (XAResource xaResource : xaResources) { xaresources.add(xaResource); } recoveryHelpersXAResource.put(xaResourceRecoveryHelper, xaResources); } } catch (Exception ex) { jtaLogger.i18NLogger.warn_recovery_getxaresource(ex); } } return xaresources; }
public void periodicWorkFirstPass() { if(jtaLogger.logger.isDebugEnabled()) { jtaLogger.logger.debugv("{0} - first pass", _logName); } _uids = new InputObjectState(); /* * Scan for resources in the object store. */ try { if (!_recoveryStore.allObjUids(_recoveryManagerClass.type(), _uids)) { jtaLogger.i18NLogger.warn_recovery_alluids(); } } catch (ObjectStoreException e) { jtaLogger.i18NLogger.warn_recovery_objstoreerror(e); } catch (Exception e) { jtaLogger.i18NLogger.warn_recovery_periodicfirstpass(_logName+".periodicWorkFirstPass", e); } }
/** * Called by the XARecoveryModule for each in-doubt Xid. * Implementations should return * Vote.ROLLBACK if they recognize the xid and believe it should be aborted. * Vote.LEAVE_ALONE if they recognize the xid and do not want the XARecovery module to roll it back. * Vote.ABSTAIN if they do not recognize the xid. * Each registered XAResourceOrphanFilter will be consulted before any rollback on each recovery pass, * so they may change their mind over time e.g. if new information becomes available due to other recovery * activity. * * @param xid The in-doubt xid. * @return a Vote in accordance with the guidelines above. */ @Override public Vote checkXid(Xid xid) { if (LOG.isTraceEnabled()) { LOG.trace("InboundBridgeOrphanFilter.checkXid(" + xid + ")"); } Vote vote = Vote.ROLLBACK; if (xid.getFormatId() != InboundBridge.XARESOURCE_FORMAT_ID) { vote = Vote.ABSTAIN; } if (isInStore(xid)) { vote = Vote.LEAVE_ALONE; } if (LOG.isTraceEnabled()) { LOG.trace("InboundBridgeOrphanFilter.checkXid: " + vote.name()); } return vote; }
while (ri.hasMoreResources()) xaresources.add(ri.getXAResource());
@Override public Vote checkXid(Xid xid) { if(xid.getFormatId() != myFormatId) { return Vote.ABSTAIN; } return nodeNameFilter.checkXid(xid); } }
private List<XAResource> resourceInitiatedRecoveryForRecoveryHelpers() { List<XAResource> xaresources = new ArrayList<XAResource>(); recoveryHelpersXAResource.clear(); for (XAResourceRecoveryHelper xaResourceRecoveryHelper : _xaResourceRecoveryHelpers) { try { XAResource[] xaResources = xaResourceRecoveryHelper.getXAResources(); if (xaResources != null) { for (XAResource xaResource : xaResources) { xaresources.add(xaResource); } recoveryHelpersXAResource.put(xaResourceRecoveryHelper, xaResources); } } catch (Exception ex) { jtaLogger.i18NLogger.warn_recovery_getxaresource(ex); } } return xaresources; }
while (ri.hasMoreResources()) xaresources.add(ri.getXAResource());
@Override public Vote checkXid(Xid xid) { if(xid.getFormatId() != myFormatId) { return Vote.ABSTAIN; } return nodeNameFilter.checkXid(xid); } }
private List<XAResource> resourceInitiatedRecoveryForRecoveryHelpers() { List<XAResource> xaresources = new ArrayList<XAResource>(); recoveryHelpersXAResource.clear(); for (XAResourceRecoveryHelper xaResourceRecoveryHelper : _xaResourceRecoveryHelpers) { try { XAResource[] xaResources = xaResourceRecoveryHelper.getXAResources(); if (xaResources != null) { for (XAResource xaResource : xaResources) { xaresources.add(xaResource); } recoveryHelpersXAResource.put(xaResourceRecoveryHelper, xaResources); } } catch (Exception ex) { jtaLogger.i18NLogger.warn_recovery_getxaresource(ex); } } return xaresources; }
while (ri.hasMoreResources()) resource = ri.getXAResource();
@Override public Vote checkXid(Xid xid) { if(xid.getFormatId() != myFormatId) { return Vote.ABSTAIN; } return nodeNameFilter.checkXid(xid); } }
private List<XAResource> resourceInitiatedRecoveryForRecoveryHelpers() { List<XAResource> xaresources = new ArrayList<XAResource>(); recoveryHelpersXAResource.clear(); for (XAResourceRecoveryHelper xaResourceRecoveryHelper : _xaResourceRecoveryHelpers) { try { XAResource[] xaResources = xaResourceRecoveryHelper.getXAResources(); if (xaResources != null) { for (XAResource xaResource : xaResources) { xaresources.add(xaResource); } recoveryHelpersXAResource.put(xaResourceRecoveryHelper, xaResources); } } catch (Exception ex) { jtaLogger.i18NLogger.warn_recovery_getxaresource(ex); } } return xaresources; }
@Override public Vote checkXid(Xid xid) { if(xid.getFormatId() != myFormatId) { return Vote.ABSTAIN; } return nodeNameFilter.checkXid(xid); } }
private List<XAResource> resourceInitiatedRecoveryForRecoveryHelpers() { List<XAResource> xaresources = new ArrayList<XAResource>(); recoveryHelpersXAResource.clear(); for (XAResourceRecoveryHelper xaResourceRecoveryHelper : _xaResourceRecoveryHelpers) { try { XAResource[] xaResources = xaResourceRecoveryHelper.getXAResources(); if (xaResources != null) { for (XAResource xaResource : xaResources) { xaresources.add(xaResource); } recoveryHelpersXAResource.put(xaResourceRecoveryHelper, xaResources); } } catch (Exception ex) { jtaLogger.i18NLogger.warn_recovery_getxaresource(ex); } } return xaresources; }
@Override public Vote checkXid(Xid xid) { if(xid.getFormatId() != myFormatId) { return Vote.ABSTAIN; } return nodeNameFilter.checkXid(xid); } }
XAResource[] xaResources = xaResourceRecoveryHelper.getXAResources(); if (xaResources != null)
@Test public void testJTATransactionLogOrphanFilter() { XAResourceOrphanFilter orphanFilter = new JTATransactionLogXAResourceOrphanFilter(); Xid notJTAFormatId = XATxConverter.getXid(new Uid(), false, 0); assertEquals(XAResourceOrphanFilter.Vote.ABSTAIN, orphanFilter.checkXid(notJTAFormatId)); Xid jtaFormatId = XATxConverter.getXid(new Uid(), false, XATxConverter.FORMAT_ID); assertEquals(XAResourceOrphanFilter.Vote.ABSTAIN, orphanFilter.checkXid(jtaFormatId)); }
XAResource[] xaResources = xaResourceRecoveryHelper.getXAResources(); if (xaResources != null)