activemq-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Gary Tully (JIRA)" <j...@apache.org>
Subject [jira] Commented: (AMQ-2217) Message delivery to selector based consumers pauses if selector leaves messages on the queue.
Date Thu, 09 Sep 2010 11:41:41 GMT

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

Gary Tully commented on AMQ-2217:
---------------------------------

The pageSize is the amount of messages that are pulled into memory by a destination prior
to a dispatch, it needs to be large enough to bridge the gaps between messages with sparse
selector distribution, otherwise messages of one type will halt the dispatch till they are
consumed or expire. A sensible message expiry policy can help in tandem here.

> Message delivery to selector based consumers pauses if selector leaves messages on the
queue.
> ---------------------------------------------------------------------------------------------
>
>                 Key: AMQ-2217
>                 URL: https://issues.apache.org/activemq/browse/AMQ-2217
>             Project: ActiveMQ
>          Issue Type: Bug
>          Components: Broker
>    Affects Versions: 5.1.0, 5.3.0
>         Environment: Windows XP Professional 2002, Service Pack 2,  Intel Pentium D 3ghz,
various 1.5 and 1.6 versions of jdk
>            Reporter: Jar Lyons
>            Assignee: Gary Tully
>             Fix For: 5.4.1
>
>         Attachments: DiscriminatingConsumerLoadTest.java
>
>
> I have written a test case which will demonstrate the difference between the following
two scenarios:
> 1. Producer sending dissimilar JMSType messages to a queue, with a client consuming all
messages (no selector).
> 2. Producer sending dissimilar JMSType messages to a queue, with a client consuming every
other message (using selector).
> With a large enough size of test messages (for my environment about 5k), scenario 2 will
fail with delivery to the consumer halted, while scenario 1 will not.
> Test Output:
> waiting for consumer to pause ... consumer: 0, producer: 0
> waiting for consumer to pause ... consumer: 200, producer: 5000
> waiting for consumer to pause ... consumer: 200, producer: 5000
> waiting for consumer to pause ... consumer: 200, producer: 5000
> waiting for consumer to pause ... consumer: 200, producer: 5000
> waiting for consumer to pause ... consumer: 200, producer: 5000

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