[
https://issues.apache.org/activemq/browse/AMQ-2680?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Gary Tully resolved AMQ-2680.
-----------------------------
Fix Version/s: 5.4.0
(was: 5.3.1)
Resolution: Fixed
Think the fix for https://issues.apache.org/activemq/browse/AMQ-2668 sort this.
Reopen if here is any update or change.
> Producer Flow Control seems to be broken
> ----------------------------------------
>
> Key: AMQ-2680
> URL: https://issues.apache.org/activemq/browse/AMQ-2680
> Project: ActiveMQ
> Issue Type: Bug
> Components: Broker, Documentation
> Affects Versions: 5.3.1
> Environment: SLES 11, IBM JDK 1.6
> Reporter: Marc Schöchlin
> Assignee: Gary Tully
> Priority: Critical
> Fix For: 5.4.0
>
> Attachments: activemq-broken-flow-control.xml, activemq.xml,
> producer-flow-control-problem.zip
>
>
> How to reproduce:
> - Download ActiveMQ 5.3.1
> - Start broker with the attached configuration
> ---
> <systemUsage>
> <systemUsage>
> <memoryUsage>
> <memoryUsage limit="10 mb"/>
> </memoryUsage>
> <storeUsage>
> <storeUsage limit="10 mb" name="queue/RemoteQ"/>
> </storeUsage>
> <tempUsage>
> <tempUsage limit="3 gb"/>
> </tempUsage>
> </systemUsage>
> </systemUsage>
> ---
> - Start example producer/consumer
> cd examples
> ant producer -Durl=tcp://127.0.0.1:61616 -Dmax=100000
> -Dsubject=queue/RemoteQ -Ddurable=true -DsleepTime=2
> sleep 600
> ant consumer -Durl=tcp://127.0.0.1:61616 -Dsubject=queue/RemoteQ
> -Dmax=100000 -DsleepTime=2
> The problem:
> When the 10mb limit is reached, the producer is blocked forever.
> The expected behavior is, that if a consumer cleans the queue, producers are
> able to post more messages.
> Neither cleaning up the queue, restarting producers and restarting the broker
> helps :-(
> It would be also a good idea to enhance the documentation about
> producer-flow-control:
> (http://activemq.apache.org/producer-flow-control.html)
> - expected behavior
> - what is limited in detail by using system|store|tempUsage
> The entire configuration :
> ---
> <beans
> xmlns="http://www.springframework.org/schema/beans"
> xmlns:amq="http://activemq.apache.org/schema/core"
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
> xsi:schemaLocation="http://www.springframework.org/schema/beans
> http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
> http://activemq.apache.org/schema/core
> http://activemq.apache.org/schema/core/activemq-core.xsd">
> <bean
> class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
> <property name="locations">
> <value>file:${activemq.base}/conf/credentials.properties</value>
> </property>
> </bean>
> <broker xmlns="http://activemq.apache.org/schema/core"
> brokerName="localhost" dataDirectory="${activemq.data}/data" >
> <destinationPolicy>
> <policyMap>
> <policyEntries>
> <policyEntry topic=">" producerFlowControl="true"
> memoryLimit="10mb">
> <deadLetterStrategy>
> <!--
> Use the prefix 'DLQ.' for the destination name, and make
> the DLQ a queue rather than a topic
> -->
> <individualDeadLetterStrategy
> queuePrefix="DLQ." useQueueForQueueMessages="true" />
> </deadLetterStrategy>
> <pendingSubscriberPolicy>
> <vmCursor />
> </pendingSubscriberPolicy>
> </policyEntry>
> <policyEntry queue=">" producerFlowControl="true"
> memoryLimit="10mb">
> <!-- Use VM cursor for better latency
> For more information, see:
>
> http://activemq.apache.org/message-cursors.html
>
> <pendingQueuePolicy>
> <vmQueueCursor/>
> </pendingQueuePolicy>
> -->
> <deadLetterStrategy>
> <!--
> Use the prefix 'DLQ.' for the destination name, and make
> the DLQ a queue rather than a topic
> -->
> <individualDeadLetterStrategy
> queuePrefix="DLQ." useQueueForQueueMessages="true" />
> </deadLetterStrategy>
> </policyEntry>
> </policyEntries>
> </policyMap>
> </destinationPolicy>
>
> <systemUsage>
> <systemUsage>
> <memoryUsage>
> <memoryUsage limit="10 mb"/>
> </memoryUsage>
> <storeUsage>
> <storeUsage limit="10 mb" name="queue/RemoteQ"/>
> </storeUsage>
> <tempUsage>
> <tempUsage limit="3 gb"/>
> </tempUsage>
> </systemUsage>
> </systemUsage>
>
> <transportConnectors>
> <transportConnector name="openwire" uri="tcp://0.0.0.0:61616"/>
> </transportConnectors>
> </broker>
> <import resource="jetty.xml"/>
>
> </beans>
> ---
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.