activemq-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Tim Bain <tb...@alumni.duke.edu>
Subject Re: MDB stops consuming messages
Date Sun, 26 Apr 2015 15:09:09 GMT
Oh, I forgot: was there any indication of Producer Flow Control kicking in
on the broker prior to when the consumer stopped processing messages?

On Sun, Apr 26, 2015 at 9:06 AM, Tim Bain <tbain@alumni.duke.edu> wrote:

> Did you ever solve this issue?
>
> If not, can you please clarify a couple things in your description?
>
>    1. Did you confirm (via a thread dump) that the MDB wasn't actually
>    hung somewhere in your consumer code?  Clearly the broker believed it had
>    dispatched a prefetch buffer worth of messages to the consumer, so the
>    question is whether the consumer's ActiveMQ client/RAR code had attempted
>    to dispatch the next message to your MDB or not.  And if the thread wasn't
>    stuck in your MDB code, where was it stuck instead?
>    2. When you shut down Glassfish, was your MDB consumer connected or
>    disconnected?  The first half of your description sounded like it was
>    connected, while the last paragraph sounded like it was disconnected.
>    3. When you connected the additional consumer, did it process messages
>    as expected?  You never said what happened when those additional consumers
>    connected.
>    4. Did that ID match one of the consumers (or one of their
>    connections; I can never tell consumer IDs and connection IDs apart)?  If
>    so, which one?
>    5. If you can reproduce this reliably, does the exception happen if
>    you shut down Glassfish without attempting to connect any additional
>    consumers?
>
> Tim
>
> On Tue, Mar 24, 2015 at 3:24 PM, sbarlabanov <contact@sergiy-barlabanov.de
> > wrote:
>
>> Hi,
>>
>> this is the continuation of my forum entry
>>
>> http://activemq.2283324.n4.nabble.com/ActiveMQ-5-10-0-queue-slowed-down-restart-helped-td4690706.html#a4690723
>> .
>> But since the discussion there went to another direction I start a new
>> topic.
>> We got the issue again several times in the last two month.
>> More details: we have a standalone running ActiveMQ 5.10.0, Glassfish
>> 3.1.2.2 with ActiveMQ RAR and an MDB consuming messages from an ActiveMQ
>> queue.
>> Suddenly after weeks successful processing the MDB stops processing any
>> message (I mentioned that already). In jconsole we see the corresponding
>> JMS
>> consumer on the queue. MessageCountAwaitingAcknowledge of the consumer is
>> equal the prefetch buffer (10 in our case). From time to time a new
>> consumer
>> occurs on the queue (this is seen in jconsole), but the first one stays
>> with
>> MessageCountAwaitingAcknowledge=prefetch buffer.
>> When we stop Glassfish, the following interesting exception appears in
>> activemq.log:
>>
>> java.lang.IllegalStateException: Cannot remove session from connection
>> that
>> had not been registered: ID:NOEUD-SI2-55792-1427222776632-47:1
>>         at
>>
>> org.apache.activemq.broker.TransportConnection.processRemoveSession(TransportConnection.java:677)[activemq-broker-5.10.0-patch4.jar:5.10.0-patch4]
>>         at
>>
>> org.apache.activemq.command.RemoveInfo.visit(RemoveInfo.java:74)[activemq-client-5.10.0-patch2.jar:5.10.0-patch2]
>>         at
>>
>> org.apache.activemq.broker.TransportConnection.service(TransportConnection.java:294)[activemq-broker-5.10.0-patch4.jar:5.10.0-patch4]
>>         at
>>
>> org.apache.activemq.broker.TransportConnection$1.onCommand(TransportConnection.java:148)[activemq-broker-5.10.0-patch4.jar:5.10.0-patch4]
>>         at
>>
>> org.apache.activemq.transport.MutexTransport.onCommand(MutexTransport.java:50)[activemq-client-5.10.0-patch2.jar:5.10.0-patch2]
>>         at
>>
>> org.apache.activemq.transport.WireFormatNegotiator.onCommand(WireFormatNegotiator.java:113)[activemq-client-5.10.0-patch2.jar:5.10.0-patch2]
>>         at
>>
>> org.apache.activemq.transport.AbstractInactivityMonitor.onCommand(AbstractInactivityMonitor.java:270)[activemq-client-5.10.0-patch2.jar:5.10.0-patch2]
>>         at
>>
>> org.apache.activemq.transport.TransportSupport.doConsume(TransportSupport.java:83)[activemq-client-5.10.0-patch2.jar:5.10.0-patch2]
>>         at
>>
>> org.apache.activemq.transport.nio.NIOTransport.serviceRead(NIOTransport.java:138)[activemq-client-5.10.0-patch2.jar:5.10.0-patch2]
>>         at
>>
>> org.apache.activemq.transport.nio.NIOTransport$1.onSelect(NIOTransport.java:69)[activemq-client-5.10.0-patch2.jar:5.10.0-patch2]
>>         at
>>
>> org.apache.activemq.transport.nio.SelectorSelection.onSelect(SelectorSelection.java:94)[activemq-client-5.10.0-patch2.jar:5.10.0-patch2]
>>         at
>>
>> org.apache.activemq.transport.nio.SelectorWorker$1.run(SelectorWorker.java:119)[activemq-client-5.10.0-patch2.jar:5.10.0-patch2]
>>         at
>>
>> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)[:1.7.0_45]
>>         at
>>
>> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)[:1.7.0_45]
>>         at java.lang.Thread.run(Thread.java:744)[:1.7.0_45]
>>
>> It seems that something goes wrong in ActiveMQ RAR. Seems that something
>> hangs around in the RAR locking the messages. Because otherwise ActiveMQ
>> will not complain about the session which is going to be removed from an
>> unregistered session. So something went wrong before. And the broker did
>> not
>> get it and still thinks that the consumer/session/connection is open.
>>
>>
>>
>>
>> --
>> View this message in context:
>> http://activemq.2283324.n4.nabble.com/MDB-stops-consuming-messages-tp4693769.html
>> Sent from the ActiveMQ - User mailing list archive at Nabble.com.
>>
>
>

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