@Test public void test() { recoveryPropertyManager.getRecoveryEnvironmentBean().setRecoveryBackoffPeriod(1); System.setProperty("com.arjuna.ats.jta.xaRecoveryNode", "1"); System.setProperty("XAResourceRecovery1", "com.hp.mwtests.ts.jta.recovery.DummyXARecoveryResource"); RecoveryManager manager = RecoveryManager.manager(RecoveryManager.DIRECT_MANAGEMENT); manager.scan(); manager.scan(); System.clearProperty("com.arjuna.ats.jta.xaRecoveryNode"); System.clearProperty("XAResourceRecovery1"); } }
@BeforeClass public static void beforeClass() throws Exception { RecoveryEnvironmentBean recoveryEnvironmentBean = recoveryPropertyManager.getRecoveryEnvironmentBean(); // Ensure that test XAR is recoverable by adding the test XAResourceRecovery ArrayList<String> rcvClassNames = new ArrayList<>(); rcvClassNames.add(XATestResourceXARecovery.class.getName()); jtaPropertyManager.getJTAEnvironmentBean().setXaResourceRecoveryClassNames(rcvClassNames); recoveryEnvironmentBean.setRecoveryBackoffPeriod(1); // use a short interval between passes recoveryEnvironmentBean.setRecoveryListener(true); // configure the RecoveryMonitor manager = RecoveryManager.manager(RecoveryManager.DIRECT_MANAGEMENT); manager.addModule(new XARecoveryModule()); // we only need to test the XARecoveryModule manager.startRecoveryManagerThread(); // start periodic recovery }
@BeforeClass public static void beforeClass() { if (System.getProperty("com.arjuna.ats.arjuna.common.propertiesFile") == null) { System.setProperty("com.arjuna.ats.arjuna.common.propertiesFile", "jbossts-properties.xml"); } jtaPropertyManager.getJTAEnvironmentBean().setXaResourceRecordWrappingPluginClassName( "com.hp.mwtests.ts.jta.recovery.TestXAResourceRecordWrappingPlugin" ); jtaPropertyManager.getJTAEnvironmentBean().setXaResourceRecoveryClassNames(Arrays.asList( "com.hp.mwtests.ts.jta.recovery.TestXAResourceRecovery" )); recoveryPropertyManager.getRecoveryEnvironmentBean().setRecoveryBackoffPeriod(1); recoveryPropertyManager.getRecoveryEnvironmentBean().setRecoveryModuleClassNames(Arrays.asList( "com.arjuna.ats.internal.arjuna.recovery.AtomicActionRecoveryModule", "com.arjuna.ats.internal.jta.recovery.arjunacore.XARecoveryModule")); ATOMIC_ACTION_TYPE = new AtomicAction().type(); }
recoveryPropertyManager.getRecoveryEnvironmentBean().setRecoveryBackoffPeriod(1);
@Test public void test() throws NotSupportedException, SystemException, IllegalStateException, RollbackException, SecurityException, HeuristicMixedException, HeuristicRollbackException, NamingException { arjPropertyManager.getObjectStoreEnvironmentBean().setObjectStoreType(JDBCStore.class.getName()); arjPropertyManager.getObjectStoreEnvironmentBean().setJdbcAccess(TestJDBCAccess.class.getName()); javax.transaction.TransactionManager tm = TransactionManager.transactionManager(); tm.begin(); tm.getTransaction().enlistResource(new DummyXAResource()); tm.getTransaction().enlistResource(new DummyXAResource()); tm.commit(); assertTrue(commitCount == 1); FAULT_JDBC = true; jtaPropertyManager.getJTAEnvironmentBean().setXaRecoveryNodes(Arrays.asList(new String[] { "1" })); jtaPropertyManager.getJTAEnvironmentBean().setXaResourceOrphanFilters(Arrays.asList(new XAResourceOrphanFilter[] { new com.arjuna.ats.internal.jta.recovery.arjunacore.JTATransactionLogXAResourceOrphanFilter(), new com.arjuna.ats.internal.jta.recovery.arjunacore.JTANodeNameXAResourceOrphanFilter() })); jtaPropertyManager.getJTAEnvironmentBean().setXaResourceRecoveries(Arrays.asList(new XAResourceRecovery[] { new DummyXAResourceRecovery() })); jtaPropertyManager.getJTAEnvironmentBean().setOrphanSafetyInterval(1); recoveryPropertyManager.getRecoveryEnvironmentBean().setRecoveryBackoffPeriod(2); recoveryPropertyManager.getRecoveryEnvironmentBean().setRecoveryModules(Arrays.asList(new RecoveryModule[] { new XARecoveryModule() })); RecoveryManager manager = RecoveryManager.manager(RecoveryManager.DIRECT_MANAGEMENT); manager.scan(); assertFalse(rollbackCalled); }
recoveryEnvironmentBean.setRecoveryBackoffPeriod(1); // use a short interval between passes recoveryEnvironmentBean.setRecoveryListener(true); // configure the RecoveryMonitor
recoveryEnvironmentBean.setRecoveryBackoffPeriod(1); recoveryEnvironmentBean.setPeriodicRecoveryPeriod(1);
recoveryPropertyManager.getRecoveryEnvironmentBean().setRecoveryModuleClassNames(recoveryExtensions); int recoveryBackoffPeriod = recoveryPropertyManager.getRecoveryEnvironmentBean().getRecoveryBackoffPeriod(); recoveryPropertyManager.getRecoveryEnvironmentBean().setRecoveryBackoffPeriod(1); RecoveryManager.manager().scan(); recoveryPropertyManager.getRecoveryEnvironmentBean().setRecoveryBackoffPeriod(recoveryBackoffPeriod); try { Xid xid = XATxConverter.getXid(Uid.nullUid(), false, XATxConverter.FORMAT_ID);
recoveryPropertyManager.getRecoveryEnvironmentBean().setRecoveryBackoffPeriod(1);
recoveryEnvironmentBean.setRecoveryBackoffPeriod(1); // use a short interval between passes recoveryEnvironmentBean.setRecoveryListener(true); // configure the RecoveryMonitor
.getDefaultInstance(RecoveryEnvironmentBean.class); recoveryEnvironmentBean.setRecoveryBackoffPeriod(1); recoveryEnvironmentBean.setPeriodicRecoveryPeriod(Integer.MAX_VALUE);
recoveryEnvironmentBean.setRecoveryBackoffPeriod(1); // use a short interval between passes recoveryEnvironmentBean.setRecoveryListener(true); // configure the RecoveryMonitor