[ 
https://issues.apache.org/jira/browse/ODE-1045?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15055445#comment-15055445
 ] 

Sathwik Bantwal Premakumar commented on ODE-1045:
-------------------------------------------------

Seems like Hibernate expects the transaction manager to be registered in the 
JNDI for JTA.

There are two options:
1) Extend Hibernate class JTATransactionFactory and override the lookup method 
for UserTransaction.
2) Embed a tomcat with preconfigured Transaction Manager within ODE 
distribution.

I would prefer option 2)

This approach gives ODE users the ability to use ODE without any hassles in the 
initial stage of their adoption. Almost zero configuration needed for using ODE 
with embedded database mode. Just by starting the embedded server, ODE is up 
and running. The onus will be on the ODE developers to provide a clean 
deployment with embedded tomcat and facilitate user adoption hassle free. 

> Problem starting ODE 1.3.7 SNAPSHOT with Embedded database mode using 
> Hibernate
> -------------------------------------------------------------------------------
>
>                 Key: ODE-1045
>                 URL: https://issues.apache.org/jira/browse/ODE-1045
>             Project: ODE
>          Issue Type: Bug
>          Components: Deployment
>            Reporter: Sathwik Bantwal Premakumar
>            Assignee: Sathwik Bantwal Premakumar
>             Fix For: 1.3.7
>
>
> SEVERE: StandardWrapper.Throwable
> org.apache.ode.bpel.iapi.ContextException: DbError
>       at org.apache.ode.store.ProcessStoreImpl.exec(ProcessStoreImpl.java:657)
>       at 
> org.apache.ode.store.ProcessStoreImpl.loadAll(ProcessStoreImpl.java:551)
>       at org.apache.ode.axis2.ODEServer.init(ODEServer.java:197)
>       at org.apache.ode.axis2.ODEServer.init(ODEServer.java:137)
>       at 
> org.apache.ode.axis2.hooks.ODEAxisServlet.init(ODEAxisServlet.java:53)
>       at 
> org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1213)
>       at 
> org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:1026)
>       at 
> org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:4425)
>       at 
> org.apache.catalina.core.StandardContext.start(StandardContext.java:4738)
>       at 
> org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:802)
>       at 
> org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:779)
>       at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:583)
>       at 
> org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:1080)
>       at 
> org.apache.catalina.startup.HostConfig.deployDirectories(HostConfig.java:1003)
>       at 
> org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:507)
>       at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1322)
>       at 
> org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:325)
>       at 
> org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:142)
>       at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1068)
>       at org.apache.catalina.core.StandardHost.start(StandardHost.java:822)
>       at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1060)
>       at 
> org.apache.catalina.core.StandardEngine.start(StandardEngine.java:463)
>       at 
> org.apache.catalina.core.StandardService.start(StandardService.java:525)
>       at 
> org.apache.catalina.core.StandardServer.start(StandardServer.java:759)
>       at org.apache.catalina.startup.Catalina.start(Catalina.java:595)
>       at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>       at 
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
>       at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>       at java.lang.reflect.Method.invoke(Method.java:606)
>       at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:289)
>       at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414)
> Caused by: java.util.concurrent.ExecutionException: 
> org.hibernate.TransactionException: Could not find UserTransaction in JNDI 
> [java:comp/UserTransaction]
>       at java.util.concurrent.FutureTask.report(FutureTask.java:122)
>       at java.util.concurrent.FutureTask.get(FutureTask.java:188)
>       at org.apache.ode.store.ProcessStoreImpl.exec(ProcessStoreImpl.java:655)
>       ... 30 more
> Caused by: org.hibernate.TransactionException: Could not find UserTransaction 
> in JNDI [java:comp/UserTransaction]
>       at 
> org.hibernate.transaction.JTATransactionFactory.getUserTransaction(JTATransactionFactory.java:173)
>       at 
> org.hibernate.transaction.JTATransactionFactory.createTransaction(JTATransactionFactory.java:149)
>       at 
> org.hibernate.jdbc.JDBCContext.registerSynchronizationIfPossible(JDBCContext.java:195)
>       at org.hibernate.jdbc.JDBCContext.<init>(JDBCContext.java:99)
>       at org.hibernate.impl.SessionImpl.<init>(SessionImpl.java:241)
>       at 
> org.hibernate.impl.SessionFactoryImpl.openSession(SessionFactoryImpl.java:605)
>       at 
> org.hibernate.context.JTASessionContext.buildOrObtainSession(JTASessionContext.java:152)
>       at 
> org.hibernate.context.JTASessionContext.currentSession(JTASessionContext.java:111)
>       at 
> org.hibernate.impl.SessionFactoryImpl.getCurrentSession(SessionFactoryImpl.java:622)
>       at 
> org.apache.ode.store.hib.DbConfStoreConnectionFactory.getConnection(DbConfStoreConnectionFactory.java:100)
>       at 
> org.apache.ode.store.hib.DbConfStoreConnectionFactory.getConnection(DbConfStoreConnectionFactory.java:45)
>       at 
> org.apache.ode.store.ProcessStoreImpl.getConnection(ProcessStoreImpl.java:662)
>       at 
> org.apache.ode.store.ProcessStoreImpl.access$500(ProcessStoreImpl.java:67)
>       at 
> org.apache.ode.store.ProcessStoreImpl$Callable.call(ProcessStoreImpl.java:829)
>       at java.util.concurrent.FutureTask.run(FutureTask.java:262)
>       at 
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
>       at 
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
>       at java.lang.Thread.run(Thread.java:745)
> Caused by: javax.naming.NamingException: Cannot create resource instance
>       at 
> org.apache.naming.factory.TransactionFactory.getObjectInstance(TransactionFactory.java:113)
>       at 
> javax.naming.spi.NamingManager.getObjectInstance(NamingManager.java:321)
>       at org.apache.naming.NamingContext.lookup(NamingContext.java:793)
>       at org.apache.naming.NamingContext.lookup(NamingContext.java:140)
>       at org.apache.naming.NamingContext.lookup(NamingContext.java:781)
>       at org.apache.naming.NamingContext.lookup(NamingContext.java:153)
>       at org.apache.naming.SelectorContext.lookup(SelectorContext.java:152)
>       at javax.naming.InitialContext.lookup(InitialContext.java:411)
>       at 
> org.hibernate.transaction.JTATransactionFactory.getUserTransaction(JTATransactionFactory.java:163)
>       ... 17 more
> Dec 11, 2015 2:32:57 PM org.apache.catalina.core.StandardContext loadOnStartup
> SEVERE: Servlet /ode threw load() exception
> javax.naming.NamingException: Cannot create resource instance
>       at 
> org.apache.naming.factory.TransactionFactory.getObjectInstance(TransactionFactory.java:113)
>       at 
> javax.naming.spi.NamingManager.getObjectInstance(NamingManager.java:321)
>       at org.apache.naming.NamingContext.lookup(NamingContext.java:793)
>       at org.apache.naming.NamingContext.lookup(NamingContext.java:140)
>       at org.apache.naming.NamingContext.lookup(NamingContext.java:781)
>       at org.apache.naming.NamingContext.lookup(NamingContext.java:153)
>       at org.apache.naming.SelectorContext.lookup(SelectorContext.java:152)
>       at javax.naming.InitialContext.lookup(InitialContext.java:411)
>       at 
> org.hibernate.transaction.JTATransactionFactory.getUserTransaction(JTATransactionFactory.java:163)
>       at 
> org.hibernate.transaction.JTATransactionFactory.createTransaction(JTATransactionFactory.java:149)
>       at 
> org.hibernate.jdbc.JDBCContext.registerSynchronizationIfPossible(JDBCContext.java:195)
>       at org.hibernate.jdbc.JDBCContext.<init>(JDBCContext.java:99)
>       at org.hibernate.impl.SessionImpl.<init>(SessionImpl.java:241)
>       at 
> org.hibernate.impl.SessionFactoryImpl.openSession(SessionFactoryImpl.java:605)
>       at 
> org.hibernate.context.JTASessionContext.buildOrObtainSession(JTASessionContext.java:152)
>       at 
> org.hibernate.context.JTASessionContext.currentSession(JTASessionContext.java:111)
>       at 
> org.hibernate.impl.SessionFactoryImpl.getCurrentSession(SessionFactoryImpl.java:622)
>       at 
> org.apache.ode.store.hib.DbConfStoreConnectionFactory.getConnection(DbConfStoreConnectionFactory.java:100)
>       at 
> org.apache.ode.store.hib.DbConfStoreConnectionFactory.getConnection(DbConfStoreConnectionFactory.java:45)
>       at 
> org.apache.ode.store.ProcessStoreImpl.getConnection(ProcessStoreImpl.java:662)
>       at 
> org.apache.ode.store.ProcessStoreImpl.access$500(ProcessStoreImpl.java:67)
>       at 
> org.apache.ode.store.ProcessStoreImpl$Callable.call(ProcessStoreImpl.java:829)
>       at java.util.concurrent.FutureTask.run(FutureTask.java:262)
>       at 
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
>       at 
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
>       at java.lang.Thread.run(Thread.java:745)
> Dec 11, 2015 2:45:03 PM org.apache.catalina.core.ApplicationContext log
> INFO: SessionListener: contextDestroyed()
> Dec 11, 2015 2:45:03 PM org.apache.catalina.core.ApplicationContext log
> INFO: ContextListener: contextDestroyed()



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to