Qpid
  1. Qpid
  2. QPID-3784

Add special JVM environment variable to run dispatcher thread as daemon/non deamon depending from its value.

    Details

    • Type: Improvement Improvement
    • Status: Resolved
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: 0.15
    • Fix Version/s: 0.15
    • Component/s: Java Client
    • Labels:
      None

      Description

      Dispatcher thread needs be set daemon/non-daemon depending of new configuration option to allow manipulating this behaviour.

      Historically, for the 0-8/0-9/0-9-1 client the use of Mina kept the
      JVM alive when a MessageListener was set, allowing asynchronous
      delivery to continue without the user having taken any explicit action
      to keep the JVM alive. Since we removed Mina this is no longer the
      case, and if there are no non-daemon threads then the JVM will now
      exit even though the user has set a MessageListener set. Investigating
      other providers suggests the typical behaviour is to make use of
      non-daemon threads by default, preventing this happening, but allowing
      users who desire that behaviour to configure it as such.

      For example, tibco seem to do exactly what I am proposing with their
      Dispatcher threads:
      https://docs.tibco.com/pub/enterprise_message_service/6.1.0-august-2011/doc/html/tib_ems_api_reference/api/javadoc/com/tibco/tibjms/Tibjms.html#PROP_DAEMON_DISPATCHER

      ActiveMQ seems to control this through transport options, defaulting
      to non-daemon threads with an option to reconfigure it:
      http://activemq.apache.org/tcp-transport-reference.html

        Activity

        No work has yet been logged on this issue.

          People

          • Assignee:
            Robbie Gemmell
            Reporter:
            Alex Rudyy
          • Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved:

              Development