public abstract class BasicMessageConsumer<U> extends Closeable implements MessageConsumer
| Modifier | Constructor and Description |
|---|---|
protected |
BasicMessageConsumer(int channelId,
AMQConnection connection,
AMQDestination destination,
String messageSelector,
boolean noLocal,
MessageFactoryRegistry messageFactory,
AMQSession session,
Map<String,Object> rawSelector,
int prefetchHigh,
int prefetchLow,
boolean exclusive,
int acknowledgeMode,
boolean browseOnly,
boolean autoClose) |
| Modifier and Type | Method and Description |
|---|---|
void |
addBindingKey(AMQDestination amqd,
String routingKey) |
void |
clearReceiveQueue() |
void |
close()
Closes this object.
|
void |
close(boolean sendClose) |
abstract AbstractJMSMessage |
createJMSMessageFromUnprocessedMessage(AMQMessageDelegateFactory delegateFactory,
U messageFrame) |
String |
debugIdentity() |
List<Long> |
drainReceiverQueueAndRetrieveDeliveryTags() |
void |
failedOverPost() |
void |
failedOverPre()
to be called when a failover has occured
|
int |
getAcknowledgeMode()
The acknowledge mode in force for this consumer.
|
Map<String,Object> |
getArguments() |
protected int |
getChannelId()
We need to know the channel id when constructing frames
|
protected AMQConnection |
getConnection()
The connection being used by this consumer
|
int |
getConsumerTag()
The consumer tag allows us to close the consumer by sending a jmsCancel method to the broker
|
AMQDestination |
getDestination() |
protected MessageFactoryRegistry |
getMessageFactory() |
Object |
getMessageFromQueue(long l) |
javax.jms.MessageListener |
getMessageListener() |
String |
getMessageSelector() |
MessageFilter |
getMessageSelectorFilter() |
int |
getPrefetch() |
int |
getPrefetchHigh() |
int |
getPrefetchLow() |
String |
getQueuename() |
AMQSession |
getSession() |
protected BlockingQueue |
getSynchronousQueue()
Used in the blocking receive methods to receive a message from the Session thread.
|
boolean |
isAutoClose() |
boolean |
isBrowseOnly() |
protected boolean |
isDurableSubscriber() |
boolean |
isExclusive()
We store the exclusive field in order to be able to reuse it when resubscribing in the event of failover
|
protected boolean |
isMessageListenerSet() |
boolean |
isNoLocal() |
boolean |
isReceiving() |
protected void |
markAsDurableSubscriber() |
void |
notifyCloseMessage(CloseConsumerMessage closeMessage) |
void |
notifyMessage(AbstractJMSMessage jmsMessage) |
protected void |
preDeliver(AbstractJMSMessage msg) |
javax.jms.Message |
receive() |
javax.jms.Message |
receive(long l) |
javax.jms.Message |
receiveNoWait() |
void |
setConsumerTag(int consumerTag) |
protected void |
setDestination(AMQDestination destination) |
void |
setMessageListener(javax.jms.MessageListener messageListener) |
void |
setQueuename(String queuename) |
checkNotClosed, isClosed, isClosing, setClosed, setClosingprotected BasicMessageConsumer(int channelId,
AMQConnection connection,
AMQDestination destination,
String messageSelector,
boolean noLocal,
MessageFactoryRegistry messageFactory,
AMQSession session,
Map<String,Object> rawSelector,
int prefetchHigh,
int prefetchLow,
boolean exclusive,
int acknowledgeMode,
boolean browseOnly,
boolean autoClose)
throws javax.jms.JMSException
javax.jms.JMSExceptionpublic AMQDestination getDestination()
public String getMessageSelector() throws javax.jms.JMSException
getMessageSelector in interface javax.jms.MessageConsumerjavax.jms.JMSExceptionpublic javax.jms.MessageListener getMessageListener()
throws javax.jms.JMSException
getMessageListener in interface javax.jms.MessageConsumerjavax.jms.JMSExceptionpublic int getAcknowledgeMode()
protected boolean isMessageListenerSet()
public void setMessageListener(javax.jms.MessageListener messageListener)
throws javax.jms.JMSException
setMessageListener in interface javax.jms.MessageConsumerjavax.jms.JMSExceptionpublic int getPrefetch()
public int getPrefetchHigh()
public int getPrefetchLow()
public boolean isNoLocal()
public boolean isExclusive()
public boolean isReceiving()
public MessageFilter getMessageSelectorFilter()
public javax.jms.Message receive()
throws javax.jms.JMSException
receive in interface javax.jms.MessageConsumerjavax.jms.JMSExceptionpublic javax.jms.Message receive(long l)
throws javax.jms.JMSException
receive in interface javax.jms.MessageConsumerjavax.jms.JMSExceptionpublic Object getMessageFromQueue(long l) throws InterruptedException
InterruptedExceptionpublic javax.jms.Message receiveNoWait()
throws javax.jms.JMSException
receiveNoWait in interface javax.jms.MessageConsumerjavax.jms.JMSExceptionpublic void close()
throws javax.jms.JMSException
Closeablepublic void close(boolean sendClose)
throws javax.jms.JMSException
javax.jms.JMSExceptionpublic void notifyCloseMessage(CloseConsumerMessage closeMessage)
closeMessage - this message signals that we should close the browserpublic abstract AbstractJMSMessage createJMSMessageFromUnprocessedMessage(AMQMessageDelegateFactory delegateFactory, U messageFrame) throws Exception
Exceptionpublic void notifyMessage(AbstractJMSMessage jmsMessage)
jmsMessage - this message has already been processed so can't redo preDeliverprotected void preDeliver(AbstractJMSMessage msg)
public int getConsumerTag()
public void setConsumerTag(int consumerTag)
public AMQSession getSession()
public boolean isAutoClose()
public boolean isBrowseOnly()
public String debugIdentity()
public void clearReceiveQueue()
public List<Long> drainReceiverQueueAndRetrieveDeliveryTags()
public String getQueuename()
public void setQueuename(String queuename)
public void addBindingKey(AMQDestination amqd, String routingKey) throws QpidException
QpidExceptionpublic void failedOverPre()
public void failedOverPost()
protected AMQConnection getConnection()
protected void setDestination(AMQDestination destination)
protected int getChannelId()
protected BlockingQueue getSynchronousQueue()
Or to notify of errors.
Argument true indicates we want strict FIFO semantics
protected MessageFactoryRegistry getMessageFactory()
protected boolean isDurableSubscriber()
protected void markAsDurableSubscriber()
Copyright © 2006–2017 The Apache Software Foundation. All rights reserved.