Memory leak with clustered JMS Server
rsinghal Jul 9, 2013 8:54 AMI have configured clustered JMS Server with following configuration:
- JMS Server 1 (Live) on machine 1 using standalone-full-ha.xml profile.
- JMS Server 2 (Live) on machine 2 using standalone-full-ha.xml profile.
- Deployed MDBs on machine 3 using standalone-full-ha.xml profile.
We are using JBoss AS 7.1.2.Final. There are multiple MDBs and some of them are for Topics and some of them are for Queues. After some time JBoss Server where MDBs are deployed goes out of memory. I have analysed heap dump and found that HornetQRAActivation objects holding numerous HorneQMessageHandler objects which are for queue MDBs. Please let me know if I am missing something in configuration. We have following configuration in jboss-ejb3.xml for MDBs:
<jee:message-driven>
<jee:ejb-name>TestMDBTopic</jee:ejb-name>
<jee:activation-config>
<jee:activation-config-property>
<jee:activation-config-property-name>reconnectAttempts</jee:activation-config-property-name>
<jee:activation-config-property-value>-1</jee:activation-config-property-value>
</jee:activation-config-property>
<jee:activation-config-property>
<jee:activation-config-property-name>setupAttempts</jee:activation-config-property-name>
<jee:activation-config-property-value>-1</jee:activation-config-property-value>
</jee:activation-config-property>
<jee:activation-config-property>
<jee:activation-config-property-name>destination</jee:activation-config-property-name>
<jee:activation-config-property-value>test.topic</jee:activation-config-property-value>
</jee:activation-config-property>
<jee:activation-config-property>
<jee:activation-config-property-name>connectorClassName</jee:activation-config-property-name>
<jee:activation-config-property-value>${jboss.connection.classname}</jee:activation-config-property-value>
</jee:activation-config-property>
<jee:activation-config-property>
<jee:activation-config-property-name>connectionParameters</jee:activation-config-property-name>
<jee:activation-config-property-value>${jboss.connection.params}</jee:activation-config-property-value>
</jee:activation-config-property>
<jee:activation-config-property>
<jee:activation-config-property-name>hA</jee:activation-config-property-name>
<jee:activation-config-property-value>true</jee:activation-config-property-value>
</jee:activation-config-property>
<jee:activation-config-property>
<jee:activation-config-property-name>subscriptionDurability</jee:activation-config-property-name>
<jee:activation-config-property-value>Durable</jee:activation-config-property-value>
</jee:activation-config-property>
<jee:activation-config-property>
<jee:activation-config-property-name>clientID</jee:activation-config-property-name>
<jee:activation-config-property-value>${app.name}_test.topic.da6e11a2-278e-4575-9a3f-2014c7140d98</jee:activation-config-property-value>
</jee:activation-config-property>
<jee:activation-config-property>
<jee:activation-config-property-name>subscriptionName</jee:activation-config-property-name>
<jee:activation-config-property-value>${app.name}_test.topic.da6e11a2-278e-4575-9a3f-2014c7140d98</jee:activation-config-property-value>
</jee:activation-config-property>
</jee:activation-config>
</jee:message-driven>
<jee:message-driven>
<jee:ejb-name>TestMDBQueue</jee:ejb-name>
<jee:activation-config>
<jee:activation-config-property>
<jee:activation-config-property-name>reconnectAttempts</jee:activation-config-property-name>
<jee:activation-config-property-value>-1</jee:activation-config-property-value>
</jee:activation-config-property>
<jee:activation-config-property>
<jee:activation-config-property-name>setupAttempts</jee:activation-config-property-name>
<jee:activation-config-property-value>-1</jee:activation-config-property-value>
</jee:activation-config-property>
<jee:activation-config-property>
<jee:activation-config-property-name>destination</jee:activation-config-property-name>
<jee:activation-config-property-value>test.queue</jee:activation-config-property-value>
</jee:activation-config-property>
<jee:activation-config-property>
<jee:activation-config-property-name>connectorClassName</jee:activation-config-property-name>
<jee:activation-config-property-value>${jboss.connection.classname}</jee:activation-config-property-value>
</jee:activation-config-property>
<jee:activation-config-property>
<jee:activation-config-property-name>connectionParameters</jee:activation-config-property-name>
<jee:activation-config-property-value>${jboss.connection.params}</jee:activation-config-property-value>
</jee:activation-config-property>
<jee:activation-config-property>
<jee:activation-config-property-name>hA</jee:activation-config-property-name>
<jee:activation-config-property-value>true</jee:activation-config-property-value>
</jee:activation-config-property>
<jee:activation-config-property>
<jee:activation-config-property-name>clientID</jee:activation-config-property-name>
<jee:activation-config-property-value>${app.name}_test.queue.49230413-fb63-4001-bda2-fa3b8af77c96</jee:activation-config-property-value>
</jee:activation-config-property>
<jee:activation-config-property>
<jee:activation-config-property-name>subscriptionName</jee:activation-config-property-name>
<jee:activation-config-property-value>${app.name}_test.queue.49230413-fb63-4001-bda2-fa3b8af77c96</jee:activation-config-property-value>
</jee:activation-config-property>
</jee:activation-config>
</jee:message-driven>