use of com.arjuna.orbportability.ORB in project narayana by jbosstm.
the class TransactionManagerService method start.
/**
* @param theCorbaORB an orb that the TM should use for JTS operations. The caller is responsible for
* shutting down and destroying this orb
* @throws Exception
*/
public void start(org.omg.CORBA.ORB theCorbaORB) throws Exception {
jbossatxLogger.i18NLogger.info_jts_TransactionManagerService_start();
// Create an ORB portability wrapper around the CORBA ORB services orb
ORB orb = ORB.getInstance(ORB_NAME);
org.omg.PortableServer.POA rootPOA = org.omg.PortableServer.POAHelper.narrow(theCorbaORB.resolve_initial_references("RootPOA"));
orb.setOrb(theCorbaORB);
OA oa = OA.getRootOA(orb);
oa.setPOA(rootPOA);
try {
// OTSManager won't play nice unless we explicity bootstrap the portability layer:
ORBManager.setORB(orb);
ORBManager.setPOA(oa);
OrbPortabilityEnvironmentBean env = BeanPopulator.getDefaultInstance(OrbPortabilityEnvironmentBean.class);
env.setShutdownWrappedOrb(false);
org.omg.CosTransactions.TransactionFactory factory = com.arjuna.ats.jts.OTSManager.get_factory();
final int resolver = Services.getResolver();
com.arjuna.ats.jts.TransactionServer.registerTransactionManager(resolver, orb, factory);
} catch (final Exception ex) {
throw new Exception(jbossatxLogger.i18NLogger.get_jts_TransactionManagerService_failed(), ex);
}
}
use of com.arjuna.orbportability.ORB in project narayana by jbosstm.
the class JTSOSBTestBase method initOrb.
@BeforeClass
public static void initOrb() throws InvalidName {
int recoveryOrbPort = jtsPropertyManager.getJTSEnvironmentBean().getRecoveryManagerPort();
final Properties p = new Properties();
p.setProperty("OAPort", "" + recoveryOrbPort);
p.setProperty("com.sun.CORBA.POA.ORBPersistentServerPort", "" + recoveryOrbPort);
p.setProperty("com.sun.CORBA.POA.ORBServerId", "" + recoveryOrbPort);
ORB orb = ORB.getInstance("test");
OA oa = OA.getRootOA(orb);
orb.initORB(new String[] {}, p);
oa.initOA();
ORBManager.setORB(orb);
ORBManager.setPOA(oa);
}
use of com.arjuna.orbportability.ORB in project narayana by jbosstm.
the class SimpleTest 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);
jtaPropertyManager.getJTAEnvironmentBean().setTransactionManagerClassName(com.arjuna.ats.internal.jta.transaction.jts.TransactionManagerImple.class.getName());
jtaPropertyManager.getJTAEnvironmentBean().setUserTransactionClassName(com.arjuna.ats.internal.jta.transaction.jts.UserTransactionImple.class.getName());
javax.transaction.TransactionManager transactionManager = com.arjuna.ats.jta.TransactionManager.transactionManager();
transactionManager.begin();
Transaction currentTrans = transactionManager.getTransaction();
TestResource res1, res2;
currentTrans.enlistResource(res1 = new TestResource());
currentTrans.enlistResource(res2 = new TestResource());
currentTrans.delistResource(res2, XAResource.TMSUCCESS);
currentTrans.delistResource(res1, XAResource.TMSUCCESS);
transactionManager.commit();
myOA.destroy();
myORB.shutdown();
}
use of com.arjuna.orbportability.ORB in project narayana by jbosstm.
the class RollbackTest 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);
javax.transaction.TransactionManager transactionManager = com.arjuna.ats.jta.TransactionManager.transactionManager();
boolean passed = false;
transactionManager.setTransactionTimeout(3);
transactionManager.begin();
try {
Thread.currentThread().sleep(4000);
} catch (Exception ex) {
}
try {
transactionManager.rollback();
passed = true;
} catch (IllegalStateException ex) {
passed = false;
} catch (Exception ex) {
passed = false;
}
assertTrue(passed);
}
use of com.arjuna.orbportability.ORB in project narayana by jbosstm.
the class WedgedResourceDemonstrator method testWedge.
@Test
public void testWedge() throws InvalidName, SystemException, NotSupportedException, javax.transaction.SystemException, IllegalStateException, RollbackException, SecurityException, HeuristicMixedException, HeuristicRollbackException, InterruptedException {
String mode = "jts";
if (mode.equals("jts")) {
ORB myORB = ORB.getInstance("test");
RootOA myOA = OA.getRootOA(myORB);
myORB.initORB(new String[0], null);
myOA.initOA();
com.arjuna.ats.internal.jts.ORBManager.setORB(myORB);
com.arjuna.ats.internal.jts.ORBManager.setPOA(myOA);
RecoveryManager.manager().initialize();
}
TransactionManager transactionManager = mode.equals("jts") ? new com.arjuna.ats.internal.jta.transaction.jts.TransactionManagerImple() : new com.arjuna.ats.internal.jta.transaction.arjunacore.TransactionManagerImple();
transactionManager.setTransactionTimeout(2);
transactionManager.begin();
transactionManager.getTransaction().enlistResource(new TimeoutOnFirstRollbackResource());
// Business logic
Thread.currentThread().sleep(5000);
try {
transactionManager.commit();
fail("Should not have been able to commit");
} catch (RollbackException e) {
// This is fine
} catch (IllegalStateException e) {
// This is fine
} finally {
if (mode.equals("jts")) {
RecoveryManager.manager().terminate();
ORB myORB = ORB.getInstance("test");
RootOA myOA = OA.getRootOA(myORB);
myOA.destroy();
myORB.shutdown();
}
}
}
Aggregations