User development,

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

http://community.jboss.org/message/521690#521690

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

Message:
--------------------------------------------------------------
Hi,
 
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:-
 
org.jbpm.pvm.internal.tx.JtaTransaction
 
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.
 
Regards
Martin
 
 

--------------------------------------------------------------

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


_______________________________________________
jboss-user mailing list
[email protected]
https://lists.jboss.org/mailman/listinfo/jboss-user

Reply via email to