Hello, I took a look at the test cases.  I modified one a bit to reproduce the 
behavior I am seeing.  It seems if “createConsumer” is called prior to the 
producer sending messages, then prioritization does not work correctly.  If I 
simply move the createConsumer statement to below the producer sending 
messages, then they are consumed in priority order.  The example code is 
attached too.

This is a problem for us since we want our consumers attached an listening all 
the time for messages.  This behavior is reproducible with the JAVA and CMS 
clients (Openwire).

Do you have suggestions on what section of code I can look to attempt to track 
down the problem?

              // Create producer
              ActiveMQConnection producerConnection = (ActiveMQConnection) 
cf.createConnection();
              producerConnection.setMessagePrioritySupported(true);
              producerConnection.start();
              final Session producerSession = 
producerConnection.createSession(true, Session.SESSION_TRANSACTED);
              MessageProducer producer = producerSession.createProducer(dest);

              // Create consumer on separate connection
              ActiveMQConnection consumerConnection = (ActiveMQConnection) 
cf.createConnection();
              consumerConnection.setMessagePrioritySupported(true);
              consumerConnection.start();
              final ActiveMQSession consumerSession = (ActiveMQSession) 
consumerConnection.createSession(true, Session.SESSION_TRANSACTED);

              //***************************************************
              // If we create the consumer here, the
              // the messages will be consumed in FIFO like order
              //***************************************************
              ActiveMQMessageConsumer consumer = (ActiveMQMessageConsumer) 
consumerSession.createConsumer(dest);

              // Produce X number of messages with a session commit after each 
message
              Random random = new Random();
              for (int i = 0; i < messageCount; ++i) {

                     Message message = producerSession.createTextMessage("Test 
message #" + i);
                     producer.send(message, DeliveryMode.PERSISTENT, 
random.nextInt(10), 5000);
                     producerSession.commit();
              }
              producer.close();

              //***************************************************
              // If we create the consumer here instead of above, the
              // the messages will be consumed in priority order
              //***************************************************
              //ActiveMQMessageConsumer consumer = (ActiveMQMessageConsumer) 
consumerSession.createConsumer(dest);



From: Gary Tully [via ActiveMQ] 
[mailto:ml-node+3696786-639262666-139...@n4.nabble.com]
Sent: Tuesday, July 26, 2011 3:39 PM
To: Urciolo, Kevin J (IS)
Subject: Re: EXT :Re: Message Priority In 5.5.0-fuse-00-43

so that is not expected. Have a peek over one of the message priority
test cases to see if there is something different from your scenario,
you need to enable priority support on a destination for example.

Also note that kahaDB supports three priority levels, and the jdbc store 0-9.
http://svn.apache.org/viewvc/activemq/trunk/activemq-core/src/test/java/org/apache/activemq/store/MessagePriorityTest.java?view=markup

On 26 July 2011 18:48, urciolo <[hidden 
email]</user/SendEmail.jtp?type=node&node=3696786&i=0>> wrote:

> Thank you for the prompt reply.
>
> We do have prefetch set to 1.  This test was with a single producer that 
> produced all the messages that was then followed by a consumer to consume all 
> the messages.  Screenshot of consumer prefetch attached.
>
>
> From: Gary Tully [via ActiveMQ] [mailto:[hidden 
> email]</user/SendEmail.jtp?type=node&node=3696786&i=1>]
> Sent: Tuesday, July 26, 2011 1:38 PM
> To: Urciolo, Kevin J (IS)
> Subject: EXT :Re: Message Priority In 5.5.0-fuse-00-43
>
> if you have concurrent producers and consumers, then the prefetch has
> an effect as a consumer will get a batch of messages which will get
> delivered with relative priority.. but there may be others with higher
> priority arriving on the broker.
> Use prefetch=1|0 to circumvent that.
>
> On 26 July 2011 18:18, urciolo <[hidden 
> email]</user/SendEmail.jtp?type=node&node=3696461&i=0>> wrote:
>
>> I am testing out message priority in 5.5.0-fuse-00-43.
>>
>> I have prioritization enabled, and a maxPageSize of 5000.  When I consume
>> 230 messages with priorities 0-9, almost all of them are consumed in the
>> correct priority.  However, the last 20 or so seem to start the priority
>> consumption over again.  I thought increasing the maxPageSize would fix this
>> problem.  However, it does not seem to make a difference.  Is this the
>> expected behavior?
>>
>> Attached is a text file showing the consumption of messages.  The payload
>> output is the priority number.  You can see at the end how the priorities
>> start over again.
>>
>>
>> http://activemq.2283324.n4.nabble.com/file/n3696416/test2.txt test2.txt
>>
>>
>> http://activemq.2283324.n4.nabble.com/file/n3696416/attributes.jpg
>>
>> --
>> View this message in context: 
>> http://activemq.2283324.n4.nabble.com/Message-Priority-In-5-5-0-fuse-00-43-tp3696416p3696416.html
>> Sent from the ActiveMQ - User mailing list archive at Nabble.com.
>>
>
>
>
> --
> http://fusesource.com
> http://blog.garytully.com
>
> ________________________________
> If you reply to this email, your message will be added to the discussion 
> below:
>
>
>
> --
> View this message in context: 
> http://activemq.2283324.n4.nabble.com/Message-Priority-In-5-5-0-fuse-00-43-tp3696416p3696505.html
> Sent from the ActiveMQ - User mailing list archive at Nabble.com.



--
http://fusesource.com
http://blog.garytully.com

________________________________
If you reply to this email, your message will be added to the discussion below:
http://activemq.2283324.n4.nabble.com/Message-Priority-In-5-5-0-fuse-00-43-tp3696416p3696786.html
To unsubscribe from Message Priority In 5.5.0-fuse-00-43, click 
here<http://activemq.2283324.n4.nabble.com/template/NamlServlet.jtp?macro=unsubscribe_by_code&node=3696416&code=S2V2aW4uVXJjaW9sb0BuZ2MuY29tfDM2OTY0MTZ8MTc2MDkyNzEzMw==>.


--
View this message in context: 
http://activemq.2283324.n4.nabble.com/Message-Priority-In-5-5-0-fuse-00-43-tp3696416p3702365.html
Sent from the ActiveMQ - User mailing list archive at Nabble.com.

Reply via email to