use of org.omg.CosTransactions.Control in project narayana by jbosstm.
the class Client01 method operation.
private static boolean operation() throws Exception {
boolean successful = false;
try {
AtomicTransaction atomicTransaction = new AtomicTransaction();
try {
atomicTransaction.begin();
try {
int x0 = Math.abs(_random.nextInt() % _matrixWidth);
int y0 = Math.abs(_random.nextInt() % _matrixHeight);
int x1 = Math.abs(_random.nextInt() % _matrixWidth);
int y1 = Math.abs(_random.nextInt() % _matrixHeight);
IntHolder srcValue = new IntHolder();
IntHolder dstValue = new IntHolder();
Control control = OTS.current().get_control();
_matrix.get_value(x0, y0, srcValue, control);
if (srcValue.value == 1) {
_matrix.get_value(x1, y1, dstValue, control);
if (dstValue.value == 0) {
_matrix.set_value(x0, y0, 0, control);
_matrix.set_value(x1, y1, 1, control);
successful = true;
}
}
} catch (InvocationException invocationException) {
if (invocationException.myreason != Reason.ReasonConcurrencyControl) {
throw invocationException;
}
}
if (successful) {
atomicTransaction.commit(true);
} else {
atomicTransaction.rollback();
}
} catch (Exception exception) {
if (atomicTransaction.get_status() == Status.StatusActive) {
atomicTransaction.rollback();
}
throw exception;
}
} catch (Exception exception) {
System.err.println("Client01.operation: " + exception);
exception.printStackTrace(System.err);
throw exception;
}
return successful;
}
use of org.omg.CosTransactions.Control in project narayana by jbosstm.
the class Test23 method main.
public static void main(String[] args) {
try {
ORBInterface.initORB(args, null);
OAInterface.initOA();
boolean correct = true;
Current current = OTS.get_current();
current.begin();
current.commit(false);
Control control = current.suspend();
correct = (control == null);
if (correct) {
System.out.println("Passed");
} else {
System.out.println("Failed");
}
} catch (Exception exception) {
System.out.println("Failed");
System.err.println("Test23.main: " + exception);
exception.printStackTrace(System.err);
}
try {
OAInterface.shutdownOA();
ORBInterface.shutdownORB();
} catch (Exception exception) {
System.err.println("Test23.main: " + exception);
exception.printStackTrace(System.err);
}
}
use of org.omg.CosTransactions.Control in project narayana by jbosstm.
the class Client05 method main.
public static void main(String[] args) {
try {
ORBInterface.initORB(args, null);
OAInterface.initOA();
TransactionFactory transactionFactory = null;
String[] transactionFactoryParams = new String[1];
transactionFactoryParams[0] = ORBServices.otsKind;
transactionFactory = TransactionFactoryHelper.narrow(ORBServices.getService(ORBServices.transactionService, transactionFactoryParams));
boolean correct;
Control control = transactionFactory.create(4);
Thread.sleep(8000);
try {
control.get_terminator().commit(false);
correct = false;
} catch (INVALID_TRANSACTION invalidTransaction) {
correct = true;
} catch (BAD_OPERATION badOperation) {
correct = true;
} catch (org.omg.CORBA.OBJECT_NOT_EXIST object_not_exist_exception) {
// This test creates a transaction with timeout period of 4 seconds then
// sleeps for 8 seconds.
// When the timeout goes off at the transaction service, the transaction is
// rolled back and destroyed.
// The subsequent call to commit on the transaction results in an
// org.omg.CORBA.OBJECT_NOT_EXIST exception being thrown.
// The JTS specification appears to be quite vague in this area, however our
// implementation is compliant with this vagueness.
// Hence, For the purposes of this test, org.omg.CORBA.OBJECT_NOT_EXIST being thrown
// does not indicate a failure - BD 20/06/01
correct = true;
} catch (Exception exception) {
System.err.println("Client05.main: commit exception = " + exception);
correct = false;
}
if (correct) {
System.out.println("Passed");
} else {
System.out.println("Failed");
}
} catch (Exception exception) {
System.out.println("Failed");
System.err.println("Client05.main: " + exception);
exception.printStackTrace(System.err);
}
try {
OAInterface.shutdownOA();
ORBInterface.shutdownORB();
} catch (Exception exception) {
System.err.println("Client05.main: " + exception);
exception.printStackTrace(System.err);
}
}
use of org.omg.CosTransactions.Control in project narayana by jbosstm.
the class Client11 method main.
public static void main(String[] args) {
try {
ORBInterface.initORB(args, null);
OAInterface.initOA();
TransactionFactory transactionFactory = null;
String[] transactionFactoryParams = new String[1];
transactionFactoryParams[0] = ORBServices.otsKind;
transactionFactory = TransactionFactoryHelper.narrow(ORBServices.getService(ORBServices.transactionService, transactionFactoryParams));
int numberOfControls = Integer.parseInt(args[args.length - 1]);
boolean correct = true;
Control[] controls = new Control[numberOfControls];
for (int index = 0; correct && (index < controls.length); index++) {
controls[index] = transactionFactory.create(0);
correct = correct && (controls[index].get_coordinator().get_status() == Status.StatusActive);
}
for (int index = 0; correct && (index < controls.length); index++) {
controls[index].get_terminator().commit(false);
}
if (correct) {
System.out.println("Passed");
} else {
System.out.println("Failed");
}
} catch (Exception exception) {
System.out.println("Failed");
System.err.println("Client11.main: " + exception);
exception.printStackTrace(System.err);
}
try {
OAInterface.shutdownOA();
ORBInterface.shutdownORB();
} catch (Exception exception) {
System.err.println("Client11.main: " + exception);
exception.printStackTrace(System.err);
}
}
use of org.omg.CosTransactions.Control in project narayana by jbosstm.
the class Client08 method main.
public static void main(String[] args) {
try {
ORBInterface.initORB(args, null);
OAInterface.initOA();
TransactionFactory transactionFactory = null;
String[] transactionFactoryParams = new String[1];
transactionFactoryParams[0] = ORBServices.otsKind;
transactionFactory = TransactionFactoryHelper.narrow(ORBServices.getService(ORBServices.transactionService, transactionFactoryParams));
int numberOfControls = Integer.parseInt(args[args.length - 1]);
boolean correct = true;
for (int index = 0; correct && (index < numberOfControls); index++) {
Control control = transactionFactory.create(0);
correct = correct && (control.get_coordinator().get_status() == Status.StatusActive);
control.get_terminator().commit(false);
}
if (correct) {
System.out.println("Passed");
} else {
System.out.println("Failed");
}
} catch (Exception exception) {
System.out.println("Failed");
System.err.println("Client08.main: " + exception);
exception.printStackTrace(System.err);
}
try {
OAInterface.shutdownOA();
ORBInterface.shutdownORB();
} catch (Exception exception) {
System.err.println("Client08.main: " + exception);
exception.printStackTrace(System.err);
}
}
Aggregations