[ 
https://issues.apache.org/jira/browse/AMQ-4971?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13874691#comment-13874691
 ] 

Gary Tully commented on AMQ-4971:
---------------------------------

glad that the networkConnector prefetch value is working as expected.

Dispatch or prefetch of messages can exceed the limits by max pageSize num 
messages.
Note however, that paging in for dispatch (for persistent messages, default 
store cursor) is limited by the value of systemUsage.memoryLimit - not the per 
destination limits.
This is to ensure we can dispatch messages when destination resources are maxed 
out and producers are blocked.
What value do you use for the -Xmx jvm argument in your scenario?
I think their is a case to be made for limiting the prefetch base on resource 
usage, the difficulty is that can lead to starved consumers b/c the limits are 
shared across all destinations. If they are not shared, then a single 
destination can get starved.

It is not a trivial problem to solve but I think it warrants a jira issue. If 
you have some unit tests that can simply demonstrate the issue that would be a 
great help.

Also, out of curiosity, why do you use the vmQueueCursor? In most cases, I find 
the default store cursor works great.

 




> OOM in DemandForwardingBridge
> -----------------------------
>
>                 Key: AMQ-4971
>                 URL: https://issues.apache.org/jira/browse/AMQ-4971
>             Project: ActiveMQ
>          Issue Type: Bug
>          Components: Broker
>    Affects Versions: 5.9.0
>            Reporter: Yuriy Sidelnikov
>              Labels: features
>         Attachments: AMQ-4971.patch
>
>
> DemandForwardingBridge sends messages to the other broker and asynchronously 
> waits for ACKs keeping message bodies in heap. Amount of un-ACK-ed messages 
> kept in heap is not limited. If local producer is fast then whole heap will 
> be consumed by messages waiting to be ACK-ed by other broker.
> Possible option to fix the issue:
> Don't wait for ACK from other broker when forwarding the message if some 
> threshold of un-ACK-ed messages is reached.



--
This message was sent by Atlassian JIRA
(v6.1.5#6160)

Reply via email to