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.
