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, setClosing
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) throws javax.jms.JMSException
javax.jms.JMSException
public AMQDestination getDestination()
public String getMessageSelector() throws javax.jms.JMSException
getMessageSelector
in interface javax.jms.MessageConsumer
javax.jms.JMSException
public javax.jms.MessageListener getMessageListener() throws javax.jms.JMSException
getMessageListener
in interface javax.jms.MessageConsumer
javax.jms.JMSException
public int getAcknowledgeMode()
protected boolean isMessageListenerSet()
public void setMessageListener(javax.jms.MessageListener messageListener) throws javax.jms.JMSException
setMessageListener
in interface javax.jms.MessageConsumer
javax.jms.JMSException
public 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.MessageConsumer
javax.jms.JMSException
public javax.jms.Message receive(long l) throws javax.jms.JMSException
receive
in interface javax.jms.MessageConsumer
javax.jms.JMSException
public Object getMessageFromQueue(long l) throws InterruptedException
InterruptedException
public javax.jms.Message receiveNoWait() throws javax.jms.JMSException
receiveNoWait
in interface javax.jms.MessageConsumer
javax.jms.JMSException
public void close() throws javax.jms.JMSException
Closeable
public void close(boolean sendClose) throws javax.jms.JMSException
javax.jms.JMSException
public void notifyCloseMessage(CloseConsumerMessage closeMessage)
closeMessage
- this message signals that we should close the browserpublic abstract AbstractJMSMessage createJMSMessageFromUnprocessedMessage(AMQMessageDelegateFactory delegateFactory, U messageFrame) throws Exception
Exception
public 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
QpidException
public 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–2016 The Apache Software Foundation. All rights reserved.