You cannot assume 100% correct 0-9 priority order all the time. The broker will strive to deliver fully in order priority as best it can (in the index, in the store cursors/subscription cursors, and on the client), however that behavior can change slightly based on your config and messaging properties (prefetch, maxPageSize, cache enabled/disabled, broker memory settings etc, and whether or not you're using persistent/non persistent messages and the speed of your consumers/producers). The only thing you can assume is that the kahadb groups will be honored (which are 0-3=LOW, 4 = DEFAULT, and 5-9=HIGH. I will update date the docs as soon as I get a chance to and will try to explain this better.
On Fri, Mar 22, 2013 at 7:26 AM, mikmela <[email protected]> wrote: > It's been a bit confusing... According to > http://activemq.apache.org/message-cursors.html > <http://activemq.apache.org/message-cursors.html> : > The store based cursor also handles cursors for non-persistent messages, > which are not stored in the message store. Non-persistent messages are > passed directly to the cursor, so the store based cursor embeds a file > based > cursor just for these types of messages. > > This description in itself is not very clear, but what I can gather is that > in-bound non-persistent messages even though not stored in message store > still can end up some sort of temporary file store (is it not kahadb > based?) > and eventually end up in broker's pending cursor (where they are sorted > according to your desription). Then they dispatched to client's pendiing > cursor where they again can be reordered if prefetch enabled and delivered > to consumer. Looks like *SimplePriorityMessageDispatchChannel* does it if > prefetch is enabled. > Again, you're saying that as long as prefetch is enabled and pending > cursors > are involved message priority will be honored for both type of messages > persistent and non persistent no mater what type of message (JDBC vs KahaDB > is used)? > > Then the question is how scalable such implementation is? What if I'd send > a 100000 non-expiring messages to the queue and then start a consumer? > > > > -- > View this message in context: > http://activemq.2283324.n4.nabble.com/Clarifcation-on-KahaDB-support-for-message-priority-is-needed-tp4665014p4665053.html > Sent from the ActiveMQ - User mailing list archive at Nabble.com. > -- *Christian Posta* http://www.christianposta.com/blog twitter: @christianposta
