Search in sources :

Example 6 with TxContext

use of com.arjuna.mw.wst.TxContext in project narayana by jbosstm.

the class SubtransactionCommitTest method testSubTransactionCommit.

@Test
public void testSubTransactionCommit() throws Exception {
    final UserTransaction ut = UserTransactionFactory.userTransaction();
    final UserTransaction ust = UserTransactionFactory.userSubordinateTransaction();
    final TransactionManager tm = TransactionManager.getTransactionManager();
    final DemoDurableParticipant p1 = new DemoDurableParticipant();
    final DemoVolatileParticipant p2 = new DemoVolatileParticipant();
    final DemoDurableParticipant p3 = new DemoDurableParticipant();
    final DemoVolatileParticipant p4 = new DemoVolatileParticipant();
    ut.begin();
    final TxContext tx = tm.suspend();
    tm.resume(tx);
    tm.enlistForDurableTwoPhase(p1, p1.identifier());
    tm.enlistForVolatileTwoPhase(p2, p2.identifier());
    ust.begin();
    final TxContext stx = tm.suspend();
    tm.resume(stx);
    tm.enlistForDurableTwoPhase(p3, p3.identifier());
    tm.enlistForVolatileTwoPhase(p4, p4.identifier());
    tm.resume(tx);
    ut.commit();
    assertTrue(p1.prepared() && p1.resolved() && p1.passed());
    assertTrue(p2.prepared() && p2.resolved() && p2.passed());
    assertTrue(p3.prepared() && p3.resolved() && p3.passed());
    assertTrue(p4.prepared() && p4.resolved() && p4.passed());
}
Also used : UserTransaction(com.arjuna.mw.wst11.UserTransaction) DemoVolatileParticipant(com.arjuna.wstx.tests.common.DemoVolatileParticipant) TransactionManager(com.arjuna.mw.wst11.TransactionManager) DemoDurableParticipant(com.arjuna.wstx.tests.common.DemoDurableParticipant) TxContext(com.arjuna.mw.wst.TxContext) Test(org.junit.Test)

Example 7 with TxContext

use of com.arjuna.mw.wst.TxContext in project narayana by jbosstm.

the class SuspendCommitTransactionTest method testSuspendCommitTransaction.

@Test
public void testSuspendCommitTransaction() throws Exception {
    UserTransaction ut = UserTransaction.getUserTransaction();
    TransactionManager tm = TransactionManager.getTransactionManager();
    ut.begin();
    try {
        TxContext ctx = tm.suspend();
        System.out.println("Suspended: " + ctx);
    } catch (Exception eouter) {
        try {
            ut.rollback();
        } catch (Exception einner) {
        }
        throw eouter;
    }
    try {
        ut.commit();
    } catch (WrongStateException ex) {
    // we should arrive here
    }
}
Also used : UserTransaction(com.arjuna.mw.wst11.UserTransaction) TransactionManager(com.arjuna.mw.wst11.TransactionManager) WrongStateException(com.arjuna.wst.WrongStateException) TxContext(com.arjuna.mw.wst.TxContext) WrongStateException(com.arjuna.wst.WrongStateException) Test(org.junit.Test)

Example 8 with TxContext

use of com.arjuna.mw.wst.TxContext in project narayana by jbosstm.

the class SubtransactionCommitFailInPrepareTest method testSubTransactionCommitFailInPrepare.

@Test
public void testSubTransactionCommitFailInPrepare() throws Exception {
    final UserTransaction ut = UserTransactionFactory.userTransaction();
    final UserTransaction ust = UserTransactionFactory.userSubordinateTransaction();
    final TransactionManager tm = TransactionManager.getTransactionManager();
    final DemoDurableParticipant p1 = new DemoDurableParticipant();
    final DemoVolatileParticipant p2 = new DemoVolatileParticipant();
    final FailureParticipant p3 = new FailureParticipant(FailureParticipant.FAIL_IN_PREPARE, FailureParticipant.WRONG_STATE);
    final DemoVolatileParticipant p4 = new DemoVolatileParticipant();
    ut.begin();
    final TxContext tx = tm.suspend();
    tm.resume(tx);
    tm.enlistForDurableTwoPhase(p1, p1.identifier());
    tm.enlistForVolatileTwoPhase(p2, p2.identifier());
    ust.begin();
    final TxContext stx = tm.suspend();
    tm.resume(stx);
    tm.enlistForDurableTwoPhase(p3, "failure in prepare");
    tm.enlistForVolatileTwoPhase(p4, p4.identifier());
    tm.resume(tx);
    try {
        ut.commit();
        fail("expecting TransactionRolledBackException");
    } catch (TransactionRolledBackException wse) {
    // expect this
    }
    assertTrue(p1.prepared() && p1.resolved() && !p1.passed());
    assertTrue(p2.prepared() && p2.resolved() && !p2.passed());
    assertTrue(!p3.passed());
    assertTrue(p4.prepared() && p4.resolved() && !p4.passed());
}
Also used : UserTransaction(com.arjuna.mw.wst11.UserTransaction) FailureParticipant(com.arjuna.wstx.tests.common.FailureParticipant) DemoVolatileParticipant(com.arjuna.wstx.tests.common.DemoVolatileParticipant) TransactionManager(com.arjuna.mw.wst11.TransactionManager) DemoDurableParticipant(com.arjuna.wstx.tests.common.DemoDurableParticipant) TxContext(com.arjuna.mw.wst.TxContext) TransactionRolledBackException(com.arjuna.wst.TransactionRolledBackException) Test(org.junit.Test)

Example 9 with TxContext

use of com.arjuna.mw.wst.TxContext in project narayana by jbosstm.

the class SuspendResumeParticipantsTest method testSuspendResumeParticipants.

@Test
public void testSuspendResumeParticipants() throws Exception {
    UserTransaction ut = UserTransaction.getUserTransaction();
    TransactionManager tm = TransactionManager.getTransactionManager();
    DemoDurableParticipant p1 = new DemoDurableParticipant();
    DemoDurableParticipant p2 = new DemoDurableParticipant();
    DemoDurableParticipant p3 = new DemoDurableParticipant();
    DemoDurableParticipant p4 = new DemoDurableParticipant();
    System.out.println("Starting first transaction.\n");
    ut.begin();
    try {
        tm.enlistForDurableTwoPhase(p1, p1.identifier());
        tm.enlistForDurableTwoPhase(p2, p2.identifier());
        tm.enlistForDurableTwoPhase(p3, p3.identifier());
        tm.enlistForDurableTwoPhase(p4, p4.identifier());
        TxContext ctx = tm.suspend();
        System.out.println("Suspended: " + ctx);
        ut.begin();
        System.out.println("\nStarted second transaction.");
        tm.resume(ctx);
        System.out.println("\nCommitting first transaction.\n");
    } catch (Exception eouter) {
        try {
            ut.rollback();
        } catch (Exception einner) {
        }
        throw eouter;
    }
    ut.commit();
}
Also used : UserTransaction(com.arjuna.mw.wst11.UserTransaction) TransactionManager(com.arjuna.mw.wst11.TransactionManager) DemoDurableParticipant(com.arjuna.wstx.tests.common.DemoDurableParticipant) TxContext(com.arjuna.mw.wst.TxContext) Test(org.junit.Test)

Example 10 with TxContext

use of com.arjuna.mw.wst.TxContext in project narayana by jbosstm.

the class SuspendTransactionTest method testSuspendTransaction.

@Test
public void testSuspendTransaction() throws Exception {
    UserTransaction ut = UserTransaction.getUserTransaction();
    TransactionManager tm = TransactionManager.getTransactionManager();
    ut.begin();
    TxContext ctx = tm.suspend();
    System.out.println("Suspended: " + ctx);
}
Also used : UserTransaction(com.arjuna.mw.wst11.UserTransaction) TransactionManager(com.arjuna.mw.wst11.TransactionManager) TxContext(com.arjuna.mw.wst.TxContext) Test(org.junit.Test)

Aggregations

TxContext (com.arjuna.mw.wst.TxContext)20 TransactionManager (com.arjuna.mw.wst11.TransactionManager)11 Test (org.junit.Test)10 UserTransaction (com.arjuna.mw.wst11.UserTransaction)9 DemoDurableParticipant (com.arjuna.wstx.tests.common.DemoDurableParticipant)6 TxContextImple (com.arjuna.mwlabs.wst11.at.context.TxContextImple)5 InvalidCreateParametersException (com.arjuna.wsc.InvalidCreateParametersException)4 DemoVolatileParticipant (com.arjuna.wstx.tests.common.DemoVolatileParticipant)4 CoordinationContext (org.oasis_open.docs.ws_tx.wscoor._2006._06.CoordinationContext)4 Context (com.arjuna.mw.wsc11.context.Context)3 SystemException (com.arjuna.wst.SystemException)3 WrongStateException (com.arjuna.wst.WrongStateException)3 CoordinationContextType (org.oasis_open.docs.ws_tx.wscoor._2006._06.CoordinationContextType)3 TxContextImple (com.arjuna.mwlabs.wst11.ba.context.TxContextImple)2 TransactionRolledBackException (com.arjuna.wst.TransactionRolledBackException)2 UnknownTransactionException (com.arjuna.wst.UnknownTransactionException)2 FailureParticipant (com.arjuna.wstx.tests.common.FailureParticipant)2 SOAPEnvelope (javax.xml.soap.SOAPEnvelope)2 SOAPHeaderElement (javax.xml.soap.SOAPHeaderElement)2 com.arjuna.mw.wst11 (com.arjuna.mw.wst11)1