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
>
>

Reply via email to