Ryan Moquin wrote:
I wanted to do a little probing regarding memory and servicemix.  I
was wondering how exchanges between services are stored/persisted.
I'm asking because I've been plagued by out of memory exceptions with
my heap memory.  Under high load, servicemix can exhaust 1 gig of
memory in 3 hours.

I finally have been integration testing servicemix services with junit
(which is awesome to be able to do by the way), when I run my junit
perf test through jprob, I see my memory keep steadily climbing.  When
I look at the results, it shows the onMessageExchange method call of
my servicemix-bean component as being the place that uses the most
memory.  All my services temporary objects get disposed of, but it
looks like the MessageExchanges are hanging around.  It particulary
points to InOnly and NormalizedMessage as being the biggest offenders.

Is it possible that your bean didn't set DONE status correctly and send ME with DONE back?
Is servicemix keeping all the exchanges in memory, whether finished or
not?  Does my analysis sound correct?  Is there any tweaking I need to
do out of the box to have exchanges purged?  I want to make sure I'm
correct on the issue and understand what's going on enough to be able
to fix it.

Thanks, ryan


Reply via email to