Hi all In my simple application I have following flow: 1. connect to MQ Queue Manager 2. consume messages via jms component in multithreaded mode (5-8 threads) AND transacted mode I´m using standard external Spring JmsTransactionManager which operates on MQQueueConnectionFactory.
3. proces the messages (simple processor) and store in message in DB The problem is that there is for sure a memory leak which quite rapidly consumes memory and in several hours the application crashes with OutOfMemoryError. The Spring bean definition and wiring is pretty standard (for example it is inline with the chapter on transactions in the new Camel book). I made a heap dump and when I inspected that in JVVM there is suspiciously large amount of instances of com.ibm.* classes. The MQQueueConnectionFactory which I explicitly define in my Spring file is there only once as expected but then there are thousands and still growing counts of following instances which I don´t really understand: com.ibm.mq.MQClientManagedConnectionFactoryJ11 com.ibm.mq.ClientConnectionRequestInfo com.ibm.mq.ManagedConnectionStore$Tuple ... + hundreds of instances of: com.ibm.mq.MQManagedConnectionJ11 com.ibm.mq.MQQueueManager com.ibm.mq.MQQueueSession (same count as previous MQQueueManager) ... These huge and growing counts are most likely source of the memory leak. However what I would expect is that Camel just asks the connection factory for pooled connection (there should be 5-8 connections only) and using connections it creates Session/Queue etc. objects (these can be also cached as I understood, I tried to set property cacheLevelName to CACHE_CONSUMER) and also other needed classes might be created by the MQ impl. but all should be eligible to garbage collector. Once message processed the transaction is commited and connection is returned to the pool. I also assumed the resource management is fully Camel driven including resource cleanup. The same IBM MQ setup is used in different apps which run on Spring only and no memory leaks are reported. Of course I don´t want to blame Camel but currently I´m stuck as I don´t understand internals of this 3rd party code. Can anyone recommend some steps to reveal the problem? Any help welcome. Thanks Paolo Versions: Spring: 3.1.4 Camel: 2.11.1 MQ libs: 6.0.2.2 http://camel.apache.org/jms.html -- View this message in context: http://camel.465427.n5.nabble.com/Camel-JMS-memory-leaking-with-IBM-MQ-tp5751442.html Sent from the Camel - Users mailing list archive at Nabble.com.