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");
}
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();
}
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();
}
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");
}
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");
}
}
Aggregations