Matthieu,
  Was the log useful?
  Show I open a JIRA? I do have some code to drive the BPEL process that
can easily reproduce this behavior (it does rely on CXF runtime)

  I couldn't find a way to avoid the SET TRANSACTION exception... is
there a way of avoiding it that you can recommend?

a.
    

> -----Original Message-----
> From: Matthieu Riou [mailto:[email protected]]
> Sent: Tuesday, February 24, 2009 11:17 AM
> To: [email protected]
> Subject: Re: Correlated receive in parallel for-each loop
> 
> On Tue, Feb 24, 2009 at 7:44 AM, Andi Abes <[email protected]> wrote:
> 
> >  I'm trying to get a relatively simple process which performs a
> correlated
> > receive in parallel for-each loop (attached) - just the sweet spot
for
> > BPEL ;)
> >
> > I've tried with:
> >
> > -       Derby/JPA - java.sql.SQLException: A lock could not be
obtained
> > due to a deadlock (full stack in earlier emails)
> >
> > -       Hibernate/Oracle - the exception is below (hibernate 3.2.5/
> oracle
> > 10.2)
> >
> > -       JPA / Oracle - This didn't produce exceptions, but it
produced
> the
> > following error, which killed the process instance...
> >
> > o       ERROR - GeronimoLog.error(104) | The message exchange seems
to
> be
> > in an unconsistent state, you're probably missing a reply on a
> > request/response interaction.
> > INFO - GeronimoLog.info(79) | ActivityRecovery: Registering activity
25,
> > failure reason: org.apache.ode.bpel.iapi.BpelEngineException: Engine
> > requested response
> >  while the message exchange hqejbhcnphr426192c3r3o was in the state
> > COMPLElTED_OK on channel 45
> >
> > Any thoughts?
> >
> The above looks like a bug yes, could you provide a full debug log to
see
> what's happening exactly?
> 
> Your second problem is due to the Oracle JDBC driver that refuses to
alter
> the transaction isolation level after the transaction has been
started,
> even
> if it's the first statement in the transaction. So basically we can't
set
> it, it has to be set at the driver level.
> 
> The good news though is that READ_COMMITTED is the default on Oracle
so
> you
> don't need to force the isolation level, removing the environment
variable
> should solve it.
> 
> Cheers,
> Matthieu
> 
> 
> > The last 2 cases sound to me as a bug...
> >
> >  <<BPEL_2.zip>>
> >
> > Exception with Hibernate/Oracle:
> >
> > DEBUG - GeronimoLog.debug(66) |
> > org.apache.ode.daohib.bpel.hobj.HProcess{created=null, active=false,
> > events=<uninitialized>, processId={urn:bpel:BpelMock}BPELMo
> >
> > ck-1, deployDate=2009-02-24 10:33:55, id=1, version=1,
> > messageExchanges=<uninitialized>, deploymentPartnerLinks=[],
> > typeName=BPELMock, lock=0, correlators=<unin
> >
> > itialized>, deployer=null, typeNamespace=urn:bpel:BpelMock,
> > instances=<uninitialized>, guid=hqejbhcnphr42in8iaul6m}
> >
> > DEBUG - GeronimoLog.debug(66) |
> > org.apache.ode.daohib.bpel.hobj.HCorrelator{created=2009-02-24
10:33:55,
> > lock=0, process=org.apache.ode.daohib.bpel.hobj.HProces
> >
> > s#1, correlatorId=25.ESBResult, messageCorrelations=<uninitialized>,
> > selectors=<uninitialized>, id=2}
> >
> > DEBUG - GeronimoLog.debug(66) |
> > org.apache.ode.daohib.bpel.hobj.HProcessInstance{created=2009-02-24
> > 10:34:25, jacobState=org.apache.ode.daohib.bpel.hobj.HLargeD
> >
> > ata#168, events=<uninitialized>, previousState=10,
> > lastActiveTime=2009-02-24 10:34:33, fault=null,
> > correlationSets=<uninitialized>, sequence=27, id=7, activityF
> >
> > ailureCount=0, messageExchanges=<uninitialized>, lock=0,
> > correlatorSelectors=<uninitialized>, activityFailureDateTime=null,
> > scopes=<uninitialized>, process=org.
> >
> > apache.ode.daohib.bpel.hobj.HProcess#1,
> activityRecoveries=<uninitialized>,
> > state=20,
> >
instantiatingCorrelator=org.apache.ode.daohib.bpel.hobj.HCorrelator#3}
> >
> > DEBUG - GeronimoLog.debug(66) | about to open PreparedStatement
(open
> > PreparedStatements: 0, globally: 3)
> >
> > DEBUG - GeronimoLog.debug(66) | opening JDBC connection
> >
> > DEBUG - GeronimoLog.debug(70) | Cannot open connection [???]
> >
> > java.sql.SQLException: ORA-01453: SET TRANSACTION must be first
> statement
> > of transaction
> >
> >         at
> >
>
oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:11
2)
> >
> >         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.
ja
> va:1170)
> >
> >         at
> >
>
oracle.jdbc.driver.OracleStatement.executeInternal(OracleStatement.java:
16
> 96)
> >
> >         at
> >
oracle.jdbc.driver.OracleStatement.execute(OracleStatement.java:1662)
> >
> >         at
> >
>
oracle.jdbc.driver.PhysicalConnection.setTransactionIsolation(PhysicalCo
nn
> ection.java:1661)
> >
> >         at
> >
>
org.apache.tomcat.dbcp.dbcp.DelegatingConnection.setTransactionIsolation
(D
> elegatingConnection.java:340)
> >
> >         at
> >
>
org.apache.tomcat.dbcp.dbcp.PoolingDataSource$PoolGuardConnectionWrapper
.s
> etTransactionIsolation(PoolingDataSource.java:332)
> >
> >         at
> >
>
org.apache.ode.daohib.DataSourceConnectionProvider.getConnection(DataSou
rc
> eConnectionProvider.java:45)
> >
> >         at
> >
>
org.hibernate.jdbc.ConnectionManager.openConnection(ConnectionManager.ja
va
> :423)
> >
> >         at
> >
>
org.hibernate.jdbc.ConnectionManager.getConnection(ConnectionManager.jav
a:
> 144)
> >
> >         at
> >
>
org.hibernate.jdbc.AbstractBatcher.prepareQueryStatement(AbstractBatcher
.j
> ava:139)
> >
> >         at
> > org.hibernate.loader.Loader.prepareQueryStatement(Loader.java:1547)
> >
> >         at
> > org.hibernate.loader.hql.QueryLoader.iterate(QueryLoader.java:399)
> >
> >         at
> >
>
org.hibernate.hql.ast.QueryTranslatorImpl.iterate(QueryTranslatorImpl.ja
va
> :380)
> >
> >         at
> >
>
org.hibernate.engine.query.HQLQueryPlan.performIterate(HQLQueryPlan.java
:2
> 24)
> >
> >         at
> > org.hibernate.impl.SessionImpl.iterateFilter(SessionImpl.java:1492)
> >
> >         at
> >
>
org.hibernate.impl.CollectionFilterImpl.iterate(CollectionFilterImpl.jav
a:
> 38)
> >
> >         at
> >
>
org.apache.ode.daohib.bpel.CorrelatorDaoImpl.dequeueMessage(CorrelatorDa
oI
> mpl.java:89)
> >
> > :
> >

Reply via email to