-
Enhancement
-
Resolution: Duplicate
-
Major
-
None
-
None
-
None
Normally UserTransaction is available in JBoss via JNDI lookup to "java:comp/UserTransaction" . But sometimes this approach does not work (For example if we have custom worker threads in our application or we are starting our AS7 deployment with custom MSC thread before "java:comp" context is available to JNDI)
So it may be good to fallback to "java:jboss/UserTransaction", which is available in JBoss AS7 even from custom threads.
Is it possible to change "org.jboss.as.jpa.hibernate4.JBossAppServerJtaPlatform" or "org.hibernate.service.jta.platform.internal.JBossAppServerJtaPlatform" to have method locateUserTransaction() similar to this?:
public static final String AS7_NEW_UT_NAME = "java:jboss/UserTransaction"; @Override protected UserTransaction locateUserTransaction() { try { return (UserTransaction) jndiService().locate(UT_NAME); } catch(JndiException jndiException) { return (UserTransaction) jndiService().locate(AS7_NEW_UT_NAME); } }