com.j_spaces.jms
Class GSQueueReceiverImpl
java.lang.Object
com.j_spaces.jms.GSMessageConsumerImpl
com.j_spaces.jms.GSQueueReceiverImpl
- All Implemented Interfaces:
- MessageConsumer, QueueReceiver
public class GSQueueReceiverImpl
- extends GSMessageConsumerImpl
- implements QueueReceiver
GigaSpaces implementation of the javax.jms.QueueReceiver
interface.
A client uses a QueueReceiver
object to receive messages that
have been delivered to a queue.
Although it is possible to have multiple QueueReceiver
s
for the same queue, the JMS API does not define how messages are
distributed between the QueueReceiver
s.
The GigaSpaces API does not support multiple QueueReceivers for the
same queue.
If a QueueReceiver
specifies a message selector, the
messages that are not selected remain on the queue. By definition, a message
selector allows a QueueReceiver
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 QueueReceiver
s without a message selector
will read messages in message producer order.
Creating a MessageConsumer
provides the same features as
creating a QueueReceiver
. A MessageConsumer
object is
recommended for creating new code. The QueueReceiver
is
provided to support existing code.
- See Also:
Session.createConsumer(Destination, String)
,
Session.createConsumer(Destination)
,
QueueSession.createReceiver(Queue, String)
,
QueueSession.createReceiver(Queue)
,
MessageConsumer
Method Summary |
void |
close()
Close the receiver. |
Queue |
getQueue()
Gets the Queue associated with this queue receiver. |
GSQueueReceiverImpl
public GSQueueReceiverImpl(GSSessionImpl sess,
GSQueueImpl queue,
String consumerKey,
String selector,
com.j_spaces.jdbc.ParserManager pManager)
throws JMSException
- Parameters:
sess
- queue
- consumerKey
- selector
- pManager
- ParserManager used for the selector support
- Throws:
JMSException
getQueue
public Queue getQueue()
throws JMSException
- Gets the
Queue
associated with this queue receiver.
- Specified by:
getQueue
in interface QueueReceiver
- Returns:
- this receiver's
Queue
- Throws:
JMSException
- if the JMS provider fails to get the queue for
this queue receiver
due to some internal error.- See Also:
QueueReceiver.getQueue()
close
public void close()
throws JMSException
- Close the receiver.
This call blocks until a receive or message listener in progress has
completed. A blocked consumer receive call returns
null
when this consumer is closed.
- Specified by:
close
in interface MessageConsumer
- Overrides:
close
in class GSMessageConsumerImpl
- Throws:
JMSException
- if this consumer can't be closed- See Also:
MessageConsumer.close()