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