2 Replies Latest reply on Jan 19, 2006 9:54 AM by Adrian Brock

    DLQueue no ExceptionListener

    rme Newbie

      After the DLQHandler creates a Connection it does
      not register an ExceptionListener for that
      Connection. As a result, if the Connection fails,
      1) the Connection is not re-established and 2)
      the logfile fills up with the reports in the
      asynchFailure Connection method.

      Fix is something like:

      DLQHandler implements ExceptionListener.
      After creating Connection, register "this".

      onException(...) {
      try {
      kill Connection
      } catch (...) { ... }
      try {
      create Connection
      register "this" as ExceptionListener
      } catch (...) {...}

      Please put fix into 3.2.8 and next 4.x release.

        • 2. Re:  DLQueue no ExceptionListener
          Adrian Brock Master


          We test on Solaris, Linux and Windows. On Window boxes one can cause connection
          ping timeouts by simply disconnecting the box from the network. A significant percentage
          of such tests, the dead letter queue connections do not recover. On Solaris and Linux
          disconnecting from the network does not produce ping timeout events.
          Once a connection starts failing the timeouts, unless one has an exceptionlistener
          register, the log file fills with the ping timeout notification.
          So, on Windows this is something that is easy to produce and at customer sites having
          the log files filled with such notification just because some IT guy disconnected a
          cable by mistake is not an unlikely event (and unnerves the customer).
          Yes, a dead letter queue is only used in the event of some other error but its the filling of
          the log file thats the customer-visible problem.

          Please keep the discussions in the forums. JIRA goes in the release notes.