You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@activemq.apache.org by "Bernhard Trummer (JIRA)" <ji...@apache.org> on 2015/02/11 11:04:11 UTC

[jira] [Created] (AMQ-5575) Stuck message in ActiveMQ after WebLogic (incl. MDB) startup

Bernhard Trummer created AMQ-5575:
-------------------------------------

             Summary: Stuck message in ActiveMQ after WebLogic (incl. MDB) startup
                 Key: AMQ-5575
                 URL: https://issues.apache.org/jira/browse/AMQ-5575
             Project: ActiveMQ
          Issue Type: Bug
    Affects Versions: 5.11.0, 5.10.0, 5.8.0
         Environment: Linux (Debian squeeze)
WebLogic Server 10.3.6.0 with a "Foreign Server" JMS module pointing to ActiveMQ.
WebLogic and ActiveMQ running locally.
            Reporter: Bernhard Trummer


The setup:
- ActiveMQ with the default configuration providing one queue.
- WebLogic server having
  - a "Foreign Server" JMS module configured pointing to the ActiveMQ's queue
  - a simple EJB3 MDB hooked up to this queue via XAConnectionFactory.

The issue is always reproducable as follows:
1. Shut down WebLogic
2. Start up ActiveMQ
3. Put a message (M1) into ActiveMQ's queue (e.g. via web frontend)
4. Start up WebLogic (including the simple EJB3 MDB deployment)
5. You'll see that the message M1 is consumed. The MDB logs it and the message vanishes from the ActiveMQ web frontend => OK
6. Put another message (M2) into ActiveMQ's queue.
7. Put a third message (M3) into ActiveMQ's queue.

Expected behavior:
M2 and M3 are consumed by the MDB on WebLogic.

Actual behavior:
M2 is getting "stuck".
M3 is consumed correctly.
The next 15 messages you add to the ActiveMQ queue are consumed correctly.
The next message (MX) leads to a consumption of the previously stuck message (M2) and the current message (MX).
After that, the behavior repeats with scenario step 6 above.

Some further notes:
1. Why 15/16 messages until the stuck message is consumed? Because ActiveMQ shows 16 listeners when WebLogic is started up.
2. I can reproduce the issue every time.
3. It occurs with version 5.8.0, 5.10.0 and 5.11.0 of activemq (of course also using the matching activemq-client jar in WebLogic).
4. If you leave out step 3 of the scenario (means: ensure that ActiveMQ's queue is empty before WebLogic is started up), then everything is fine and no message is getting stuck.
5. Good news is, that no message is getting lost without being consumed. But it's still quite annoying in my current integration project I'm working on. :-)

Currently I'm trying to add trace logging into the activemq-client to get a better idea on what's going on. What I can tell so far is, that the message M2 is indeed received by the client and enqueued into a SimplePriorityMessageDispatchChannel instance correctly. But it looks like that the dequeue() call is done on a different instance in this scenario.
Further I see, that some kind of "round robin" happens in the usage of these Channel instances and that might be the reason, why M2 is eventually consumed together with the 16th next message.




--
This message was sent by Atlassian JIRA
(v6.3.4#6332)