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

Reply via email to