Uploaded image for project: 'ActiveMQ .Net'
  1. ActiveMQ .Net
  2. AMQNET-330

MutexTransport creates bottleneck for multi-threaded applications

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Major
    • Resolution: Fixed
    • 1.5.1
    • 1.5.2, 1.6.0
    • ActiveMQ, Stomp
    • Windows 7 64-bit, .NET 3.5 & 4.0.

    Description

      The MutexTransport creates a massive bottleneck in a multi-threaded application that uses timeouts for sending messages. This scenario makes the assumption that the failover protocol is being used to automatically reconnect to a broker that goes offline. If multiple threads are sending messages that have a send timeout and the broker is currently offline, then those calls get queued up in serial instead of executing in parallel. For example, if the send timeout is set to 10 seconds and 50 threads are simultaneously sending a message, it will take 500 seconds for all fifty threads to finally error out. The programmer of the code would expect the timeout to be 10 seconds maximum in order to have acceptable application performance.

      The MutexTransport needs to honor and use the timeout value of the transport that it is protecting and allow parallel waits.

      Attachments

        Activity

          People

            jgomes Jim Gomes
            jgomes Jim Gomes
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Time Tracking

                Estimated:
                Original Estimate - 2h
                2h
                Remaining:
                Remaining Estimate - 0h
                0h
                Logged:
                Time Spent - 2h
                2h