Qpid
  1. Qpid
  2. QPID-4312

[Java client] [0-8/0-9/0-9-1] add option for performing verification of queue existence when sending with a MessageProducer to a Queue destination on a generic Session

    Details

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

      Description

      If a MessageProducer is created against a Queue object on a generic Session on an 0-8/0-9/0-9-1 connection using Binding URLs and used to send to a queue which does not actually exist on the broker, the client is not currently able to convey this (except via an asynchronous '312: No route' exception on the ExceptionListener). If however a QueueSender is created on a QueueSession and then used to call send() then the existence of the queue on the broker is validated during the send method the first time each Queue object is encountered. The option should be added to do the same for Queue destinations on generic Sessions using MessageProducers.

        Activity

        Hide
        Rob Godfrey added a comment -

        Validation checking already occurs when using a QueueSession/QueueSender.

        Adding a system property and connection URL option to control checking whether a Queue address is bound at the point of the message first being sent to a given destination.

        SystemProperty: ClientProperties.VERIFY_QUEUE_ON_SEND = "qpid.verify_queue_on_send";
        Connection URL Option: ConnectionURL.OPTIONS_VERIFY_QUEUE_ON_SEND = "verifyQueueOnSend";

        By default this validation is not enabled (although the validation on QueueSenders is enabled by default).

        Show
        Rob Godfrey added a comment - Validation checking already occurs when using a QueueSession/QueueSender. Adding a system property and connection URL option to control checking whether a Queue address is bound at the point of the message first being sent to a given destination. SystemProperty: ClientProperties.VERIFY_QUEUE_ON_SEND = "qpid.verify_queue_on_send"; Connection URL Option: ConnectionURL.OPTIONS_VERIFY_QUEUE_ON_SEND = "verifyQueueOnSend"; By default this validation is not enabled (although the validation on QueueSenders is enabled by default).
        Hide
        Rob Godfrey added a comment -

        Robbie, can you review the change at:

        http://svn.apache.org/viewvc?rev=1442128&view=rev

        Show
        Rob Godfrey added a comment - Robbie, can you review the change at: http://svn.apache.org/viewvc?rev=1442128&view=rev
        Hide
        Robbie Gemmell added a comment -

        Hi Rob,

        Looks good overall. I reduced the visibility and narrowed the arguments on the queue validation methods, fixed up the log messages, and added some unit tests.

        Can you review my changes?

        svn.apache.org/viewvc?view=revision&revision=1442602

        Show
        Robbie Gemmell added a comment - Hi Rob, Looks good overall. I reduced the visibility and narrowed the arguments on the queue validation methods, fixed up the log messages, and added some unit tests. Can you review my changes? svn.apache.org/viewvc?view=revision&revision=1442602

          People

          • Assignee:
            Rob Godfrey
            Reporter:
            Robbie Gemmell
          • Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved:

              Development