Hi Freeman. Thanks for the advice, I'll give it a try and update you with the results.
On Thu, Aug 20, 2009 at 2:11 PM, Freeman Fang <[email protected]>wrote: > Hi, > Servicemix 3.3 was released almost one year ago, after that, several memory > issues of cxf bc get fixed. > Could you test with the latest released fuse 3.4.0.4 [1](which is based on > apache servicemix 3.3 but released more recently)? > > [1] > http://repo.open.iona.com/maven2/org/apache/servicemix/apache-servicemix/3.4.0.4-fuse/ > Freeman > > On 2009-8-20, at 下午5:25, Sebastian Gomez wrote: > > Hi everyone. >> I'm using YourKit to monitor the memory usage in my application running on >> ServiceMix 3.3 because there seems to be some kind of memory leak that >> finally ends up with a OutOfMemoryError due to the heap space. After >> removing a few SUs from my SA, I've detected the one that grabs hold of >> the >> memory is cxf-bc. Playing around with the thread pools I've seen that if I >> reduce the number of threads of this component, the memory does not seem >> to >> run out. This makes me think that the threads are using up a lot of memory >> even though their job has already finished. I've run into the same problem >> using both ODE and EIP separately to control the flows, so I'm leaving it >> to >> ServiceMix to mark the exchanges as DONE, so I think it can't be the >> typical >> not-marking-the-exchanges-as-done error. >> >> To support my idea: >> I'm consuming two types of messages from a third party WS. The first type >> is >> a small message (approximately 2KB), while the second is quite large >> (approx. 2MB). Both messages contain all their information in the payload, >> i.e. there are no attachments. If I download lots of the large messages, >> the >> heap is quickly used up. But if I download only some large ones (not >> enough >> to use up the whole heap, but most of it), and then I download lots of the >> small ones, the heap is freed. It looks like the threads in the pool used >> to >> download large files are being used to download the small ones so they >> free >> the memory they where using up for the large files. I'm not sure if this >> makes sense, but it's what I've noticed using YourKit. >> >> I'd appreciate someone telling me if my assumption could be possible. Has >> someone tried downloading large payloads using cxf-bc? I see in YourKit >> that >> lots of Xerces DOM objects are being created, I'm worried that they aren't >> being freed once the thread has finished its job. Would it be possible to >> add an interceptor before cxf-bc consumes the message to convert it into a >> small payload with an attachment? This should prevent the >> OutOfMemoryError, >> shouldn't it? >> >> Hope someone has read so far and is still willing to help. Thanks in >> advance. >> >> Sebastian Gomez. >> > > > -- > Freeman Fang > ------------------------ > Open Source SOA: http://fusesource.com > >
