javax.jms

## Class QueueRequestor

- java.lang.Object
- - javax.jms.QueueRequestor

-     public class QueueRequestor
      extends Object

  The `QueueRequestor` helper class simplifies making service requests.

  The `QueueRequestor` constructor is given a non-transacted `QueueSession` and a destination `Queue`. It creates a `TemporaryQueue` for the responses and provides a `request` method that sends the request message and waits for its reply.

  This is a very basic request/reply abstraction which assumes the session is non-transacted with a delivery mode of either AUTO_ACKNOWLEDGE or DUPS_OK_ACKNOWLEDGE. It is expected that most applications will create less basic implementations.

  Since:
    JMS 1.0
  See Also:
    `TopicRequestor`

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `QueueRequestor(QueueSession session, Queue queue)` Constructor for the `QueueRequestor` class.

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `close()` Closes the `QueueRequestor` and its session.
    `Message` | `request(Message message)` Sends a request and waits for a reply.

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### QueueRequestor

          public QueueRequestor(QueueSession session,
                        Queue queue)
                         throws JMSException

      Constructor for the `QueueRequestor` class.

      This implementation assumes the session parameter to be non-transacted, with a delivery mode of either `AUTO_ACKNOWLEDGE` or `DUPS_OK_ACKNOWLEDGE`.

      Parameters:
        `session` - the `QueueSession` the queue belongs to
        `queue` - the queue to perform the request/reply call on
      Throws:
        `JMSException` - if the JMS provider fails to create the `QueueRequestor` due to some internal error.
        `InvalidDestinationException` - if an invalid queue is specified.

  - ### Method Detail

    - #### request

          public Message request(Message message)
                          throws JMSException

      Sends a request and waits for a reply. The temporary queue is used for the `JMSReplyTo` destination, and only one reply per request is expected.
      Parameters:
        `message` - the message to send
      Returns:
        the reply message
      Throws:
        `JMSException` - if the JMS provider fails to complete the request due to some internal error.

    - #### close

          public void close()
                     throws JMSException

      Closes the `QueueRequestor` and its session.

      Since a provider may allocate some resources on behalf of a `QueueRequestor` outside the Java virtual machine, clients should close them when they are not needed. Relying on garbage collection to eventually reclaim these resources may not be timely enough.

      Note that this method closes the `QueueSession` object passed to the `QueueRequestor` constructor.

      Throws:
        `JMSException` - if the JMS provider fails to close the `QueueRequestor` due to some internal error.

Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved.