Search in sources :

Example 36 with Control

use of org.omg.CosTransactions.Control in project narayana by jbosstm.

the class ServerTopLevelOSIActionUnitTest method testCommit.

@Test
public void testCommit() throws Exception {
    ControlImple cont = new ControlImple(null, null);
    Control theControl = cont.getControl();
    ArjunaTransactionImple tx = cont.getImplHandle();
    ServerControl sc = new ServerControl(tx.get_uid(), theControl, tx, theControl.get_coordinator(), theControl.get_terminator());
    ServerOSITopLevelAction act = new ServerOSITopLevelAction(sc, true);
    assertEquals(act.prepare(), Vote.VoteReadOnly);
    try {
        act.commit();
        fail();
    } catch (final INVALID_TRANSACTION ex) {
    }
    assertTrue(act.getReference() != null);
}
Also used : Control(org.omg.CosTransactions.Control) ServerControl(com.arjuna.ats.internal.jts.orbspecific.interposition.ServerControl) ServerControl(com.arjuna.ats.internal.jts.orbspecific.interposition.ServerControl) INVALID_TRANSACTION(org.omg.CORBA.INVALID_TRANSACTION) ArjunaTransactionImple(com.arjuna.ats.internal.jts.orbspecific.coordinator.ArjunaTransactionImple) ControlImple(com.arjuna.ats.internal.jts.orbspecific.ControlImple) ServerOSITopLevelAction(com.arjuna.ats.internal.jts.orbspecific.interposition.resources.osi.ServerOSITopLevelAction) Test(org.junit.Test)

Example 37 with Control

use of org.omg.CosTransactions.Control in project narayana by jbosstm.

the class ServerTopLevelOSIActionUnitTest method testCommitOnePhase.

@Test
public void testCommitOnePhase() throws Exception {
    ControlImple cont = new ControlImple(null, null);
    Control theControl = cont.getControl();
    ArjunaTransactionImple tx = cont.getImplHandle();
    ServerControl sc = new ServerControl(tx.get_uid(), theControl, tx, theControl.get_coordinator(), theControl.get_terminator());
    ServerOSITopLevelAction act = new ServerOSITopLevelAction(sc, true);
    act.commit_one_phase();
    assertTrue(act.type() != null);
}
Also used : Control(org.omg.CosTransactions.Control) ServerControl(com.arjuna.ats.internal.jts.orbspecific.interposition.ServerControl) ServerControl(com.arjuna.ats.internal.jts.orbspecific.interposition.ServerControl) ArjunaTransactionImple(com.arjuna.ats.internal.jts.orbspecific.coordinator.ArjunaTransactionImple) ControlImple(com.arjuna.ats.internal.jts.orbspecific.ControlImple) ServerOSITopLevelAction(com.arjuna.ats.internal.jts.orbspecific.interposition.resources.osi.ServerOSITopLevelAction) Test(org.junit.Test)

Example 38 with Control

use of org.omg.CosTransactions.Control in project narayana by jbosstm.

the class ServerTopLevelOSIActionUnitTest method testRollback.

@Test
public void testRollback() throws Exception {
    ControlImple cont = new ControlImple(null, null);
    Control theControl = cont.getControl();
    ArjunaTransactionImple tx = cont.getImplHandle();
    ServerControl sc = new ServerControl(tx.get_uid(), theControl, tx, theControl.get_coordinator(), theControl.get_terminator());
    ServerOSITopLevelAction act = new ServerOSITopLevelAction(sc, true);
    assertEquals(act.prepare(), Vote.VoteReadOnly);
    try {
        act.rollback();
        fail();
    } catch (final INVALID_TRANSACTION ex) {
    }
    act.forget();
}
Also used : Control(org.omg.CosTransactions.Control) ServerControl(com.arjuna.ats.internal.jts.orbspecific.interposition.ServerControl) ServerControl(com.arjuna.ats.internal.jts.orbspecific.interposition.ServerControl) INVALID_TRANSACTION(org.omg.CORBA.INVALID_TRANSACTION) ArjunaTransactionImple(com.arjuna.ats.internal.jts.orbspecific.coordinator.ArjunaTransactionImple) ControlImple(com.arjuna.ats.internal.jts.orbspecific.ControlImple) ServerOSITopLevelAction(com.arjuna.ats.internal.jts.orbspecific.interposition.resources.osi.ServerOSITopLevelAction) Test(org.junit.Test)

Example 39 with Control

use of org.omg.CosTransactions.Control in project narayana by jbosstm.

the class DistributedHammerWorker1 method get21.

public static void get21(char thr, int level) {
    boolean res = false;
    boolean res1 = false;
    boolean res2 = false;
    IntHolder value1 = new IntHolder(0);
    IntHolder value2 = new IntHolder(0);
    try {
        OTSImpleManager.current().begin();
        Control control = OTSImpleManager.current().get_control();
        Util.indent(thr, level);
        System.out.println("begin   get21");
        res1 = hammerObject_2.get(value1, control);
        res = res1;
        Util.indent(thr, level);
        System.out.println("part1   get21  : " + res1);
        if (res) {
            res2 = hammerObject_1.get(value2, control);
            res = res2;
            Util.indent(thr, level);
            System.out.println("part2   get21  : " + res2);
        }
        control = null;
        Util.indent(thr, level);
        if (res) {
            System.out.print("end ");
            OTSImpleManager.current().commit(true);
        } else {
            System.out.print("abort  ");
            OTSImpleManager.current().rollback();
        }
    } catch (Exception e) {
        System.err.println("DistributedHammerWorker1.get21: " + e);
        res1 = res2 = res = false;
    }
    Util.indent(thr, level);
    System.out.println(" get21  : " + res1 + " : " + res2 + " : " + res + " : " + value1.value + " : " + value2.value);
}
Also used : Control(org.omg.CosTransactions.Control) IntHolder(org.omg.CORBA.IntHolder)

Example 40 with Control

use of org.omg.CosTransactions.Control in project narayana by jbosstm.

the class DistributedHammerWorker3 method get12.

public static void get12(int thr, int level) {
    boolean res = false;
    boolean res1 = false;
    boolean res2 = false;
    IntHolder value1 = new IntHolder(0);
    IntHolder value2 = new IntHolder(0);
    try {
        OTSImpleManager.current().begin();
        Control control = OTSImpleManager.current().get_control();
        Util.indent(thr, level);
        System.out.println("begin   get12");
        res1 = hammerObject_1.get(value1, control);
        res = res1;
        Util.indent(thr, level);
        System.out.println("part1   get12  : " + res1);
        Util.lowProbYield();
        if (res) {
            res2 = hammerObject_2.get(value2, control);
            res = res2;
            Util.indent(thr, level);
            System.out.println("part2   get12  : " + res2);
        }
        Util.lowProbYield();
        control = null;
        Util.indent(thr, level);
        if (res) {
            System.out.print("end ");
            OTSImpleManager.current().commit(true);
        } else {
            System.out.print("abort  ");
            OTSImpleManager.current().rollback();
        }
    } catch (Exception e) {
        System.err.println("DistributedHammerWorker3.get12: " + e);
        res1 = res2 = res = false;
    }
    Util.indent(thr, level);
    System.out.println(" get12  : " + res1 + " : " + res2 + " : " + res + " : " + value1.value + " : " + value2.value);
}
Also used : Control(org.omg.CosTransactions.Control) IntHolder(org.omg.CORBA.IntHolder)

Aggregations

Control (org.omg.CosTransactions.Control)103 Test (org.junit.Test)40 ControlImple (com.arjuna.ats.internal.jts.orbspecific.ControlImple)24 ArjunaTransactionImple (com.arjuna.ats.internal.jts.orbspecific.coordinator.ArjunaTransactionImple)20 ServerControl (com.arjuna.ats.internal.jts.orbspecific.interposition.ServerControl)20 ORB (com.arjuna.orbportability.ORB)20 RootOA (com.arjuna.orbportability.RootOA)18 TransactionFactory (org.omg.CosTransactions.TransactionFactory)16 CurrentImple (com.arjuna.ats.internal.jts.orbspecific.CurrentImple)14 INVALID_TRANSACTION (org.omg.CORBA.INVALID_TRANSACTION)13 Coordinator (org.omg.CosTransactions.Coordinator)13 SystemException (org.omg.CORBA.SystemException)11 IntHolder (org.omg.CORBA.IntHolder)10 Current (org.omg.CosTransactions.Current)9 ControlWrapper (com.arjuna.ats.internal.jts.ControlWrapper)6 TransactionFactoryImple (com.arjuna.ats.internal.jts.orbspecific.TransactionFactoryImple)6 Services (com.arjuna.orbportability.Services)6 PropagationContext (org.omg.CosTransactions.PropagationContext)6 ActionControl (com.arjuna.ArjunaOTS.ActionControl)5 ServerORB (com.hp.mwtests.ts.jts.utils.ServerORB)5