Uploaded image for project: 'Axis2'
  1. Axis2
  2. AXIS2-4213

Dead Letter Queue Based Recovery

    XMLWordPrintableJSON

Details

    • Improvement
    • Status: Closed
    • Major
    • Resolution: Won't Fix
    • 1.3
    • 1.3
    • kernel
    • None

    Description

      Currently, when the server receives a JMS message that cannot be delivered to a service, it simply drops it. By the same token, when the server fails to deliver a JMS message to an external service, it is lost forever. This leaves users guessing as to what was in that message and why the delivery failed. Furthermore, there is no way for them to manually retry the delivery, even if they have the know-how to correct the problem.

      Typically, message brokers employ a dead letter queue, in which to store undeliverable messages. This allows users to not only track such messages, but also retry delivery of some of them. A few brokers even go to the extent of customizing the dead letter queue based on who is sending or receiving the message. This way, users can quickly identify the messages that they are specifically interested in.

      Let us try to apply these concepts to Axis2. Strictly speaking, the JMS transport of Axis2 is not a JMS broker, but it does create JMS consumers and producers, which have to handle delivery failures, as you might imagine. In the event of such failures, the message should be sent to a default dead letter queue, the scope of which is system-wide. If so desired, the user may override the default location of the dead letter queue by specifying a message context property or client option. For more details, please refer to the patch that is attached here.

      Attachments

        1. dead-letter-queue.patch
          12 kB
          Karthick Sankarachary

        Activity

          People

            asankha Asankha Chamath Perera
            karthick Karthick Sankarachary
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: