Just a quick followup, I looked into org.apache.activemq.broker.region.Queue to see where the supposedly deleted messages were coming from and they're being picked up from the "pagedInPendingDispatch" list during doBrowse(...):
// Messages that are paged in but have not yet been targeted at a subscription private List<QueueMessageReference> pagedInPendingDispatch = new ArrayList<QueueMessageReference>(100); public void doBrowse(boolean forcePageIn, List<Message> l, int max) { final ConnectionContext connectionContext = createConnectionContext(); try { pageInMessages(forcePageIn); List<MessageReference> toExpire = new ArrayList<MessageReference>(); synchronized(dispatchMutex) { synchronized (pagedInPendingDispatch) { --> addAll(pagedInPendingDispatch, l, max, toExpire); ... This list does not get modified during deletion of a message, so is caching a copy of the deleted messages. -- View this message in context: http://old.nabble.com/Purged-messages-still-appear-in-JMX-browseAsTable-tp26832947p26833977.html Sent from the ActiveMQ - User mailing list archive at Nabble.com.