Search in sources :

Example 86 with Control

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

the class TimeoutClient method main.

public static void main(String[] args) throws Exception {
    ORB myORB = null;
    RootOA myOA = null;
    try {
        ServerORB orb = new ServerORB();
        myORB = orb.getORB();
        myOA = orb.getOA();
        CurrentImple current = OTSImpleManager.current();
        Control theControl = null;
        String objectReference = args[0];
        SetGet SetGetVar = null;
        System.out.println("Setting transaction timeout to " + timeout * mfactor + " seconds.");
        current.set_timeout(timeout * mfactor);
        current.begin();
        current.begin();
        long startTime = System.currentTimeMillis();
        try {
            Services serv = new Services(myORB);
            SetGetVar = SetGetHelper.narrow(myORB.orb().string_to_object(TestUtility.getService(objectReference)));
        } catch (Exception e) {
            TestUtility.fail("Bind to object failed: " + e);
            e.printStackTrace(System.err);
        }
        try {
            theControl = current.get_control();
            SetGetVar.set((short) 2, theControl);
            theControl = null;
            System.out.println("Set value.");
        } catch (Exception e) {
            TestUtility.fail("Call to set or get failed: " + e);
            e.printStackTrace(System.err);
        }
        try {
            long timeNow = System.currentTimeMillis();
            long setTime = (timeNow - startTime);
            long timeoutTime = (timeout * 1000 * mfactor);
            long sleepTime = timeoutTime - setTime;
            if (sleepTime > 0) {
                System.out.println("Now sleeping for " + sleepTime * mfactor + " milliseconds.");
                Thread.sleep(sleepTime * mfactor);
            }
        } catch (Exception e) {
        }
        System.out.println("\ncommitting nested action.");
        try {
            current.commit(true);
            TestUtility.fail("commit worked");
        } catch (TRANSACTION_ROLLEDBACK e1) {
            System.out.println("Caught TransactionRolledBack");
        } catch (INVALID_TRANSACTION e1) /* For JacORB */
        {
            System.out.println("Caught InvalidTransaction");
        }
        System.out.println("\ncommitting top-level action");
        try {
            current.commit(true);
            TestUtility.fail("commit worked");
        } catch (TRANSACTION_ROLLEDBACK e2) {
            System.out.println("Caught TransactionRolledBack");
        } catch (INVALID_TRANSACTION e3) {
            System.out.println("Caught InvalidTransaction");
        } catch (Exception e) {
            TestUtility.fail("Caught other exception: " + e);
        }
    } catch (Exception e) {
        e.printStackTrace(System.err);
        TestUtility.fail(e.toString());
    }
    myOA.destroy();
    myORB.shutdown();
    System.out.println("Passed");
}
Also used : ServerORB(com.hp.mwtests.ts.jts.utils.ServerORB) Services(com.arjuna.orbportability.Services) Control(org.omg.CosTransactions.Control) SetGet(com.hp.mwtests.ts.jts.TestModule.SetGet) INVALID_TRANSACTION(org.omg.CORBA.INVALID_TRANSACTION) RootOA(com.arjuna.orbportability.RootOA) CurrentImple(com.arjuna.ats.internal.jts.orbspecific.CurrentImple) TRANSACTION_ROLLEDBACK(org.omg.CORBA.TRANSACTION_ROLLEDBACK) ServerORB(com.hp.mwtests.ts.jts.utils.ServerORB) ORB(com.arjuna.orbportability.ORB)

Example 87 with Control

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

the class TMTest method test.

@Test
public void test() throws Exception {
    ServerORB orb = new ServerORB();
    ORB myORB = orb.getORB();
    RootOA myOA = orb.getOA();
    TransactionFactory theOTS = null;
    Control topLevelControl = null;
    Services serv = new Services(myORB);
    int resolver = Services.getResolver();
    try {
        String[] params = new String[1];
        params[0] = Services.otsKind;
        org.omg.CORBA.Object obj = serv.getService(Services.transactionService, params, resolver);
        params = null;
        theOTS = TransactionFactoryHelper.narrow(obj);
    } catch (Exception e) {
        fail("Unexpected bind exception: " + e);
        e.printStackTrace(System.err);
    }
    System.out.println("Creating transaction.");
    try {
        topLevelControl = theOTS.create(0);
    } catch (Exception e) {
        fail("Create call failed: " + e);
        e.printStackTrace(System.err);
    }
    myOA.destroy();
    myORB.shutdown();
}
Also used : RootOA(com.arjuna.orbportability.RootOA) ServerORB(com.hp.mwtests.ts.jts.utils.ServerORB) Services(com.arjuna.orbportability.Services) Control(org.omg.CosTransactions.Control) TransactionFactory(org.omg.CosTransactions.TransactionFactory) ServerORB(com.hp.mwtests.ts.jts.utils.ServerORB) ORB(com.arjuna.orbportability.ORB) Test(org.junit.Test)

Example 88 with Control

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

the class TMClient method test.

@Test
public void test() throws Exception {
    ORB myORB = null;
    RootOA myOA = null;
    myORB = ORB.getInstance("test");
    myOA = OA.getRootOA(myORB);
    myORB.initORB(new String[] {}, null);
    myOA.initOA();
    ORBManager.setORB(myORB);
    ORBManager.setPOA(myOA);
    TransactionFactory theOTS = null;
    Control topLevelControl = null;
    Control nestedControl = null;
    String server = "/tmp/hammer1.ref";
    boolean slave = false;
    if (System.getProperty("os.name").startsWith("Windows")) {
        server = "C:\\temp\\hammer1.ref";
    }
    Services serv = new Services(myORB);
    int resolver = Services.getResolver();
    try {
        String[] params = new String[1];
        params[0] = Services.otsKind;
        org.omg.CORBA.Object obj = serv.getService(Services.transactionService, params, resolver);
        params = null;
        theOTS = TransactionFactoryHelper.narrow(obj);
    } catch (Exception e) {
        fail("Unexpected bind exception: " + e);
        e.printStackTrace(System.err);
    }
    System.out.println("Creating transaction.");
    try {
        topLevelControl = theOTS.create(0);
    } catch (Exception e) {
        fail("Create call failed: " + e);
        e.printStackTrace(System.err);
    }
    System.out.println("Creating subtransaction.");
    try {
        nestedControl = topLevelControl.get_coordinator().create_subtransaction();
    } catch (Exception e) {
        System.err.println("Subtransaction create call failed: " + e);
        try {
            topLevelControl.get_terminator().rollback();
        } catch (Exception ex) {
        }
        e.printStackTrace(System.err);
        fail();
    }
    try {
        DistributedHammerWorker1.hammerObject_1 = HammerHelper.narrow(serv.getService(server, null, Services.FILE));
        if (!DistributedHammerWorker1.hammerObject_1.incr(1, nestedControl))
            System.out.println("Could not increment!");
        else
            System.out.println("incremented.");
        System.out.println("sleeping.");
        Thread.sleep(20000);
        nestedControl.get_terminator().rollback();
        if (!slave) {
            System.out.println("master sleeping again.");
            Thread.sleep(20000);
        }
        IntHolder value = new IntHolder(0);
        org.omg.CosTransactions.PropagationContext ctx = topLevelControl.get_coordinator().get_txcontext();
        assertTrue(DistributedHammerWorker1.hammerObject_1.get(value, topLevelControl));
        topLevelControl.get_terminator().rollback();
    } catch (Exception e) {
        fail("TMClient: " + e);
        e.printStackTrace(System.err);
    }
    myOA.destroy();
    myORB.shutdown();
}
Also used : RootOA(com.arjuna.orbportability.RootOA) Services(com.arjuna.orbportability.Services) Control(org.omg.CosTransactions.Control) TransactionFactory(org.omg.CosTransactions.TransactionFactory) IntHolder(org.omg.CORBA.IntHolder) ORB(com.arjuna.orbportability.ORB) Test(org.junit.Test)

Example 89 with Control

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

the class ExplicitArjunaClient method main.

public static void main(String[] args) throws Exception {
    ServerORB orb = new ServerORB();
    ORB myORB = orb.getORB();
    RootOA myOA = orb.getOA();
    CurrentImple current = OTSImpleManager.current();
    String refFile = args[0];
    int value = 1;
    Control cont = null;
    try {
        System.out.println("Starting initialising top-level transaction.");
        current.begin();
        System.out.println("Initialising transaction name: " + current.get_transaction_name());
    } catch (Exception e) {
        TestUtility.fail(e.toString());
    }
    // pointer the grid object that will be used.
    ExplicitStack stackVar = null;
    try {
        stackVar = ExplicitStackHelper.narrow(myORB.orb().string_to_object(TestUtility.getService(refFile)));
    } catch (Exception e) {
        TestUtility.fail("Bind error: " + e);
    }
    try {
        System.out.println("pushing " + value + " onto stack");
        cont = current.get_control();
        stackVar.push(value, cont);
        System.out.println("\npushing " + (value + 1) + " onto stack");
        stackVar.push(value + 1, cont);
        cont = null;
    } catch (Exception e) {
        TestUtility.fail(e.toString());
    }
    try {
        current.commit(true);
        System.out.println("Committed top-level transaction");
        System.out.println("\nBeginning top-level transaction");
        current.begin();
        System.out.println("Top-level name: " + current.get_transaction_name());
        IntHolder val = new IntHolder(-1);
        cont = current.get_control();
        if (stackVar.pop(val, cont) == 0) {
            System.out.println("popped top of stack " + val.value);
            System.out.println("\nbeginning nested transaction");
            current.begin();
            System.out.println("nested name: " + current.get_transaction_name());
            cont = null;
            cont = current.get_control();
            stackVar.push(value + 2, cont);
            System.out.println("pushed " + (value + 2) + " onto stack. Aborting nested action.");
            // current will destroy this control!
            cont = null;
            current.rollback();
            cont = current.get_control();
            System.out.println("current transaction name: " + current.get_transaction_name());
            System.out.println("rolledback nested transaction");
            stackVar.pop(val, cont);
            System.out.println("\npopped top of stack is " + val.value);
            System.out.println("\nTrying to print stack contents - should fail.");
            stackVar.printStack();
            cont = null;
            current.commit(true);
            System.out.println("\nCommitted top-level transaction");
            if (current.get_transaction_name() == null)
                System.out.println("current transaction name: null");
            else
                System.out.println("Error - current transaction name: " + current.get_transaction_name());
            TestUtility.assertEquals(value, val.value);
        } else {
            System.out.println("Error getting stack value.");
            current.rollback();
            System.out.println("\nRolledback top-level transaction.");
        }
        try {
            System.out.println("\nPrinting stack contents (should be empty).");
            stackVar.printStack();
        } catch (Exception e) {
            TestUtility.fail("\nError - could not print.");
        }
    } catch (Exception e) {
        TestUtility.fail("Caught unexpected exception: " + e);
    }
    myOA.destroy();
    myORB.shutdown();
    System.out.println("Passed");
}
Also used : ServerORB(com.hp.mwtests.ts.jts.utils.ServerORB) Control(org.omg.CosTransactions.Control) IntHolder(org.omg.CORBA.IntHolder) RootOA(com.arjuna.orbportability.RootOA) ExplicitStack(com.hp.mwtests.ts.jts.TestModule.ExplicitStack) CurrentImple(com.arjuna.ats.internal.jts.orbspecific.CurrentImple) ServerORB(com.hp.mwtests.ts.jts.utils.ServerORB) ORB(com.arjuna.orbportability.ORB)

Example 90 with Control

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

the class CurrentTest method main.

public static void main(String[] args) throws Exception {
    ServerORB orb = new ServerORB();
    ORB myORB = orb.getORB();
    RootOA myOA = orb.getOA();
    CurrentImple current = OTSImpleManager.current();
    Control myControl = null;
    String gridReference = args[0];
    // pointer the grid object that will be used.
    grid gridVar = null;
    int h = -1, w = -1, v = -1;
    System.out.println("Beginning transaction.");
    try {
        current.begin();
        myControl = current.get_control();
        TestUtility.assertTrue(myControl != null);
    } catch (Exception sysEx) {
        sysEx.printStackTrace(System.err);
        TestUtility.fail(sysEx.toString());
    }
    try {
        Services serv = new Services(myORB);
        gridVar = gridHelper.narrow(myORB.orb().string_to_object(TestUtility.getService(gridReference)));
    } catch (Exception sysEx) {
        TestUtility.fail("failed to bind to grid: " + sysEx);
        sysEx.printStackTrace(System.err);
    }
    try {
        h = gridVar.height();
        w = gridVar.width();
    } catch (Exception sysEx) {
        TestUtility.fail("grid height/width failed: " + sysEx);
        sysEx.printStackTrace(System.err);
    }
    System.out.println("height is " + h);
    System.out.println("width  is " + w);
    try {
        gridVar.set(2, 4, 123, myControl);
        v = gridVar.get(2, 4, myControl);
    } catch (Exception sysEx) {
        TestUtility.fail("grid set/get failed: " + sysEx);
        sysEx.printStackTrace(System.err);
    }
    // no problem setting and getting the element:
    System.out.println("grid[2,4] is " + v);
    // sanity check: make sure we got the value 123 back:
    if (v != 123) {
        TestUtility.fail("something went seriously wrong");
        try {
            current.rollback();
        } catch (Exception e) {
            TestUtility.fail("rollback error: " + e);
            e.printStackTrace(System.err);
        }
    } else {
        System.out.println("Committing transaction.");
        try {
            current.commit(true);
        } catch (Exception e) {
            TestUtility.fail("commit error: " + e);
            e.printStackTrace(System.err);
        }
        myOA.destroy();
        myORB.shutdown();
        System.out.println("Passed");
    }
}
Also used : ServerORB(com.hp.mwtests.ts.jts.utils.ServerORB) Services(com.arjuna.orbportability.Services) Control(org.omg.CosTransactions.Control) TestModule.grid(com.hp.mwtests.ts.jts.TestModule.grid) RootOA(com.arjuna.orbportability.RootOA) CurrentImple(com.arjuna.ats.internal.jts.orbspecific.CurrentImple) ServerORB(com.hp.mwtests.ts.jts.utils.ServerORB) ORB(com.arjuna.orbportability.ORB)

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