ode-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Matthieu Riou" <matthieu.r...@gmail.com>
Subject Re: explicit correlation - NullPointerException - receive behavior
Date Tue, 31 Jul 2007 18:41:47 GMT
Hi Dan,

The receive definitely waits until a message pops up but we still need to
prepare some sort of "listener" that will get notified when your message
arrives and that piece needs to know about the correlation. So it's not that
the really receive starts executing, it's just that it can't initialize
probably because there's a problem with your correlation definition.

We have a sample that uses correlations for process to process communication
here if you want to have a look:

http://svn.apache.org/repos/asf/ode/trunk/distro-axis2/src/examples/DynPartner/DynPartnerMain.bpel

I'd be curious to know what exactly is the problem with your correlation,
it's hard to track down from the logs but I'd be happy to add a checked
exception.

Thanks,
Matthieu

On 7/30/07, Dan <leutnant.dan@gmail.com> wrote:
>
> Hi,
> I'm trying out explicit correlations.  My sequence is essentially two sets
> of recieve, invoke, and reply sets with correlations on the receives.  My
> assumption is that receive will block until a message arrives.  What seems
> to happen though is that the second receive is entered before an actual
> message is received which triggers a correlation error.  Should receive
> block until a message arrives?
>
> Here's the pseudo code of what I'm doing followed by the exception.
> (servicemix 3.0, ode r553562 (ca. July 8), Fedora 6)
>
> <sequence>
>    <receive messageA>  <correlation transactionID>
>    <invoke serviceA>
>    <reply requestA>   <<-- reply makes it back to the client
>
> <<exception thrown around this time before messageB is ever sent by the
> client>>
>
>    <receive messageB> <correlation transactionID>
>    <invoke serviceB>
>    <reply requestB>
> </sequence>
> -------------------------------------------------------
> 19:03:29,980 | DEBUG | pool-flow.seda.OdeBpelEngine-thread-54 |
> ConsumerProcessor        | p.processors.ConsumerProcessor   98 | Resuming
> continuation for exchange: ID:localhost.localdomain-41761-1185806196813-2
> :34
> 19:03:29,979 | ERROR | pool-2-thread-30 | BpelEngineImpl           |
> ode.bpel.engine.BpelEngineImpl  325 | Scheduled job failed;
> jobDetail={type=MATCHER, inmem=true, ckey=null, correlatorId=
> 30.ProxyServiceB, iid=12}
> java.lang.NullPointerException
>     at org.apache.ode.bpel.common.CorrelationKey.<init>(
> CorrelationKey.java
> :71)
>     at org.apache.ode.bpel.engine.WorkEvent.getCorrelationKey(
> WorkEvent.java
> :97)
>     at org.apache.ode.bpel.engine.BpelProcess.handleWorkEvent(
> BpelProcess.java:341)
>     at org.apache.ode.bpel.engine.BpelEngineImpl.onScheduledJob(
> BpelEngineImpl.java:316)
>     at org.apache.ode.bpel.engine.BpelServerImpl.onScheduledJob(
> BpelServerImpl.java:364)
>     at org.apache.ode.scheduler.simple.SimpleScheduler$4$1.call(
> SimpleScheduler.java:316)
>     at org.apache.ode.scheduler.simple.SimpleScheduler$4$1.call(
> SimpleScheduler.java:315)
>     at org.apache.ode.scheduler.simple.SimpleScheduler.execTransaction(
> SimpleScheduler.java:154)
>     at org.apache.ode.scheduler.simple.SimpleScheduler$4.call(
> SimpleScheduler.java:314)
>     at org.apache.ode.scheduler.simple.SimpleScheduler$4.call(
> SimpleScheduler.java:311)
>     at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:269)
>     at java.util.concurrent.FutureTask.run(FutureTask.java:123)
>     at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(
> ThreadPoolExecutor.java:650)
>     at java.util.concurrent.ThreadPoolExecutor$Worker.run(
> ThreadPoolExecutor.java:675)
>     at java.lang.Thread.run(Thread.java:595)
> 19:03:29,985 | ERROR | pool-2-thread-30 | SimpleScheduler          |
> duler.simple.SimpleScheduler$4  328 | Error while executing transaction
> org.apache.ode.bpel.iapi.Scheduler$JobProcessorException:
> java.lang.NullPointerException
>     at org.apache.ode.bpel.engine.BpelEngineImpl.onScheduledJob(
> BpelEngineImpl.java:326)
>     at org.apache.ode.bpel.engine.BpelServerImpl.onScheduledJob(
> BpelServerImpl.java:364)
>     at org.apache.ode.scheduler.simple.SimpleScheduler$4$1.call(
> SimpleScheduler.java:316)
>     at org.apache.ode.scheduler.simple.SimpleScheduler$4$1.call(
> SimpleScheduler.java:315)
>     at org.apache.ode.scheduler.simple.SimpleScheduler.execTransaction(
> SimpleScheduler.java:154)
>     at org.apache.ode.scheduler.simple.SimpleScheduler$4.call(
> SimpleScheduler.java:314)
>     at org.apache.ode.scheduler.simple.SimpleScheduler$4.call(
> SimpleScheduler.java:311)
>     at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:269)
>     at java.util.concurrent.FutureTask.run(FutureTask.java:123)
>     at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(
> ThreadPoolExecutor.java:650)
>     at java.util.concurrent.ThreadPoolExecutor$Worker.run(
> ThreadPoolExecutor.java:675)
>     at java.lang.Thread.run(Thread.java:595)
> Caused by: java.lang.NullPointerException
>     at org.apache.ode.bpel.common.CorrelationKey.<init>(
> CorrelationKey.java
> :71)
>     at org.apache.ode.bpel.engine.WorkEvent.getCorrelationKey(
> WorkEvent.java
> :97)
>     at org.apache.ode.bpel.engine.BpelProcess.handleWorkEvent(
> BpelProcess.java:341)
>     at org.apache.ode.bpel.engine.BpelEngineImpl.onScheduledJob(
> BpelEngineImpl.java:316)
>     ... 11 more
> 19:03:29,986 | DEBUG | btpool0-0 - Acceptor0 SelectChannelConnector @
> 0.0.0.0:8080 | JettyContextManager      | ntextManager$ThreadPoolWrapper
> 437 | Dispatching job: HEP@21218523[d=true,io=0,w=true,b=0|0]
> 19:03:29,986 | DEBUG | btpool0-44 | jetty                    |
> ervicemix.http.jetty.JCLLogger   67 | resume continuation
> org.mortbay.jetty.nio.SelectChannelConnector$RetryContinuation@9e032
>

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