So, the LVQ example that came packaged with Artemis doesn't actually work. According to the comments, it publishes three messages, then expects the queue to only have one message (as seen in the browser) and for only one of two invocations of 'receive' to work.
Instead, it publishes three messages, the browser finds three messages, and both invocations of 'receive' find a message to consume and one is left over in the queue as shown by the web console. The only modification I made to the example for this to run was by giving the ActiveMQConnectionFactory constructor the url of my broker. (Also, the ActiveMQJMSClient.createQueue() call used in the example is deprecated, FYI.) If I change the example to include "?last-value-key=LVK&non-destructive=true", and the string property in the messages to be "LVK", "STOCK_NAME", then the test runs fine the first time (throwing a NPE on the second receive() because the queue is empty). However, every subsequent run produces the AMQ224038 error. It seems that the error only happens when a message has been consumed and then is being replaced. -- Sent from: http://activemq.2283324.n4.nabble.com/ActiveMQ-User-f2341805.html