Uploaded image for project: 'ServiceMix'
  1. ServiceMix
  2. SM-1964

JMS Flow only uses one connection even with a PooledConnectionFactory

    XMLWordPrintableJSON

Details

    • Improvement
    • Status: Resolved
    • Major
    • Resolution: Fixed
    • 3.3.2
    • 3.4.0
    • servicemix-core
    • None
    • Patch Available

    Description

      The AbstractJMSFlow uses only one connection for routing. It should take advantage of a connection pool if that's the case, but there is a bit of an edge case where this is actually a more severe issue.

      If the flow is defined such that:

      • during the flow messages are produced and send back to a queue and
      • a failover transport is used (which uses a MutexTransport internally) and
      • the broker where we enqueue is slow

      then the producer will wait for the slow broker, but in the meantime will hold the mutex, preventing all the consumers in all the threads to consume which will lead (potentially) to queues filling up on the broker and pretty much everything grinding to a halt.

      Proposed patch to follow shortly.

      Attachments

        1. PooledConnectionFix.patch
          1 kB
          Suresh Avadhanula
        2. sm-1964-2.patch
          1 kB
          Hadrian Zbarcea
        3. smx-1964.patch
          2 kB
          Hadrian Zbarcea

        Activity

          People

            jbonofre Jean-Baptiste Onofré
            hadrian Hadrian Zbarcea
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: