activemq-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Bernhard Trummer (JIRA)" <>
Subject [jira] [Created] (AMQ-5575) Stuck message in ActiveMQ after WebLogic (incl. MDB) startup
Date Wed, 11 Feb 2015 10:04:11 GMT
Bernhard Trummer created AMQ-5575:

             Summary: Stuck message in ActiveMQ after WebLogic (incl. MDB) startup
                 Key: AMQ-5575
             Project: ActiveMQ
          Issue Type: Bug
    Affects Versions: 5.11.0, 5.10.0, 5.8.0
         Environment: Linux (Debian squeeze)
WebLogic Server 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

View raw message