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

Reply via email to