ode-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Andi Abes" <aa...@progress.com>
Subject RE: Correlated receive in parallel for-each loop
Date Wed, 04 Mar 2009 18:21:11 GMT
I'm not sure what the proper etiquette here is - 

I have a reproducible case where I get the exceptions listed below. I've
tried various JPA/Oracle and Hibernate/Oracle (as well as JPA/Derby)
configurations.

 

I'm not really familiar with the unit test framework used by ODE, so my
testcase is built around a simple Java test client that both invokes and
response to the BPEL process.

 

Should I open a JIRA with the artifacts mentioned?

Is there another approach to getting this resolved?

 

 

TIA,

a.

 

________________________________

From: Matthieu Riou [mailto:matthieu.riou@gmail.com] 
Sent: Thursday, February 26, 2009 9:38 PM
To: Andi Abes
Cc: user@ode.apache.org
Subject: Re: Correlated receive in parallel for-each loop

 

On Wed, Feb 25, 2009 at 12:09 PM, Andi Abes <aabes@progress.com> wrote:

	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)


Sorry I haven't had any time to look at it today, I'll check tomorrow.
 

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


Just don't explicitly set ode.connection.isolation, this way we will
leave it alone and Oracle uses the proper value by default.

Matthieu
 

	 

	
	a.
	
	
	> -----Original Message-----
	> From: Matthieu Riou [mailto:matthieu.riou@gmail.com]

	> Sent: Tuesday, February 24, 2009 11:17 AM
	> To: user@ode.apache.org

	> Subject: Re: Correlated receive in parallel for-each loop
	>
	> On Tue, Feb 24, 2009 at 7:44 AM, Andi Abes
<aabes@progress.com> 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)
	> >
	> > :
	> >

 


Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message