Your bpel contains following:
<forEach counterName="commandCounter" parallel="yes">
<receive createInstance="no"
name="ESBResult" operation="ESBResult"
partnerLink="ESBResult"
portType="tns:ESBResult"
variable="ESBMessage" xml:ID="19">
<correlations>
<correlation initiate="no"
set="esbRequest" />
</correlations>
</receive>
</forEach>
According to bpel specification, this will cause conflictingReceive error
when forEach has >1 items.
Regards,
Rafal Rusin
http://www.mimuw.edu.pl/~rrusin/
Andi Abes 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
> COMPLETED_OK on channel 45
>
> Any thoughts?
> 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.
> 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(PhysicalCo
> nnection.java:1661)
> at
> org.apache.tomcat.dbcp.dbcp.DelegatingConnection.setTransactionIsolation
> (DelegatingConnection.java:340)
> at
> org.apache.tomcat.dbcp.dbcp.PoolingDataSource$PoolGuardConnectionWrapper
> .setTransactionIsolation(PoolingDataSource.java:332)
> at
> org.apache.ode.daohib.DataSourceConnectionProvider.getConnection(DataSou
> rceConnectionProvider.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
> .java: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
> :224)
> 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
> oImpl.java:89)
> :
>
>
>
--
View this message in context:
http://www.nabble.com/Correlated-receive-in-parallel-for-each-loop-tp22184207p22204983.html
Sent from the Apache Ode User mailing list archive at Nabble.com.