Do you saturate your CPU (about 85-90%)? If not, more threads should bring you more performance at least for in-memory. For persistent processes, it's the database optimization game...
Cheers, Matthieu On Nov 29, 2007 8:01 AM, Nowakowski, Mateusz < [EMAIL PROTECTED]> wrote: > Thanks. It helps a bit. Application doesn't crash anymore but > performance is decreased than for 50 parallel clients... But it can be > different reason (not enough RAM or CPU) > > I know about this property before but I don't use because I assume that > BPEL caches threads and creates new thread when necessary. > I looked on ODEService.initBpelServer() and saw: > > if (_ode._config.getThreadPoolMaxSize() == 0) > _ode._executorService = Executors.newCachedThreadPool(); > else > _ode._executorService = > Executors.newFixedThreadPool(_ode._config.getThreadPoolMaxSize()); > > > -- > Regards > Mateusz Nowakowski > > -----Original Message----- > From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf > Of Matthieu Riou > Sent: Wednesday, November 28, 2007 5:17 PM > To: [email protected] > Subject: Re: The execution queue is backed up... Forcing > ContextException > > 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 > > >
