Package jakarta.jms

Class TopicRequestor


  • public class TopicRequestor
    extends Object
    The TopicRequestor helper class simplifies making service requests.

    The TopicRequestor constructor is given a non-transacted TopicSession and a destination Topic. It creates a TemporaryTopic 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
    Version:
    Jakarta Messaging 2.0
    See Also:
    QueueRequestor
    • Constructor Detail

      • TopicRequestor

        public TopicRequestor​(TopicSession session,
                              Topic topic)
                       throws JMSException
        Constructor for the TopicRequestor 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 TopicSession the topic belongs to
        topic - the topic to perform the request/reply call on
        Throws:
        JMSException - if the Jakarta Messaging provider fails to create the TopicRequestor due to some internal error.
        InvalidDestinationException - if an invalid topic is specified.
    • Method Detail

      • request

        public Message request​(Message message)
                        throws JMSException
        Sends a request and waits for a reply. The temporary topic is used for the JMSReplyTo destination; the first reply is returned, and any following replies are discarded.
        Parameters:
        message - the message to send
        Returns:
        the reply message
        Throws:
        JMSException - if the Jakarta Messaging provider fails to complete the request due to some internal error.
      • close

        public void close()
                   throws JMSException
        Closes the TopicRequestor and its session.

        Since a provider may allocate some resources on behalf of a TopicRequestor 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 TopicSession object passed to the TopicRequestor constructor.

        Throws:
        JMSException - if the Jakarta Messaging provider fails to close the TopicRequestor due to some internal error.