blob: 20d3300b82d41ecb6d3cba331ed9b0f4d2e070a3 [file] [log] [blame]
/*
* The contents of this file are subject to the terms
* of the Common Development and Distribution License
* (the License). You may not use this file except in
* compliance with the License.
*
* You can obtain a copy of the license at
* https://glassfish.dev.java.net/public/CDDLv1.0.html or
* glassfish/bootstrap/legal/CDDLv1.0.txt.
* See the License for the specific language governing
* permissions and limitations under the License.
*
* When distributing Covered Code, include this CDDL
* Header Notice in each file and include the License file
* at glassfish/bootstrap/legal/CDDLv1.0.txt.
* If applicable, add the following below the CDDL Header,
* with the fields enclosed by brackets [] replaced by
* you own identifying information:
* "Portions Copyrighted [year] [name of copyright owner]"
*
* Copyright 2006 Sun Microsystems, Inc. All rights reserved.
*/
package javax.jms;
/** A client uses a <CODE>QueueReceiver</CODE> object to receive messages that
* have been delivered to a queue.
*
* <P>Although it is possible to have multiple <CODE>QueueReceiver</CODE>s
* for the same queue, the JMS API does not define how messages are
* distributed between the <CODE>QueueReceiver</CODE>s.
*
* <P>If a <CODE>QueueReceiver</CODE> specifies a message selector, the
* messages that are not selected remain on the queue. By definition, a message
* selector allows a <CODE>QueueReceiver</CODE> to skip messages. This
* means that when the skipped messages are eventually read, the total ordering
* of the reads does not retain the partial order defined by each message
* producer. Only <CODE>QueueReceiver</CODE>s without a message selector
* will read messages in message producer order.
*
* <P>Creating a <CODE>MessageConsumer</CODE> provides the same features as
* creating a <CODE>QueueReceiver</CODE>. A <CODE>MessageConsumer</CODE> object is
* recommended for creating new code. The <CODE>QueueReceiver</CODE> is
* provided to support existing code.
*
* @version 1.1 February 2, 2002
* @author Mark Hapner
* @author Rich Burridge
* @author Kate Stout
*
* @see javax.jms.Session#createConsumer(Destination, String)
* @see javax.jms.Session#createConsumer(Destination)
* @see javax.jms.QueueSession#createReceiver(Queue, String)
* @see javax.jms.QueueSession#createReceiver(Queue)
* @see javax.jms.MessageConsumer
*/
public interface QueueReceiver extends MessageConsumer {
/** Gets the <CODE>Queue</CODE> associated with this queue receiver.
*
* @return this receiver's <CODE>Queue</CODE>
*
* @exception JMSException if the JMS provider fails to get the queue for
* this queue receiver
* due to some internal error.
*/
Queue
getQueue() throws JMSException;
}