Sebastian,

First of all, make sure that all your MEPs are handled correctly, ie. every MessageExchange ends with either a DONE or ERROR status. The best way to ensure scalability is by avoiding the use of sendSync() and by using send() for all your MessageExchanges. When you use sendSync(), that component thread is blocked until you receive an answer. However, this also means that there is one less thread available in the thread pool to handle new requests. You might end up in a situation where all you threads are waiting on a sendSync(), while the handling of the message is waiting for one of these threads to be released. You can check this by looking at the threads in jconsole and especially at their stack traces when the system gets blocked.

If you're already using send() everywhere and all MEPs are handled correctly, but seda queues are still growing, you can tune the thread pool for a specific component (as explained in http://servicemix.apache.org/thread-pools.html) to allow it to handle more messages concurrently.

Regards,

Gert

Sebastian Gomez wrote:
Hi everyone.
I'm about to finish a project using ServiceMix 3.2.2, and after doing some
stress tests I've found that if I send lots of messages to the same
servicemix-bean endpoint to do quite complex operations (they take a long
time and should return quite large amounts of data, including attachments),
the Seda Queue finally gets stuck. The only way I've found to "unstuck" it
is to restart ServiceMix (something I won't be able to do after handing in
my application).

Debugging I've seen my application reaches the SedaFlow "doSend" method, it
enqueues the packet correctly, but I suppose it never dequeues (how could I
see if this is true?).

I've seen using jconsole that servicemix-bean's Seda Queue size keeps
increasing as I send messages into my application, and never decreases, so
there must be something going wrong. I'd like to know if there's some known
issue involving this, and if luckily there's some kind of solution.

My project's deadline is near, so I'd really appreciate any help.

Thanks in advance.

Sebastian Gomez.


Reply via email to