Qpid
  1. Qpid
  2. QPID-4943

[Java Broker] Introduce a feature for 0-8/0-9/0-9-1protocols to close a connection on receiving a mandatory unroutable message in a transacted session

    Details

    • Type: New Feature New Feature
    • Status: Closed
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: 0.23
    • Fix Version/s: 0.23
    • Component/s: Java Broker, Java Client
    • Labels:
      None

      Description

      With AMQP 0-8/0-9/-9-1 protocols sending a message with a routing key for which no queue binding exist results in either message being bounced back (mandatory or immediate message) or discarded on broker side (not mandatory or immediate message).

      When a 'mandatory' message is returned back, an AMQNoRouteException is passes through the configured ExceptionListener on the Connection. This exception does not cause channel or connection close. However, it require a special exception handling on client side in order to deal with AMQNoRouteExceptions. This could potentially be a problem when using various messaging frameworks and buses (e.g Mule) as they usually close the connection on receiving any JMSException.

      In order to simplify application handling of scenarios where 'mandatory' messages are being sent to queues which do not actually exist, the Qpid Java Broker should allow configuring the client/broker on a global and/or connection-specific basis such that the broker should respond to this situation by closing the connection rather than returning the unroutable message to the client.

        Activity

        Hide
        Justin Ross added a comment -
        Show
        Justin Ross added a comment - Released in Qpid 0.24, http://qpid.apache.org/releases/qpid-0.24/index.html
        Hide
        Rob Godfrey added a comment -

        The tests were not being excluded from the C++ profile, and were thus causing the Jenkins job to fail. I have added them to the relevant exclude list

        Show
        Rob Godfrey added a comment - The tests were not being excluded from the C++ profile, and were thus causing the Jenkins job to fail. I have added them to the relevant exclude list
        Hide
        ASF subversion and git services added a comment -

        Commit 1498641 from Rob Godfrey
        [ https://svn.apache.org/r1498641 ]

        QPID-4943: Introduce a feature for 0-8/0-9/0-9-1 protocols to close a connection on receiving a mandatory unroutable message in a transacted session

        Show
        ASF subversion and git services added a comment - Commit 1498641 from Rob Godfrey [ https://svn.apache.org/r1498641 ] QPID-4943 : Introduce a feature for 0-8/0-9/0-9-1 protocols to close a connection on receiving a mandatory unroutable message in a transacted session
        Hide
        Robbie Gemmell added a comment -

        Looks good after the above change.

        Show
        Robbie Gemmell added a comment - Looks good after the above change.
        Hide
        ASF subversion and git services added a comment -

        Commit 1497347 from orudyy@apache.org
        [ https://svn.apache.org/r1497347 ]

        QPID-4943: Allow setting client connection property 'qpid.close_when_no_route' as string and boolean

        Show
        ASF subversion and git services added a comment - Commit 1497347 from orudyy@apache.org [ https://svn.apache.org/r1497347 ] QPID-4943 : Allow setting client connection property 'qpid.close_when_no_route' as string and boolean
        Hide
        Alex Rudyy added a comment -

        Robbie,
        Could you please review the changes?

        Show
        Alex Rudyy added a comment - Robbie, Could you please review the changes?
        Hide
        ASF subversion and git services added a comment -

        Commit 1495511 from orudyy@apache.org
        [ https://svn.apache.org/r1495511 ]

        QPID-4943: Introduce a feature for 0-8/0-9/0-9-1 protocols to close a connection on receiving a mandatory unroutable message in a transacted session

        Show
        ASF subversion and git services added a comment - Commit 1495511 from orudyy@apache.org [ https://svn.apache.org/r1495511 ] QPID-4943 : Introduce a feature for 0-8/0-9/0-9-1 protocols to close a connection on receiving a mandatory unroutable message in a transacted session

          People

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

            Dates

            • Created:
              Updated:
              Resolved:

              Development