I'm trying to set up a szenario with a stand-alone client and two application server instances. The client is to invoke two ejb3 session-beans (one from each application server instance) in a transactional fashion.
I carried out the instructions in jboss-5.0.0.GA.JDK6/docs/examples/jts/README.txt and set up the client as described in http://www.jboss.org/community/wiki/TransactionPropagationwithJBoss
No luck so far. None of the session-beans is enlisted in any transaction.
The beans:
@Stateless
@Remote(BusinessInterface1.class)
@RemoteBinding(factory = RemoteBindingDefaults.PROXY_FACTORY_IMPLEMENTATION_IOR, jndiBinding="Bean1")
public class Bean1 implements BusinessInterface1 {
@TransactionAttribute(TransactionAttributeType.MANDATORY)
public void businessMethod1() {...}
}
Properties jndiSetup1 = new Properties( );
jndiSetup1.put( InitialContext.PROVIDER_URL, "corbaloc::10.2.0.1:3528/JBoss/Naming/root" );
jndiSetup1.put( InitialContext.INITIAL_CONTEXT_FACTORY, com.sun.jndi.cosnaming.CNCtxFactory.class.getName( ) );
jndiSetup1.put( InitialContext.URL_PKG_PREFIXES, "org.jboss.naming:org.jnp.interfaces" );
com.arjuna.orbportability.ORB orb = com.arjuna.orbportability.ORB.getInstance("ClientSide");
com.arjuna.orbportability.RootOA oa = com.arjuna.orbportability.OA.getRootOA(orb);
orb.initORB(new String[] {}, null);
oa.initOA();
com.arjuna.ats.internal.jts.ORBManager.setORB(orb);
com.arjuna.ats.internal.jts.ORBManager.setPOA(oa);
InitialContext ic1 = new InitialContext( jndiSetup1 );
Interface1 bean1 = (Interface1) ic1.lookup("java:Bean1");
com.arjuna.ats.jts.OTSManager.get_current().begin();
bean1.businessMethod1();
boolean reportHeuristics = true;
com.arjuna.ats.jts.OTSManager.get_current().commit(reportHeuristics);