[
https://issues.apache.org/jira/browse/ODE-302?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13084952#comment-13084952
]
Michael Smith commented on ODE-302:
-----------------------------------
Just FYI, this issue (TransactionManager is not recoverable) still exists in
1.4-snapshot (trunk) running under ServiceMix 4.4 with INTERNAL database mode.
I ported the patch attached to this bug and get the following trace:
[code]
2011-08-14 23:44:33,573 DEBUG [ODE Extender:Start:com.xxx.biz-engine]
(BpelProcess.java:994) - Creating new process DAO for
{urn:xxx:201106:business:bpel}BusinessProcess-0
(guid=trnr1ec1w78hmne3uk5nq4chgaj6lw1e)...
2011-08-14 23:44:33,573 ERROR [ODE Extender:Start:com.xxx.biz-engine]
(BpelDAOConnectionImpl.java:132) - DbError
org.hibernate.HibernateException: Unable to locate current JTA transaction
at
org.hibernate.context.JTASessionContext.currentSession(JTASessionContext.java:61)[226:wrap_mvn_org.hibernate_hibernate_3.2.5.ga:0]
at
org.hibernate.impl.SessionFactoryImpl.getCurrentSession(SessionFactoryImpl.java:544)[226:wrap_mvn_org.hibernate_hibernate_3.2.5.ga:0]
at
org.apache.ode.daohib.SessionManager.getSession(SessionManager.java:104)[247:org.apache.ode.ode-jbi-bundle:1.4.0.SNAPSHOT]
at
org.apache.ode.daohib.bpel.BpelDAOConnectionImpl.getSession(BpelDAOConnectionImpl.java:89)[247:org.apache.ode.ode-jbi-bundle:1.4.0.SNAPSHOT]
at
org.apache.ode.daohib.bpel.BpelDAOConnectionImpl.getProcess(BpelDAOConnectionImpl.java:126)[247:org.apache.ode.ode-jbi-bundle:1.4.0.SNAPSHOT]
at
org.apache.ode.bpel.engine.BpelProcess.createProcessDAO(BpelProcess.java:1006)[247:org.apache.ode.ode-jbi-bundle:1.4.0.SNAPSHOT]
at
org.apache.ode.bpel.engine.BpelProcess.bounceProcessDAOInDB(BpelProcess.java:995)[247:org.apache.ode.ode-jbi-bundle:1.4.0.SNAPSHOT]
at
org.apache.ode.bpel.engine.BpelProcess.access$1700(BpelProcess.java:97)[247:org.apache.ode.ode-jbi-bundle:1.4.0.SNAPSHOT]
at
org.apache.ode.bpel.engine.BpelProcess$HydrationLatch$3.call(BpelProcess.java:975)[247:org.apache.ode.ode-jbi-bundle:1.4.0.SNAPSHOT]
at
org.apache.ode.scheduler.simple.SimpleScheduler.execTransaction(SimpleScheduler.java:286)[247:org.apache.ode.ode-jbi-bundle:1.4.0.SNAPSHOT]
at
org.apache.ode.scheduler.simple.SimpleScheduler.execTransaction(SimpleScheduler.java:241)[247:org.apache.ode.ode-jbi-bundle:1.4.0.SNAPSHOT]
at
org.apache.ode.bpel.engine.BpelProcess$HydrationLatch.doHydrate(BpelProcess.java:973)[247:org.apache.ode.ode-jbi-bundle:1.4.0.SNAPSHOT]
at
org.apache.ode.bpel.engine.BpelProcess$HydrationLatch.access$200(BpelProcess.java:836)[247:org.apache.ode.ode-jbi-bundle:1.4.0.SNAPSHOT]
at
org.apache.ode.bpel.engine.BpelProcess$HydrationLatch$2.run(BpelProcess.java:846)[247:org.apache.ode.ode-jbi-bundle:1.4.0.SNAPSHOT]
at
org.apache.ode.bpel.engine.NStateLatch.latch(NStateLatch.java:89)[247:org.apache.ode.ode-jbi-bundle:1.4.0.SNAPSHOT]
at
org.apache.ode.bpel.engine.BpelProcess.hydrate(BpelProcess.java:747)[247:org.apache.ode.ode-jbi-bundle:1.4.0.SNAPSHOT]
at
org.apache.ode.bpel.engine.BpelServerImpl.register(BpelServerImpl.java:324)[247:org.apache.ode.ode-jbi-bundle:1.4.0.SNAPSHOT]
at
org.apache.ode.jbi.OdeServiceUnit.start(OdeServiceUnit.java:118)[247:org.apache.ode.ode-jbi-bundle:1.4.0.SNAPSHOT]
at
org.apache.ode.jbi.OdeSUManager.start(OdeSUManager.java:118)[247:org.apache.ode.ode-jbi-bundle:1.4.0.SNAPSHOT]
at
org.apache.ode.jbi.osgi.deployer.OdeDeployedBundle.deploy(OdeDeployedBundle.java:158)[247:org.apache.ode.ode-jbi-bundle:1.4.0.SNAPSHOT]
at
org.apache.ode.jbi.osgi.deployer.OdeDeployedBundle.doStart(OdeDeployedBundle.java:92)[247:org.apache.ode.ode-jbi-bundle:1.4.0.SNAPSHOT]
at
org.apache.ode.jbi.osgi.deployer.OdeExtenderImpl$Start.perform(OdeExtenderImpl.java:240)[247:org.apache.ode.ode-jbi-bundle:1.4.0.SNAPSHOT]
at
org.apache.ode.jbi.osgi.deployer.OdeExtenderImpl$OperationClosure.run(OdeExtenderImpl.java:222)[247:org.apache.ode.ode-jbi-bundle:1.4.0.SNAPSHOT]
at
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)[:1.6.0_26]
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)[:1.6.0_26]
at java.lang.Thread.run(Thread.java:662)[:1.6.0_26]
[/code]
> Use embedded TransactionManager if database mode is EMBEDDED or INTERNAL
> ------------------------------------------------------------------------
>
> Key: ODE-302
> URL: https://issues.apache.org/jira/browse/ODE-302
> Project: ODE
> Issue Type: Bug
> Components: JBI Integration
> Reporter: Alex Boisvert
> Labels: patch
> Fix For: 2.0
>
> Attachments: ODE302.patch.txt
>
>
> Ode should not use the TransactionManager provided by the JBI container in
> EMBEDDED and INTERNAL database modes since it creates its own DataSource
> which are not under the responsibility of the container's TransactionManager.
> This happened to work with ServiceMix since it uses the same
> TransactionManager (Geronimo's), but it's not something we can assume in
> other JBI environments.
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira