Have a testcase that connects a Java stomp consumer to a virtual destination queue and consumes a fixed amount of msgs.
During the test I noticed that the consumer does not always receive the full amount of msgs.
Instead the receive times out although JMX QueueSize property is greater than 0. However when trying to browse the queue using JMX, it returns null, despite the fact that not all msgs got dequeued yet (dispatch and dequeue counter < enqueue counter).
So far I reproduced this with a stomp producer/consumer only. The producer writes msgs to a virtual topic VirtualTopic.Foo and the consumer takes msgs off the Consumer.A.VirtualTopic.Foo queue. Using JMX I noticed all msgs got moved from the virtual topic to the queue (reflected by JMX enqueue counter) but not all msgs got consumed.
So it seems the broker lost some msgs on the way.