activemq-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Timothy Bish (JIRA)" <j...@apache.org>
Subject [jira] Closed: (AMQ-2949) Message priority is not always handled correctly
Date Thu, 17 Feb 2011 22:37:12 GMT

     [ https://issues.apache.org/jira/browse/AMQ-2949?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]

Timothy Bish closed AMQ-2949.
-----------------------------

    Resolution: Not A Problem

Code is working as designed.

With a prefetch of one the consumer has no ability to reorder messages that have arrived with
respect to priority.  Since the test case create a consumer while still producing messages
the broker can dispatch a lower priority message to the consumer before the next produced
higher priority message arrives in the queue.  


> Message priority is not always handled correctly
> ------------------------------------------------
>
>                 Key: AMQ-2949
>                 URL: https://issues.apache.org/jira/browse/AMQ-2949
>             Project: ActiveMQ
>          Issue Type: Bug
>          Components: Broker
>    Affects Versions: 5.4.1
>            Reporter: Mathieu Baril
>         Attachments: activemq-priority-testing.zip
>
>
> Hi, 
> I'm trying to use ActiveMQ version 5.4.1 with priority. 
> The new features seems to work well when I left the prefetch size of my consumer equal
to the default value (1000) but is not working as I'm expecting when I set the prefetch size
to 1. 
> Here is the output of the attached unint test when the prefetch size equal to 1000: 
> 2010-09-21 09:37:06,937 - JMS broker started 
> 2010-09-21 09:37:10,087 - Sent 1(P=3) 
> 2010-09-21 09:37:11,111 - Sent 2(P=9) 
> 2010-09-21 09:37:12,140 - Sent 3(P=3) 
> 2010-09-21 09:37:13,162 - Sent 4(P=3) 
> 2010-09-21 09:37:14,189 - Sent 5(P=9) 
> 2010-09-21 09:37:14,194 - Creating message consumer. 
> 2010-09-21 09:37:14,241 - *Consumer's pefetch size=1000*
> 2010-09-21 09:37:14,289 - Received 2(P=9) 
> 2010-09-21 09:37:15,276 - Sent 6(P=3) 
> 2010-09-21 09:37:16,326 - Received 5(P=9) 
> 2010-09-21 09:37:16,333 - Sent 7(P=9) 
> 2010-09-21 09:37:17,354 - Sent 8(P=3) 
> 2010-09-21 09:37:18,332 - Received 7(P=9) 
> 2010-09-21 09:37:18,374 - Sent 9(P=3) 
> 2010-09-21 09:37:19,396 - Sent 10(P=9) 
> 2010-09-21 09:37:20,338 - Received 10(P=9) 
> 2010-09-21 09:37:22,345 - Received 1(P=3) 
> 2010-09-21 09:37:24,351 - Received 3(P=3) 
> 2010-09-21 09:37:26,358 - Received 4(P=3) 
> 2010-09-21 09:37:28,365 - Received 6(P=3) 
> 2010-09-21 09:37:30,371 - Received 8(P=3) 
> 2010-09-21 09:37:32,380 - Received 9(P=3) 
> 2010-09-21 09:37:34,387 - Expected result : [2(P=9), 5(P=9), 7(P=9), 10(P=9), 1(P=3),
3(P=3), 4(P=3), 6(P=3), 8(P=3), 9(P=3)] 
> 2010-09-21 09:37:34,387 - Result : [2(P=9), 5(P=9), 7(P=9), 10(P=9), 1(P=3), 3(P=3),
4(P=3), 6(P=3), 8(P=3), 9(P=3)] 
> Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 33.851 sec 
> Running the same test with a prefetch value of 1 give me a different result: 
> 2010-09-21 09:39:13,096 - JMS broker started 
> 2010-09-21 09:39:16,293 - Sent 1(P=3) 
> 2010-09-21 09:39:17,338 - Sent 2(P=9) 
> 2010-09-21 09:39:18,368 - Sent 3(P=3) 
> 2010-09-21 09:39:19,413 - Sent 4(P=3) 
> 2010-09-21 09:39:20,443 - Sent 5(P=9) 
> 2010-09-21 09:39:20,443 - Creating message consumer. 
> 2010-09-21 09:39:20,489 - *Consumer's pefetch size=1*
> 2010-09-21 09:39:20,536 - Received 2(P=9) 
> 2010-09-21 09:39:21,511 - Sent 6(P=3) 
> 2010-09-21 09:39:22,550 - Received 5(P=9) 
> 2010-09-21 09:39:22,559 - *Sent 7(P=9)*
> 2010-09-21 09:39:23,620 - Sent 8(P=3) 
> 2010-09-21 09:39:24,587 - *Received 1(P=3)*
> 2010-09-21 09:39:24,650 - Sent 9(P=3) 
> 2010-09-21 09:39:25,640 - Sent 10(P=9) 
> 2010-09-21 09:39:26,590 - *Received 3(P=3) *
> 2010-09-21 09:39:28,567 - *Received 4(P=3) *
> 2010-09-21 09:39:30,574 - Received 7(P=9) 
> 2010-09-21 09:39:32,610 - Received 10(P=9) 
> 2010-09-21 09:39:34,622 - Received 6(P=3) 
> 2010-09-21 09:39:36,634 - Received 8(P=3) 
> 2010-09-21 09:39:38,616 - Received 9(P=3) 
> 2010-09-21 09:39:40,660 - Expected result : [2(P=9), 5(P=9), 7(P=9), 10(P=9), 1(P=3),
3(P=3), 4(P=3), 6(P=3), 8(P=3), 9(P=3)] 
> 2010-09-21 09:39:40,660 - Result : [2(P=9), 5(P=9), 1(P=3), 3(P=3), 4(P=3), 7(P=9), 10(P=9),
6(P=3), 8(P=3), 9(P=3)] 
> Tests run: 1, Failures: 1, Errors: 0, Skipped: 0, Time elapsed: 32.08 sec <<<
FAILURE! 
> As you can see, depending of the prefetch value, the message delivery order is not the
same. When the prefetch is 1, the message delivery order is not correct (messages 1,3 and
4 are received before message 7). If you look the timestamp, the message 7 is received by
the JMS broker before message 1 is sent to the consumer. 
> To run the attached unit test, you need to have maven installed and run the following
command: 
> mvn test -DargLine="-DprefetchSize=<prefetch_size_value> -Dactivemq.port=61616"


-- 
This message is automatically generated by JIRA.
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Mime
View raw message