camel-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Claus Ibsen <claus.ib...@gmail.com>
Subject Re: SocketSessionImpl in Mina component retained in memory indefinitely
Date Wed, 17 Feb 2010 16:03:12 GMT
On Wed, Feb 17, 2010 at 4:59 PM, Johan Haleby <johan.haleby@gmail.com> wrote:
>
> I don't suppose it matters much but there are actually 5 different Mina
> endpoints involved (not 4 as I mentioned earlier). These are:
> mina:tcp://localhost:6200?sync=false&textline=false
> mina:tcp://localhost:6201?sync=false&textline=false
> mina:tcp://localhost:6202?sync=false&textline=false
> mina:tcp://localhost:6203?sync=false&textline=false
> mina:tcp://localhost:6204?sync=false&textline=false
>
> It's always to one of these addresses to which a message is sent.
>
> I've also tried to do a producer.stop() after each producer.sendBody(..) but
> it doesn't help at all. I still get the OutOfMemoryError and the same number
> of MinaProducers are still retained in memory.
>

I wonder what keeps it in the memory then. Could you create a small
project and attach it as a ZIP to a JIRA ticket?




> /Johan
>
>
> Claus Ibsen-2 wrote:
>>
>> On Wed, Feb 17, 2010 at 4:39 PM, Johan Haleby <johan.haleby@gmail.com>
>> wrote:
>>>
>>> In the test I'm sending messages between 4 different endpoints but
>>> they're
>>> treated as dynamic I suppose. What I mean is that the message body of
>>> each
>>> incoming message contains the reply address(es) (which could be
>>> completely
>>> dynamic). Thus I use a recipientList to distribute a reply message to
>>> each
>>> reply address stated in the message body.
>>>
>>
>> I am sure if you close the producer template after use you should
>> probably not see this as it contains an internal cache.
>> But that one should only hit 1000, so I wonder why it grows to 20000+.
>>
>> Well could you post a few samples of the endpoints you send to the
>> recipient list. If they are all 100% different then I would assume
>> Camel creates a new producer per message, as it would be a cache miss
>> in the producer template.
>>
>>
>>
>>> /Johan
>>>
>>>
>>> Claus Ibsen-2 wrote:
>>>>
>>>> Hi
>>>>
>>>> On Wed, Feb 17, 2010 at 4:17 PM, Johan Haleby <johan.haleby@gmail.com>
>>>> wrote:
>>>>>
>>>>> The debug message ("Closing session when complete at address") is
>>>>> printed
>>>>> all
>>>>> the time so it should close the session. I've investigated a bit
>>>>> further
>>>>> and
>>>>> I see that the problem seem to be that DefaultProducerTemplate holds
a
>>>>> SpringCamelContext which in turn holds an ArrayList which seem to
>>>>> contain
>>>>> all MinaProducers that has ever been created.
>>>>>
>>>>> I've uploaded a screenshot of the heap dump:
>>>>> http://old.nabble.com/file/p27625230/mina_camel_retaining_resources.png
>>>>> mina_camel_retaining_resources.png
>>>>>
>>>>
>>>> Are you using a lot of dynamic endpoints which are different?
>>>>
>>>>
>>>>> /Johan
>>>>>
>>>>>
>>>>> Claus Ibsen-2 wrote:
>>>>>>
>>>>>> Hi
>>>>>>
>>>>>> Could you google that exception and see what other Mina users have
>>>>>> encountered.
>>>>>>
>>>>>> And you see this DEBUG logging when you send to that remote endpoint?
>>>>>>
>>>>>>             if (LOG.isDebugEnabled()) {
>>>>>>                 LOG.debug("Closing session when complete
at address: "
>>>>>> + endpoint.getAddress());
>>>>>>             }
>>>>>>
>>>>>>
>>>>>>
>>>>>> On Wed, Feb 17, 2010 at 3:27 PM, Johan Haleby <johan.haleby@gmail.com>
>>>>>> wrote:
>>>>>>>
>>>>>>> Hi,
>>>>>>>
>>>>>>> I'm running into problems when using Camel (2.1 and 2.2) with
Mina
>>>>>>> endpoints
>>>>>>> configured to disconnect the session after each received message.
>>>>>>> When
>>>>>>> lots
>>>>>>> of messages are sent over a longer period of time I eventually
run
>>>>>>> out
>>>>>>> of
>>>>>>> memory and the system either throws OutOfMemoryError or spends
long
>>>>>>> intervals in GC. When analyzing the heap dump in Eclipse MAT
it finds
>>>>>>> this
>>>>>>> leak suspect:
>>>>>>>
>>>>>>> 27,840 instances of
>>>>>>> "org.apache.mina.transport.socket.nio.SocketSessionImpl", loaded
by
>>>>>>> "sun.misc.Launcher$AppClassLoader @ 0xad65d850" occupy 20,662,464
>>>>>>> (20.42%)
>>>>>>> bytes
>>>>>>>
>>>>>>> The endpoint is configured like:
>>>>>>> mina:tcp://localhost:6200?sync=false&textline=false and the
message
>>>>>>> is
>>>>>>> sent
>>>>>>> to the endpoint using a  http://camel.apache.org/recipient-list.html
>>>>>>> recipient list .
>>>>>>>
>>>>>>> What could be the cause of this? E.g. do I need to stop the producer
>>>>>>> template after each sent message? Right now the ProducerTemplate
is a
>>>>>>> singleton used concurrently by multiple threads.
>>>>>>>
>>>>>>> /Johan
>>>>>>> --
>>>>>>> View this message in context:
>>>>>>> http://old.nabble.com/SocketSessionImpl-in-Mina-component-retained-in-memory-indefinitely-tp27624487p27624487.html
>>>>>>> Sent from the Camel - Users mailing list archive at Nabble.com.
>>>>>>>
>>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> --
>>>>>> Claus Ibsen
>>>>>> Apache Camel Committer
>>>>>>
>>>>>> Author of Camel in Action: http://www.manning.com/ibsen/
>>>>>> Open Source Integration: http://fusesource.com
>>>>>> Blog: http://davsclaus.blogspot.com/
>>>>>> Twitter: http://twitter.com/davsclaus
>>>>>>
>>>>>>
>>>>>
>>>>> --
>>>>> View this message in context:
>>>>> http://old.nabble.com/SocketSessionImpl-in-Mina-component-retained-in-memory-indefinitely-tp27624487p27625230.html
>>>>> Sent from the Camel - Users mailing list archive at Nabble.com.
>>>>>
>>>>>
>>>>
>>>>
>>>>
>>>> --
>>>> Claus Ibsen
>>>> Apache Camel Committer
>>>>
>>>> Author of Camel in Action: http://www.manning.com/ibsen/
>>>> Open Source Integration: http://fusesource.com
>>>> Blog: http://davsclaus.blogspot.com/
>>>> Twitter: http://twitter.com/davsclaus
>>>>
>>>>
>>>
>>> --
>>> View this message in context:
>>> http://old.nabble.com/SocketSessionImpl-in-Mina-component-retained-in-memory-indefinitely-tp27624487p27625648.html
>>> Sent from the Camel - Users mailing list archive at Nabble.com.
>>>
>>>
>>
>>
>>
>> --
>> Claus Ibsen
>> Apache Camel Committer
>>
>> Author of Camel in Action: http://www.manning.com/ibsen/
>> Open Source Integration: http://fusesource.com
>> Blog: http://davsclaus.blogspot.com/
>> Twitter: http://twitter.com/davsclaus
>>
>>
>
> --
> View this message in context: http://old.nabble.com/SocketSessionImpl-in-Mina-component-retained-in-memory-indefinitely-tp27624487p27625979.html
> Sent from the Camel - Users mailing list archive at Nabble.com.
>
>



-- 
Claus Ibsen
Apache Camel Committer

Author of Camel in Action: http://www.manning.com/ibsen/
Open Source Integration: http://fusesource.com
Blog: http://davsclaus.blogspot.com/
Twitter: http://twitter.com/davsclaus

Mime
View raw message