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

        Robbie Gemmell created issue -
        Rob Godfrey made changes -
        Field Original Value New Value
        Assignee Rob Godfrey [ rgodfrey ]
        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).
        Rob Godfrey made changes -
        Fix Version/s 0.21 [ 12323549 ]
        Rob Godfrey made changes -
        Status Open [ 1 ] In Progress [ 3 ]
        Rob Godfrey made changes -
        Status In Progress [ 3 ] Ready To Review [ 10006 ]
        Rob Godfrey made changes -
        Assignee Rob Godfrey [ rgodfrey ] Robbie Gemmell [ gemmellr ]
        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
        Robbie Gemmell made changes -
        Assignee Robbie Gemmell [ gemmellr ] Rob Godfrey [ rgodfrey ]
        Rob Godfrey made changes -
        Status Ready To Review [ 10006 ] Resolved [ 5 ]
        Resolution Fixed [ 1 ]
        Robbie Gemmell made changes -
        Summary [Java client] [0-8/0-9/0-9-1] add option for performing verification of queue existence during creation of a MessageProducer for a Queue destination on a generic Session [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
        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 the queue does not actually exist on the broker, the client is not currently able to convey this. 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.
        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.

          People

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

            Dates

            • Created:
              Updated:
              Resolved:

              Development