I'll try to find time for this tomorrow. /Johan
Claus Ibsen-2 wrote: > > On Wed, Feb 17, 2010 at 4:59 PM, Johan Haleby <[email protected]> > 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 <[email protected]> >>> 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 <[email protected]> >>>>> 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 >>>>>>> <[email protected]> >>>>>>> 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 > > -- View this message in context: http://old.nabble.com/SocketSessionImpl-in-Mina-component-retained-in-memory-indefinitely-tp27624487p27626620.html Sent from the Camel - Users mailing list archive at Nabble.com.
