activemq-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Nikolay Martynov (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (AMQ-4971) OOM in DemandForwardingBridge
Date Fri, 17 Jan 2014 10:11:21 GMT

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

Nikolay Martynov commented on AMQ-4971:
---------------------------------------

Prefetch was already set to 1 for all destinations via per-destination policy. However, at
appears that this has no effect over bridge. Reducing prefetchSize from default 1000 to 1
directly on networkConnector fixes the problem with heap exhaustion. However, one may assume
that amount of prefetched data should also be limited by resource usage constraints while
it doesn't seem to be so.

{noformat}
    <amq:destinationPolicy>
        <amq:policyMap>
            <amq:policyEntries>
                <amq:policyEntry topic=">" producerFlowControl="true" memoryLimit="30mb"
topicPrefetch="1" blockedProducerWarningInterval="30">
                    <amq:pendingMessageLimitStrategy>
                        <amq:constantPendingMessageLimitStrategy limit="-1"/>
                    </amq:pendingMessageLimitStrategy>
                </amq:policyEntry>                    
                <amq:policyEntry queue=">" producerFlowControl="true" memoryLimit="30mb"
queuePrefetch="1" blockedProducerWarningInterval="30">
                    <amq:pendingQueuePolicy>
                        <amq:vmQueueCursor/>
                    </amq:pendingQueuePolicy>
                </amq:policyEntry>
            </amq:policyEntries>
        </amq:policyMap>
    </amq:destinationPolicy>
    
    <amq:systemUsage>
        <amq:systemUsage sendFailIfNoSpaceAfterTimeout="60000">
            <amq:memoryUsage>
                <amq:memoryUsage limit="350 mb" />
            </amq:memoryUsage>
            <amq:tempUsage>
                <amq:tempUsage limit="300 mb" />
            </amq:tempUsage>
        </amq:systemUsage>
    </amq:systemUsage>    
{noformat}

> 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)

Mime
View raw message