Mauro Molinari created AMQ-7140:
-----------------------------------
Summary: Misleading documentation about ActiveMQ-Spring
configuration
Key: AMQ-7140
URL: https://issues.apache.org/jira/browse/AMQ-7140
Project: ActiveMQ
Issue Type: Bug
Components: Documentation
Environment: Tomcat 8, ActiveMQ 5.11.0 or 5.14.5, Spring Framework
4.3, Java 7.
Reporter: Mauro Molinari
While investigating about a memory leak I have in production (about which I
wrote both at
[https://stackoverflow.com/questions/54143172/configuring-activemq-properly-to-avoid-producer-memory-leaks]
and
[http://activemq.2283324.n4.nabble.com/Help-with-memory-leak-td4746710.html|http://activemq.2283324.n4.nabble.com/Help-with-memory-leak-td4746710.html,],
with no reply at all), which I hope is related to AMQ-6603 (please advise!), I
discovered that, as stated by Christopher L. Shannon on that issue, it's not
advisable to use a pooling/caching connection factory with a Spring message
container. Reading SpringĀ {{DefaultMessageListenerContainer}} Javadoc confirms
this. However, ActiveMQ documentation says exactly the opposite at
[http://activemq.apache.org/spring-support.html:]
{quote}Spring's
[MessagListenerContainer|http://static.springsource.org/spring/docs/2.5.x/reference/jms.html#jms-mdp]
should be used for message consumption. This provides all the power of MDBs -
efficient JMS consumption and pooling of the message listeners - but without
requiring a full EJB container.
*You can use the {{activemq-pool}}
{{org.apache.activemq.pool.PooledConnectionFactory}} for efficient pooling of
the connections and sessions for your collection of consumers, or you can use
the Spring JMS {{org.springframework.jms.connection.CachingConnectionFactory}}
to achieve the same effect.*
{quote}
This indeed drove me to the wrong direction.
So, I think ActiveMQ documentation should be clear about it, if
{{org.apache.activemq.pool.PooledConnectionFactory}} and
{{org.springframework.jms.connection.CachingConnectionFactory}} should be used
only when writing message producers and/or when dealing with {{JmsTemplate}},
Please also note that Spring Integration JMS message-driven inbound channel
adapter is impacted as well, because it uses a
{{DefaultMessageListenerContainer}} by default, unless otherwise configured.
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)