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

activemq-web - REST GET 204

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Abandoned
    • 5.7.0
    • NEEDS_REVIEW
    • None
    • None
    • 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. RestTest.java
          11 kB
          Huang Hua
        2. AMQ4277TestPatch.txt
          3 kB
          Timothy A. Bish

        Activity

          People

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

            Dates

              Created:
              Updated:
              Resolved: