/** * MC lifecycle callback, used to register components with the recovery manager. */ public void start() { txbridgeLogger.i18NLogger.info_ibrm_start(); xtsATRecoveryManager.registerRecoveryModule(this); acRecoveryManager.addModule(this); XARecoveryModule xaRecoveryModule = getXARecoveryModule(); xaRecoveryModule.addXAResourceOrphanFilter(this); }
private void addDeserializerAndOrphanFilter() { final RecoveryManager recoveryManager = RecoveryManager.manager(); for (RecoveryModule recoveryModule : recoveryManager.getModules()) { if (recoveryModule instanceof XARecoveryModule) { orphanFilter = new InboundBridgeOrphanFilter(); ((XARecoveryModule) recoveryModule).addXAResourceOrphanFilter(orphanFilter); ((XARecoveryModule) recoveryModule).addSerializableXAResourceDeserializer(new InboundBridge()); } } }
@Test public void testXAResourceOrphanFilter () throws Exception { XAResourceOrphanFilter xaResourceOrphanFilter = new DummyXAResourceOrphanFilter(XAResourceOrphanFilter.Vote.ROLLBACK); XARecoveryModule xarm = new XARecoveryModule(); xarm.addXAResourceOrphanFilter(xaResourceOrphanFilter); Class[] parameterTypes = new Class[2]; parameterTypes[0] = XAResource.class; parameterTypes[1] = Xid.class; Method m = xarm.getClass().getDeclaredMethod("handleOrphan", parameterTypes); m.setAccessible(true); Object[] parameters = new Object[2]; parameters[0] = new RecoveryXAResource(); parameters[1] = new XidImple(); m.invoke(xarm, parameters); }
@Test public void testXAResourceOrphanFilterRegistration() { XARecoveryModule xaRecoveryModule = new XARecoveryModule(); XAResourceOrphanFilter xaResourceOrphanFilter = new DummyXAResourceOrphanFilter(); xaRecoveryModule.addXAResourceOrphanFilter(xaResourceOrphanFilter); xaRecoveryModule.removeXAResourceOrphanFilter(xaResourceOrphanFilter); }
xaRecoveryModule.addXAResourceRecoveryHelper(new XARROne()); xaRecoveryModule.addXAResourceRecoveryHelper(new XARRTwo()); xaRecoveryModule.addXAResourceOrphanFilter(new com.arjuna.ats.internal.jta.recovery.arjunacore.JTATransactionLogXAResourceOrphanFilter()); xaRecoveryModule.addXAResourceOrphanFilter(new com.arjuna.ats.internal.jta.recovery.arjunacore.JTANodeNameXAResourceOrphanFilter()); RecoveryManager.manager().addModule(xaRecoveryModule);
jtaPropertyManager.getJTAEnvironmentBean().setXaRecoveryNodes(Arrays.asList(new String[]{NodeNameXAResourceOrphanFilter.RECOVER_ALL_NODES})); XARecoveryModule xarm = new XARecoveryModule(); xarm.addXAResourceOrphanFilter(new JTANodeNameXAResourceOrphanFilter()); xarm.addXAResourceRecoveryHelper(new XAResourceRecoveryHelper() { XAResource[] xares = new XAResource[]{new XAResourceWrapper() {