You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@ode.apache.org by "sijo cherian (JIRA)" <ji...@apache.org> on 2009/07/07 23:34:14 UTC

[jira] Commented: (ODE-507) OutstandingRequestManager(ExecutionQueueImpl serialization) failed when ODE loaded in db mode

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

sijo cherian commented on ODE-507:
----------------------------------

I am getting same error with Oracle, without setting the database transaction isolation level.
: ORA-01453: SET TRANSACTION must be first statement of transaction

The thread [ODEServer-2] , executed one statement just fine, but another one got ORA-01453.

--Debug Trace--
--[07 Jul 2009 16:58:59,062] [ODEServer-2] DEBUG org.apache.ode.sql  - getConnection (tx=2)
--[07 Jul 2009 16:58:59,062] [ODEServer-2] DEBUG org.apache.ode.sql  - Set isolation level to 2
--[07 Jul 2009 16:58:59,062] [ODEServer-1] DEBUG org.apache.ode.sql  - prepareStatement: SELECT t0.ID, t0.GUID, t0.PROCESS_ID, t0.PROCESS_TYPE, t0.VERSION FROM ODE_PROCESS t0 WHERE (t0.PROCESS_ID = ?)
--[07 Jul 2009 16:58:59,062] [ODEServer-1] DEBUG org.apache.ode.sql  - executeQuery, bound (1,{http://servicens}SNFWorkflow-27) 
--[07 Jul 2009 16:58:59,062] [ODEServer-2] DEBUG org.apache.ode.sql  - prepareStatement: SELECT t0.DATA, t0.HEADER, t0.MESSAGE_EXCHANGE_ID, t0.TYPE FROM ODE_MESSAGE t0 WHERE t0.MESSAGE_ID = ?
--[07 Jul 2009 16:58:59,062] [ODEServer-2] DEBUG org.apache.ode.sql  - executeQuery, bound (1,5704) 
--[07 Jul 2009 16:58:59,078] [ODEServer-1] DEBUG org.apache.ode.sql  - prepareStatement: SELECT COUNT(*) FROM ODE_PROCESS t0 WHERE (t0.PROCESS_ID = ?)
--[07 Jul 2009 16:58:59,078] [ODEServer-1] DEBUG org.apache.ode.sql  - executeQuery, bound (1,{http://servicens}SNFWorkflow-27) 
--[07 Jul 2009 16:58:59,078] [ODEServer-1] DEBUG org.apache.ode.sql  - close()
--[07 Jul 2009 16:58:59,078] [ODEServer-1] DEBUG org.apache.ode.sql  - close()
--[07 Jul 2009 16:58:59,078] [ODEServer-1] DEBUG org.apache.ode.sql  - close()
--[07 Jul 2009 16:58:59,078] [ODEServer-1] DEBUG org.apache.ode.sql  - getConnection (tx=2)
--[07 Jul 2009 16:58:59,078] [ODEServer-1] DEBUG org.apache.ode.sql  - Set isolation level to 2
--[07 Jul 2009 16:58:59,078] [ODEServer-1] DEBUG org.apache.ode.sql  - prepareStatement: SELECT t0.ID, t0.GUID, t0.PROCESS_ID, t0.PROCESS_TYPE, t0.VERSION FROM ODE_PROCESS t0 WHERE (t0.PROCESS_ID = ?)
--[07 Jul 2009 16:58:59,078] [ODEServer-1] DEBUG org.apache.ode.sql  - executeQuery, bound (1,{http://servicens}SNFWorkflow-27) 
--[07 Jul 2009 16:58:59,109] [ODEServer-2] DEBUG org.apache.ode.sql  - close()
--[07 Jul 2009 16:58:59,109] [ODEServer-2] DEBUG org.apache.ode.sql  - close()
--[07 Jul 2009 16:58:59,109] [ODEServer-2] DEBUG org.apache.ode.bpel.runtime.ScopeFrame  - Initialize variable: name={Variable __PROCESS_SCOPE:SNFWorkflow.eventRes:OMessageVarType#42} value=
--[07 Jul 2009 16:58:59,109] [ODEServer-1] DEBUG org.apache.ode.sql  - prepareStatement: SELECT COUNT(*) FROM ODE_PROCESS t0 WHERE (t0.PROCESS_ID = ?)
--[07 Jul 2009 16:58:59,109] [ODEServer-1] DEBUG org.apache.ode.sql  - executeQuery, bound (1,{http://servicens}SNFWorkflow-27) 
--[07 Jul 2009 16:58:59,109] [ODEServer-2] DEBUG org.apache.ode.sql  - getConnection (tx=2)
--[07 Jul 2009 16:58:59,109] [ODEServer-2] DEBUG org.apache.ode.sql  - Set isolation level to 2
--[07 Jul 2009 16:58:59,109] [ODEServer-1] DEBUG org.apache.ode.sql  - close()
--[07 Jul 2009 16:58:59,109] [ODEServer-1] DEBUG org.apache.ode.sql  - close()
--[07 Jul 2009 16:58:59,109] [ODEServer-1] DEBUG org.apache.ode.sql  - close()
--[07 Jul 2009 16:58:59,109] [ODEServer-1] DEBUG org.apache.ode.sql  - getConnection (tx=2)
--[07 Jul 2009 16:58:59,109] [ODEServer-1] DEBUG org.apache.ode.sql  - Set isolation level to 2
--[07 Jul 2009 16:58:59,109] [ODEServer-1] DEBUG org.apache.ode.sql  - prepareStatement: SELECT t0.ID, t0.GUID, t0.PROCESS_ID, t0.PROCESS_TYPE, t0.VERSION FROM ODE_PROCESS t0 WHERE (t0.PROCESS_ID = ?)
--[07 Jul 2009 16:58:59,109] [ODEServer-1] DEBUG org.apache.ode.sql  - executeQuery, bound (1,{http://servicens}SNFWorkflow-27) 
--[07 Jul 2009 16:58:59,109] [ODEServer-2] ERROR org.apache.ode.jacob.vpu.JacobVPU  - Method "onResponse" in class "org.apache.ode.bpel.runtime.INVOKE$2" threw an unexpected exception.
<openjpa-1.1.0-r422266:659716 nonfatal general error> org.apache.openjpa.persistence.PersistenceException: ORA-01453: SET TRANSACTION must be first statement of transaction

	at org.apache.openjpa.jdbc.sql.SQLExceptions.narrow(SQLExceptions.java:146)
	at org.apache.openjpa.jdbc.sql.DBDictionary.newStoreException(DBDictionary.java:4150)
	at org.apache.openjpa.jdbc.sql.SQLExceptions.getStore(SQLExceptions.java:102)
	at org.apache.openjpa.jdbc.sql.SQLExceptions.getStore(SQLExceptions.java:88)
	at org.apache.openjpa.jdbc.sql.SQLExceptions.getStore(SQLExceptions.java:64)
	at org.apache.openjpa.jdbc.kernel.JDBCStoreManager.connect(JDBCStoreManager.java:762)
	at org.apache.openjpa.jdbc.kernel.JDBCStoreManager.getConnection(JDBCStoreManager.java:215)
	at org.apache.openjpa.jdbc.sql.SelectImpl.execute(SelectImpl.java:349)
	at org.apache.openjpa.jdbc.sql.SelectImpl.execute(SelectImpl.java:319)
	at org.apache.openjpa.jdbc.kernel.JDBCStoreManager.getInitializeStateResult(JDBCStoreManager.java:411)
	at org.apache.openjpa.jdbc.kernel.JDBCStoreManager.initializeState(JDBCStoreManager.java:307)
	at org.apache.openjpa.jdbc.kernel.JDBCStoreManager.initialize(JDBCStoreManager.java:263)
	at org.apache.openjpa.kernel.DelegatingStoreManager.initialize(DelegatingStoreManager.java:111)
	at org.apache.openjpa.kernel.ROPStoreManager.initialize(ROPStoreManager.java:57)
	at org.apache.openjpa.kernel.BrokerImpl.initialize(BrokerImpl.java:894)
	at org.apache.openjpa.kernel.BrokerImpl.find(BrokerImpl.java:852)
	at org.apache.openjpa.kernel.BrokerImpl.find(BrokerImpl.java:769)
	at org.apache.openjpa.kernel.DelegatingBroker.find(DelegatingBroker.java:183)
	at org.apache.openjpa.persistence.EntityManagerImpl.find(EntityManagerImpl.java:452)
	at org.apache.ode.dao.jpa.ProcessInstanceDAOImpl.getScope(ProcessInstanceDAOImpl.java:328)
	at org.apache.ode.bpel.engine.BpelRuntimeContextImpl.writeVariable(BpelRuntimeContextImpl.java:473)
	at org.apache.ode.bpel.runtime.ScopeFrame.initializeVariable(ScopeFrame.java:237)
	at org.apache.ode.bpel.runtime.ACTIVITY.initializeVariable(ACTIVITY.java:166)
	at org.apache.ode.bpel.runtime.INVOKE$2.onResponse(INVOKE.java:121)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:597)
	at org.apache.ode.jacob.vpu.JacobVPU$JacobThreadImpl.run(JacobVPU.java:451)
	at org.apache.ode.jacob.vpu.JacobVPU.execute(JacobVPU.java:139)
	at org.apache.ode.bpel.engine.BpelRuntimeContextImpl.execute(BpelRuntimeContextImpl.java:870)
	at org.apache.ode.bpel.engine.BpelProcess.handleWorkEvent(BpelProcess.java:438)
	at org.apache.ode.bpel.engine.BpelEngineImpl.onScheduledJob(BpelEngineImpl.java:439)
	at org.apache.ode.bpel.engine.BpelServerImpl.onScheduledJob(BpelServerImpl.java:441)
	at org.apache.ode.scheduler.simple.SimpleScheduler$4$1.call(SimpleScheduler.java:411)
	at org.apache.ode.scheduler.simple.SimpleScheduler$4$1.call(SimpleScheduler.java:405)
	at org.apache.ode.scheduler.simple.SimpleScheduler.execTransaction(SimpleScheduler.java:218)
	at org.apache.ode.scheduler.simple.SimpleScheduler$4.call(SimpleScheduler.java:404)
	at org.apache.ode.scheduler.simple.SimpleScheduler$4.call(SimpleScheduler.java:401)
	at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
	at java.util.concurrent.FutureTask.run(FutureTask.java:138)
	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
	at java.lang.Thread.run(Thread.java:619)
Caused by: java.sql.SQLException: ORA-01453: SET TRANSACTION must be first statement of transaction

	at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:112)
	at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:331)
	at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:288)
	at oracle.jdbc.driver.T4C8Oall.receive(T4C8Oall.java:745)
	at oracle.jdbc.driver.T4CStatement.doOall8(T4CStatement.java:207)
	at oracle.jdbc.driver.T4CStatement.executeForRows(T4CStatement.java:957)
	at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1170)
	at oracle.jdbc.driver.OracleStatement.executeInternal(OracleStatement.java:1696)
	at oracle.jdbc.driver.OracleStatement.execute(OracleStatement.java:1662)
	at oracle.jdbc.driver.PhysicalConnection.setTransactionIsolation(PhysicalConnection.java:1661)
	at com.sun.gjc.spi.base.ConnectionHolder.setTransactionIsolation(ConnectionHolder.java:694)
	at sun.reflect.GeneratedMethodAccessor111.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:597)
	at org.apache.ode.utils.LoggingInterceptor.invoke(LoggingInterceptor.java:85)
	at $Proxy97.setTransactionIsolation(Unknown Source)
	at org.apache.openjpa.lib.jdbc.DelegatingConnection.setTransactionIsolation(DelegatingConnection.java:257)
	at org.apache.openjpa.lib.jdbc.ConfiguringConnectionDecorator.decorate(ConfiguringConnectionDecorator.java:95)
	at org.apache.openjpa.lib.jdbc.DecoratingDataSource.decorate(DecoratingDataSource.java:100)
	at org.apache.openjpa.lib.jdbc.DecoratingDataSource.getConnection(DecoratingDataSource.java:88)
	at org.apache.openjpa.jdbc.kernel.JDBCStoreManager.connectInternal(JDBCStoreManager.java:773)
	at org.apache.openjpa.jdbc.kernel.JDBCStoreManager.connect(JDBCStoreManager.java:758)
	... 38 more
--[07 Jul 2009 16:58:59,109] [ODEServer-2] ERROR org.apache.ode.bpel.engine.BpelEngineImpl  - Scheduled job failed; jobDetail={mexid=hqejbhcnphr4ex3kkohdt0, iid=5805, type=INVOKE_RESPONSE, retry=0, channel=23}
java.lang.RuntimeException: <openjpa-1.1.0-r422266:659716 nonfatal general error> org.apache.openjpa.persistence.PersistenceException: ORA-01453: SET TRANSACTION must be first statement of transaction

	at org.apache.ode.jacob.vpu.JacobVPU$JacobThreadImpl.run(JacobVPU.java:464)
	at org.apache.ode.jacob.vpu.JacobVPU.execute(JacobVPU.java:139)
	at org.apache.ode.bpel.engine.BpelRuntimeContextImpl.execute(BpelRuntimeContextImpl.java:870)
	at org.apache.ode.bpel.engine.BpelProcess.handleWorkEvent(BpelProcess.java:438)
	at org.apache.ode.bpel.engine.BpelEngineImpl.onScheduledJob(BpelEngineImpl.java:439)
	at org.apache.ode.bpel.engine.BpelServerImpl.onScheduledJob(BpelServerImpl.java:441)
	at org.apache.ode.scheduler.simple.SimpleScheduler$4$1.call(SimpleScheduler.java:411)
	at org.apache.ode.scheduler.simple.SimpleScheduler$4$1.call(SimpleScheduler.java:405)
	at org.apache.ode.scheduler.simple.SimpleScheduler.execTransaction(SimpleScheduler.java:218)
	at org.apache.ode.scheduler.simple.SimpleScheduler$4.call(SimpleScheduler.java:404)
	at org.apache.ode.scheduler.simple.SimpleScheduler$4.call(SimpleScheduler.java:401)
	at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
	at java.util.concurrent.FutureTask.run(FutureTask.java:138)
	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
	at java.lang.Thread.run(Thread.java:619)
Caused by: <openjpa-1.1.0-r422266:659716 nonfatal general error> org.apache.openjpa.persistence.PersistenceException: ORA-01453: SET TRANSACTION must be first statement of transaction


> OutstandingRequestManager(ExecutionQueueImpl serialization) failed when ODE loaded in db mode
> ---------------------------------------------------------------------------------------------
>
>                 Key: ODE-507
>                 URL: https://issues.apache.org/jira/browse/ODE-507
>             Project: ODE
>          Issue Type: Bug
>          Components: BPEL Runtime
>    Affects Versions: 1.2
>         Environment: JAVA 5.0+
>            Reporter: Shammy Chen
>            Assignee: Sean Ahn
>         Attachments: bpmdemo3-5.zip, geronimo.log, OutstandingRequestManager_err_detail.log, VpuOustandingDataTest.java
>
>
> We loaded ODE process in db mode and got INTERNAL ERROR from ODE sometime, see the following adapted from error log for detail infomation.
> 15:05:51,774 FATAL [OutstandingRequestManager] INTERNAL ERROR: No ENTRY for RESPONSE CHANNEL 53
> 15:05:51,776 ERROR [BpelEngineImpl] Scheduled job failed; jobDetail={mexid=4611686018427390107, pid={http://example.com/bpmdemo3/service}service-17, type=INVOKE_INTERNAL}
> java.lang.IllegalArgumentException: INTERNAL ERROR: No ENTRY for RESPONSE CHANNEL 53
> 	at org.apache.ode.bpel.engine.OutstandingRequestManager.associate(OutstandingRequestManager.java:145)
> 	at org.apache.ode.bpel.engine.BpelRuntimeContextImpl.inputMsgMatch(BpelRuntimeContextImpl.java:894)
> 	at org.apache.ode.bpel.engine.PartnerLinkMyRoleImpl.invokeInstance(PartnerLinkMyRoleImpl.java:211)
> 	at org.apache.ode.bpel.engine.BpelProcess.invokeProcess(BpelProcess.java:208)
> 	at org.apache.ode.bpel.engine.BpelProcess.handleWorkEvent(BpelProcess.java:372)
> 	at org.apache.ode.bpel.engine.BpelEngineImpl.onScheduledJob(BpelEngineImpl.java:326)
> 	at org.apache.ode.bpel.engine.BpelServerImpl.onScheduledJob(BpelServerImpl.java:373)
> 	at org.apache.ode.scheduler.simple.SimpleScheduler$4$1.call(SimpleScheduler.java:337)
> 	at org.apache.ode.scheduler.simple.SimpleScheduler$4$1.call(SimpleScheduler.java:336)
> 	at org.apache.ode.scheduler.simple.SimpleScheduler.execTransaction(SimpleScheduler.java:174)
> 	at org.apache.ode.scheduler.simple.SimpleScheduler$4.call(SimpleScheduler.java:335)
> 	at org.apache.ode.scheduler.simple.SimpleScheduler$4.call(SimpleScheduler.java:332)
> 	at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
> 	at java.util.concurrent.FutureTask.run(FutureTask.java:138)
> 	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
> 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
> 	at java.lang.Thread.run(Thread.java:619)
> 15:05:52,798 ERROR [SimpleScheduler] Error while processing transaction, retrying.
> org.apache.ode.bpel.iapi.Scheduler$JobProcessorException: java.lang.IllegalArgumentException: INTERNAL ERROR: No ENTRY for RESPONSE CHANNEL 53
> 	at org.apache.ode.bpel.engine.BpelEngineImpl.onScheduledJob(BpelEngineImpl.java:336)
> 	at org.apache.ode.bpel.engine.BpelServerImpl.onScheduledJob(BpelServerImpl.java:373)
> 	at org.apache.ode.scheduler.simple.SimpleScheduler$4$1.call(SimpleScheduler.java:337)
> 	at org.apache.ode.scheduler.simple.SimpleScheduler$4$1.call(SimpleScheduler.java:336)
> 	at org.apache.ode.scheduler.simple.SimpleScheduler.execTransaction(SimpleScheduler.java:174)
> 	at org.apache.ode.scheduler.simple.SimpleScheduler$4.call(SimpleScheduler.java:335)
> 	at org.apache.ode.scheduler.simple.SimpleScheduler$4.call(SimpleScheduler.java:332)
> 	at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
> 	at java.util.concurrent.FutureTask.run(FutureTask.java:138)
> 	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
> 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
> 	at java.lang.Thread.run(Thread.java:619)
> Caused by: java.lang.IllegalArgumentException: INTERNAL ERROR: No ENTRY for RESPONSE CHANNEL 53
> 	at org.apache.ode.bpel.engine.OutstandingRequestManager.associate(OutstandingRequestManager.java:145)
> 	at org.apache.ode.bpel.engine.BpelRuntimeContextImpl.inputMsgMatch(BpelRuntimeContextImpl.java:894)
> 	at org.apache.ode.bpel.engine.PartnerLinkMyRoleImpl.invokeInstance(PartnerLinkMyRoleImpl.java:211)
> 	at org.apache.ode.bpel.engine.BpelProcess.invokeProcess(BpelProcess.java:208)
> 	at org.apache.ode.bpel.engine.BpelProcess.handleWorkEvent(BpelProcess.java:372)
> 	at org.apache.ode.bpel.engine.BpelEngineImpl.onScheduledJob(BpelEngineImpl.java:326)
> 	... 11 more
> I doubted whether it was caused by ExecutionQueueImpl's serialization(not concurrently),  but when I tested this,  the answer was NO. Maybe it's caused by concurrency.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.