private Xid getXid() throws SystemException { Xid xid; EmbeddedTransaction dummyTransaction = (EmbeddedTransaction) tm().getTransaction(); xid = dummyTransaction.getXid(); return xid; }
assert inDoubtTransactions.contains(t1_1.getXid()); assert inDoubtTransactions.contains(t1_2.getXid()); assert inDoubtTransactions.contains(t1_3.getXid()); assert inDoubtTransactions.contains(t1_1.getXid()); assert inDoubtTransactions.contains(t1_2.getXid()); assert inDoubtTransactions.contains(t1_3.getXid()); t1_4.firstEnlistedResource().forget(t1_1.getXid()); log.info("returned"); eventually(() -> rm(cache(0)).getInDoubtTransactionInfo().size() == 2); inDoubtTransactions = rm(cache(0)).getInDoubtTransactions(); assertEquals(2, inDoubtTransactions.size()); assert inDoubtTransactions.contains(t1_2.getXid()); assert inDoubtTransactions.contains(t1_3.getXid()); t1_4.firstEnlistedResource().forget(t1_2.getXid()); t1_4.firstEnlistedResource().forget(t1_3.getXid()); eventually(() -> rm(cache(0)).getInDoubtTransactionInfo().size() == 0); assertEquals(0, rm(cache(0)).getInDoubtTransactionInfo().size());
public void testInternalIdOnSameNode() throws Exception { Xid xid = tx.getXid(); recoveryOps(0).forget(xid.getFormatId(), xid.getGlobalTransactionId(), xid.getBranchQualifier()); assertEquals(tt(1).getRemoteTxCount(), 0);//make sure tx has been removed }
private void forgetWithXid(int nodeIndex) { Xid xid = tx.getXid(); recoveryOps(nodeIndex).forget(xid.getFormatId(), xid.getGlobalTransactionId(), xid.getBranchQualifier()); assertEquals(tt(1).getRemoteTxCount(), 0);//make sure tx has been removed } }
protected void forgetWithInternalId(int cacheIndex) { long internalId = -1; for (RemoteTransaction rt : tt(1).getRemoteTransactions()) { RecoverableTransactionIdentifier a = (RecoverableTransactionIdentifier) rt.getGlobalTransaction(); if (a.getXid().equals(tx.getXid())) { internalId = a.getInternalId(); } } if (internalId == -1) throw new IllegalStateException(); log.tracef("About to forget... %s", internalId); recoveryOps(cacheIndex).forget(internalId); assertEquals(tt(0).getRemoteTxCount(), 0); assertEquals(tt(1).getRemoteTxCount(), 0); }
public void testXidReturnedOnlyOnce() throws Throwable { EmbeddedTransaction dummyTransaction1 = beginAndSuspendTx(this.cache(3)); prepareTransaction(dummyTransaction1); manager(3).stop(); TestingUtil.blockUntilViewsReceived(60000, false, cache(0), cache(1), cache(2)); TestingUtil.waitForNoRebalance(cache(0), cache(1), cache(2)); EmbeddedTransaction dummyTransaction = beginAndSuspendTx(this.cache(0)); Xid[] recover = dummyTransaction.firstEnlistedResource().recover(XAResource.TMSTARTRSCAN | XAResource.TMENDRSCAN); assertEquals(recover.length,1); assertEquals(dummyTransaction1.getXid(), recover[0]); } }