activemq-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Clebert Suconic <clebert.suco...@gmail.com>
Subject Re: Artemis v2.2: ActiveMQIllegalStateException with core API
Date Thu, 24 Aug 2017 00:54:04 GMT
A session is supposed to be the contract of a thread.  Aren't you using the
same season between producer and consumer and calling commit on both ends ?

On Wed, Aug 23, 2017 at 4:05 PM Justin Bertram <jbertram@redhat.com> wrote:

> So I just looked at the code again and I totally missed the Thread.sleep()
> in consumeMessage() which nullifies my previous theory.
>
>
> Justin
>
> On Wed, Aug 23, 2017 at 3:02 PM, Justin Bertram <jbertram@redhat.com>
> wrote:
>
> > 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.asplund@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.ServerConsumerI
> >> mpl.acknowledge(ServerConsumerImpl.java:850)
> >> [artemis-server-2.2.0.jar:2.2.0]
> >>         at
> >> org.apache.activemq.artemis.core.server.impl.ServerSessionIm
> >> pl.acknowledge(ServerSessionImpl.java:773)
> >> [artemis-server-2.2.0.jar:2.2.0]
> >>         at
> >> org.apache.activemq.artemis.core.protocol.core.ServerSession
> >> PacketHandler.onSessionAcknowledge(ServerSessionPacketHandler.java:629)
> >> [artemis-server-2.2.0.jar:2.2.0]
> >>         at
> >> org.apache.activemq.artemis.core.protocol.core.ServerSession
> >> PacketHandler.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
> >>
> >
> >
>
-- 
Clebert Suconic

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message