Your code may be inducing a race condition. Your consumeMessage() method is creating a session, setting a MessageListener, starting the session, and then closing the session immediately. Meanwhile another thread is likely invoking your MessageListener's onMessage and attempting to acknowledge the message (on the session which was just closed). The broker might should handle this situation more elegantly, but this looks like a bug in your code. I'm not a Scala expert so correct me if I'm wrong.
Justin On Wed, Aug 23, 2017 at 1:29 AM, Marko Asplund <marko.aspl...@gmail.com> wrote: > Hi, > > I'm getting occasional ActiveMQIllegalStateException in Artemis server log. > Artemis has been deployed in a single instance setup and I'm connecting > using the core API. I've a single queue with one producer and 10 consumers. > The messages can be rather large but the volume has been quite low. > Here's a log extract: > > 13:51:37,340 ERROR [org.apache.activemq.artemis.core.server] AMQ224016: > Caught exception: ActiveMQIllegalStateException[errorType=ILLEGAL_STATE > message=AMQ119027: Could not find reference on consumer ID=0, messageId = > 1,535 queue = foo.bar.requests] > at > org.apache.activemq.artemis.core.server.impl.ServerConsumerImpl. > acknowledge(ServerConsumerImpl.java:850) > [artemis-server-2.2.0.jar:2.2.0] > at > org.apache.activemq.artemis.core.server.impl. > ServerSessionImpl.acknowledge(ServerSessionImpl.java:773) > [artemis-server-2.2.0.jar:2.2.0] > at > org.apache.activemq.artemis.core.protocol.core.ServerSessionPacketHandler. > onSessionAcknowledge(ServerSessionPacketHandler.java:629) > [artemis-server-2.2.0.jar:2.2.0] > at > org.apache.activemq.artemis.core.protocol.core.ServerSessionPacketHandler. > onMessagePacket(ServerSessionPacketHandler.java:267) > [artemis-server-2.2.0.jar:2.2.0] > at > org.apache.activemq.artemis.utils.actors.Actor.doTask(Actor.java:33) > [artemis-commons-2.2.0.jar:2.2.0] > ... > > Any ideas on what could be causing this? > > > Artemis has been deployed on Ubuntu 16.04 server and running with Oracle > Java 8. > > The code is demonstrated in a sample here: > https://gist.github.com/marko-asplund/983300e4bec59f53a13bc0d319a506f6 > > > marko >