Uploaded image for project: 'ActiveMQ'
  1. ActiveMQ
  2. AMQ-4277

activemq-web - REST GET 204

    XMLWordPrintableJSON

    Details

    • Type: Bug
    • Status: Reopened
    • Priority: Major
    • Resolution: Unresolved
    • Affects Version/s: 5.7.0
    • Fix Version/s: NEEDS_REVIEW
    • Component/s: None
    • Labels:
      None
    • Environment:

      windows 7 and windows xp

      Description

      Using 5.7 REST API I can GET a message from a topic but if a new message is POSTed to that same topic before the GET has been reissued (less than 20ms behind the POST and using the same session as the previous GET) the GET will timeout with a 204 and does not retrieve the message. This may be as designed for topics (queues are not an option) but I am just looking for confirmation. I assumed the first GET would have provided a topic subscription and the broker would hold a topic message for which there is a subscriber for longer than 20ms? This is not a stress test and is recreated with a simple producer and a separate consumer usually within the first couple of message exchanges. It has been noticed that when the topic message is POSTed without an outstanding GET to receive it, the following exception is logged:

      2013-01-22 01:09:37,484 | DEBUG | Async client internal exception occurred with no exception listener registered: java.lang.IllegalStateException: DISPATCHED,initial | org.apache.activemq.ActiveMQConnection | ActiveMQ Session Task-1
      java.lang.IllegalStateException: DISPATCHED,initial
      at org.eclipse.jetty.server.AsyncContinuation.dispatch(AsyncContinuation.java:408)
      at org.eclipse.jetty.server.AsyncContinuation.resume(AsyncContinuation.java:815)
      at org.apache.activemq.web.MessageServlet$Listener.onMessageAvailable(MessageServlet.java:409)
      at org.apache.activemq.ActiveMQMessageConsumer.dispatch(ActiveMQMessageConsumer.java:1343)
      at org.apache.activemq.ActiveMQSessionExecutor.dispatch(ActiveMQSessionExecutor.java:131)
      at org.apache.activemq.ActiveMQSessionExecutor.iterate(ActiveMQSessionExecutor.java:202)
      at org.apache.activemq.thread.PooledTaskRunner.runTask(PooledTaskRunner.java:129)
      at org.apache.activemq.thread.PooledTaskRunner$1.run(PooledTaskRunner.java:47)
      at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
      at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
      at java.lang.Thread.run(Thread.java:722)

      Are there any configuration modifications available to have the topic messages retained for at least 1 second?

        Attachments

        1. AMQ4277TestPatch.txt
          3 kB
          Timothy A. Bish
        2. RestTest.java
          11 kB
          Huang Hua

          Activity

            People

            • Assignee:
              Unassigned
              Reporter:
              hhuang Huang Hua
            • Votes:
              0 Vote for this issue
              Watchers:
              7 Start watching this issue

              Dates

              • Created:
                Updated: