[jboss-user] [jBPM] New message: "jBPM 4.3 - Which JTA config to use for non-JBoss platform."

Martin Porter do-not-reply at jboss.com
Fri Jan 22 06:13:18 EST 2010

User development,

A new message was posted in the thread "jBPM 4.3 - Which JTA config to use for non-JBoss platform.":


Author  : Martin Porter
Profile : http://community.jboss.org/people/jedizippy

Whilst investigating an issue (and during an upgrade process) to 4.3 running on WLS I have attempted to include the jbpm JTA configuration in our jbpm.cfg.xml as follows (as per a recent update to the docs):-
<import resource="jbpm.tx.jta.cfg.xml"/>
This immediately failed during the engine initialization as the TransactionManager and the UserTransaction are not found in JNDI. Upon inspection of the code it is immediately apparent given the first two lines of code in:-
The offending lines of code:-
public static final String JNDINAME_USERTRANSACTION_JBOSS_GLOBAL = "UserTransaction";
public static final String JNDINAME_TRANSACTIONMANAGER_JBOSS_GLOBAL = "java:/TransactionManager";
Hence this will of course not work on another other server than JBoss. These settings should come from my jbpm.hibernate.cfg.xml where the following properties should be used:-
    <property name=+"hibernate.transaction.factory_class"+>org.hibernate.transaction.JTATransactionFactory</property> 
     <property name=+"hibernate.transaction.manager_lookup_class"+>org.hibernate.transaction.WeblogicTransactionManagerLookup</property> 
     <property name=+"jta.UserTransaction"+>java:comp/UserTransaction</property> 
     <property name=+"jndi.class"+>weblogic.jndi.WLInitialContextFactory</property>
So is it my confusion. Should this <import resource="*jbpm.tx.jta.cfg.xml"*/> be used only in JBoss platform and on other platforms the default hibernate configuration used <import resource="*jbpm.tx.hibernate.cfg.xml*"/>. .Or is it a bug in the code ?.
In addition I am more concerned by the following line of code in the actual method that gets the context from JNDI:-
public static Object lookupFromJndi(String jndiName) {
    try {
      InitialContext initialContext = new InitialContext();
      return initialContext.lookup(jndiName);
    } catch (Exception e) {
      throw new JbpmException("couldn't lookup '"+jndiName+"' from jndi: "+e.getMessage()+": "+e.getMessage(), e);
This will of course result in memory leaks and eventual file descriptor issues as the InitialContext is not closed.


To reply to this message visit the message page: http://community.jboss.org/message/521690#521690

More information about the jboss-user mailing list