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

flowControlSleepTime in ActiveMQConnection is not properly synchronized.

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Fixed
    • 3.0, 3.1, 3.2, 3.2.1
    • 3.2.2
    • JMS client
    • None

    Description

      Scott posted a great bug report on the forums: http://forums.logicblaze.com/posts/list/180.page

      I was running a stress test and found a bug in ActiveMQConnection. Where do I post it?

      The TCP consumer thread updates the flowControlSleepTime long between the values of -1 and 10 (consume method).

      My thread is attempting to issue an asyncsend. Within the asyncPacketSend method the value is referenced as follows:

      if (packet.isJMSMessage() && flowControlSleepTime > 0) {
      try {
      Thread.sleep(flowControlSleepTime);
      } catch (InterruptedException e) { }
      }

      this.transportChannel.asyncSend(packet);

      Typical threading issue, the value is 10 on the if and -1 on the Thread.sleep..... and my thread sleeps forever.....

      This jdk 1.5, one broker, one queue, two consumers and two producers. Each producer has one connection running all-out sends (no wait). I'm only getting about 7000 events/sec/avg through this configuration.

      This code is attempting to slow down the client based on the CapacityInfo object being sent back to the client with a 'flow control time' to wait. I'll have to try using more connections (clients) to see if I can pass the 7000 mark.

      Scott

      Attachments

        Activity

          People

            chirino Hiram R. Chirino
            chirino Hiram R. Chirino
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: