activemq-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Marc Schöchlin (JIRA) <j...@apache.org>
Subject [jira] Commented: (AMQ-2680) Producer Flow Control seems to be broken
Date Wed, 31 Mar 2010 09:49:08 GMT

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

Marc Schöchlin commented on AMQ-2680:
-------------------------------------

Additional information:

If i execute the described steps, ActiveMQ logs the following message:
--- 
 INFO | Usage Manager Store is Full. Producer (ID:XXXXXXXXXXX-43726-1270028281473-0:0:1:1)
stopped to prevent flooding queue://queue/RemoteQ. See http://activemq.apache.org/producer-flow-control.html
for more info (blocking for: 30s)
---
This message appears many time, "blocking for : XXs" is increased by 30s steps....

After that, it is not possible to enqueue or dequeue any message!

This also happens with the following settings:
(datafile 32mb, storeUsage 40mb)
---
         <persistenceAdapter>
            <amqPersistenceAdapter directory="/srv/activemq/work/data" maxFileLength="32mb"

             persistentIndex="true" indexBinSize="32768" indexPageSize="32768" />
         </persistenceAdapter>
......
......
        <systemUsage>
            <systemUsage>
                <memoryUsage>
                    <memoryUsage limit="10 mb"/>
                </memoryUsage>
                <storeUsage>
                    <storeUsage limit="40 mb" name="queue/RemoteQ"/>
                    <storeUsage limit="40 mb" name="queue/RemoteQ"/>
                </storeUsage>
                <tempUsage>
                    <tempUsage limit="3 gb"/>
                </tempUsage>
            </systemUsage>
        </systemUsage>
---


> 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
>            Priority: Critical
>         Attachments: activemq.xml
>
>
> 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.


Mime
View raw message