You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@ode.apache.org by "Michael Smith (JIRA)" <ji...@apache.org> on 2011/08/15 05:52:27 UTC

[jira] [Commented] (ODE-302) Use embedded TransactionManager if database mode is EMBEDDED or INTERNAL

    [ 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