Hi Mateusz,

I've guessing you're exhausting ODE's thread pool. When the engine can't
keep up anymore and messages are coming faster that they can be consumed,
the execution queue gets backed up and instead of accumulating messages we
throw an exception.

To increase the size of the pool, you can set the following property in
ODE's configuration:

ode-jbi.threads.pool.size=100

Let us know how it goes.

Cheers,
Matthieu

On Nov 28, 2007 6:56 AM, Nowakowski, Mateusz <
[EMAIL PROTECTED]> wrote:

> I've performing some performance tests using Fuse 3.3.0.2 and Apache ODE
> 1.1.
>
> I tested it using 100 parallel clients.
> I used such thread pool properties:
> servicemix.corePoolSize    = 32
> servicemix.maximumPoolSize = 256
> servicemix.queueSize       = 256
>
> I started to get such exception:
>
> 05:06:21,891 | ERROR | pool-2-thread-359 | SimpleScheduler          |
> duler.simple.SimpleScheduler$4  347 | Error while executing transaction
> org.apache.ode.bpel.iapi.ContextException: The execution queue is backed
> up... Forcing ContextException
>        at
> org.apache.ode.scheduler.simple.SimpleScheduler.schedulePersistedJob(Sim
> pleScheduler.java:221)
>        at
> org.apache.ode.bpel.engine.BpelEngineImpl.onScheduledJob(BpelEngineImpl.
> java:279)
>        at
> org.apache.ode.bpel.engine.BpelServerImpl.onScheduledJob(BpelServerImpl.
> java:364)
>        at
> org.apache.ode.scheduler.simple.SimpleScheduler$4$1.call(SimpleScheduler
> .java:335)
>        at
> org.apache.ode.scheduler.simple.SimpleScheduler$4$1.call(SimpleScheduler
> .java:334)
>        at
> org.apache.ode.scheduler.simple.SimpleScheduler.execTransaction(SimpleSc
> heduler.java:173)
>        at
> org.apache.ode.scheduler.simple.SimpleScheduler$4.call(SimpleScheduler.j
> ava:333)
>        at
> org.apache.ode.scheduler.simple.SimpleScheduler$4.call(SimpleScheduler.j
> ava:330)
>        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(ThreadPoolExecuto
> r.java:650)
>        at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.ja
> va:675)
>        at java.lang.Thread.run(Thread.java:595)
>
>
> After some minutes application started going to crash (leak memory and
> finally OutOfMemoryError).
>
> What is the reason ?
>
> When I tested 50 parallel clients everything was ok.
>
> --
> Regards
> Mateusz Nowakowski
>

Reply via email to