[ https://issues.apache.org/activemq/browse/SM-1234?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=43664#action_43664 ]
Trevor Pounds commented on SM-1234: ----------------------------------- I noticed that there is a way to disable caching of message attributes when using the Spring based jms:consumer endpoint with the "stateless" attribute set to true. > ServiceMix JMS MultiplexingConsumerProcessor memory bloat due to hung/delayed > exchanges > --------------------------------------------------------------------------------------- > > Key: SM-1234 > URL: https://issues.apache.org/activemq/browse/SM-1234 > Project: ServiceMix > Issue Type: Bug > Components: servicemix-jms > Affects Versions: 3.2.1 > Reporter: Trevor Pounds > Fix For: 3.3 > > > There is a pendingMessages data structure which holds onto JMS Message object > references until the exchange is returned. If the asynchronous exchanges are > hung or delayed the pendingMessages can grow quite large resulting in heap > allocation errors if the messages are large. A heap dump on one of our data > sets showed > 700MB of messages being referenced due to this data structure. > As far as I can tell the JMS Message reference pulled from the map is only > used to retrieve certain JMS Message properties (getJMSReplyTo, > getJMSMessageID, getJMSCorrelationID). > Possible fixes: > 1) On InOnly exchanges do not store the Message since the method exits > without using any of the message attributes > 2) Store only the attributes needed for exchanges needing a reply -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.