ode-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Alex Boisvert <boisv...@intalio.com>
Subject Re: Correlated receive in parallel for-each loop
Date Wed, 04 Mar 2009 18:28:05 GMT
Yes, I suggest opening a Jira and attach everything you can so that we can
easily reproduce the situation.

Getting to a point where we can reproduce the issue is you best bet for
getting it resolved.

alex


On Wed, Mar 4, 2009 at 10:21 AM, Andi Abes <aabes@progress.com> wrote:

> 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