public class ClientConsumerImpl extends Object implements ClientConsumerInternal
Modifier and Type | Field and Description |
---|---|
static long |
CLOSE_TIMEOUT_MILLISECONDS |
static SimpleString |
FORCED_DELIVERY_MESSAGE |
static int |
NUM_PRIORITIES |
Constructor and Description |
---|
ClientConsumerImpl(ClientSessionInternal session,
long id,
SimpleString queueName,
SimpleString filterString,
boolean browseOnly,
int clientWindowSize,
int ackBatchSize,
TokenBucketLimiter rateLimiter,
Executor executor,
Executor flowControlExecutor,
Channel channel,
SessionQueueQueryResponseMessage queueInfo,
ClassLoader contextClassLoader) |
Modifier and Type | Method and Description |
---|---|
void |
acknowledge(ClientMessage message) |
void |
cleanUp() |
void |
clear(boolean waitForOnMessage) |
void |
clearAtFailover() |
void |
close()
Closes the consumer.
|
void |
flowControl(int messageBytes,
boolean discountSlowConsumer)
LargeMessageBuffer will call flowcontrol here, while other handleMessage will also be calling flowControl.
|
void |
flushAcks() |
int |
getBufferSize() |
int |
getClientWindowSize() |
SimpleString |
getFilterString() |
long |
getID() |
Exception |
getLastException()
Returns the last exception thrown by a call to this consumer's MessageHandler.
|
MessageHandler |
getMessageHandler()
Returns the MessageHandler associated to this consumer.
|
SessionQueueQueryResponseMessage |
getQueueInfo() |
SimpleString |
getQueueName() |
ClientSessionInternal |
getSession() |
void |
handleLargeMessage(SessionReceiveLargeMessage packet) |
void |
handleLargeMessageContinuation(SessionReceiveContinuationMessage chunk) |
void |
handleMessage(ClientMessageInternal message) |
boolean |
isBrowseOnly() |
boolean |
isClosed()
Returns whether the consumer is closed or not.
|
ClientMessage |
receive()
Receives a message from a queue.
|
ClientMessage |
receive(long timeout)
Receives a message from a queue.
|
ClientMessage |
receiveImmediate()
Receives a message from a queue.
|
void |
setMessageHandler(MessageHandler theHandler)
Sets the MessageHandler for this consumer to consume messages asynchronously.
|
void |
start() |
void |
stop() |
void |
stop(boolean waitForOnMessage) |
public static final long CLOSE_TIMEOUT_MILLISECONDS
public static final int NUM_PRIORITIES
public static final SimpleString FORCED_DELIVERY_MESSAGE
public ClientConsumerImpl(ClientSessionInternal session, long id, SimpleString queueName, SimpleString filterString, boolean browseOnly, int clientWindowSize, int ackBatchSize, TokenBucketLimiter rateLimiter, Executor executor, Executor flowControlExecutor, Channel channel, SessionQueueQueryResponseMessage queueInfo, ClassLoader contextClassLoader)
public ClientMessage receive(long timeout) throws HornetQException
ClientConsumer
receive
in interface ClientConsumer
timeout
- time (in milliseconds) to wait to receive a messagenull
if the time out expiredHornetQException
- if an exception occurs while waiting to receive a messagepublic ClientMessage receive() throws HornetQException
ClientConsumer
receive
in interface ClientConsumer
HornetQException
- if an exception occurs while waiting to receive a messagepublic ClientMessage receiveImmediate() throws HornetQException
ClientConsumer
null
if no messages are available for this consumer.
Note however that there is a performance cost as an additional network trip to the
server may required to check the queue status.
Calling this method on a closed consumer will throw a HornetQException.receiveImmediate
in interface ClientConsumer
null
if there are no messages in the queue for this consumerHornetQException
- if an exception occurs while waiting to receive a messagepublic MessageHandler getMessageHandler() throws HornetQException
ClientConsumer
getMessageHandler
in interface ClientConsumer
null
HornetQException
- if an exception occurs while getting the MessageHandlerpublic void setMessageHandler(MessageHandler theHandler) throws HornetQException
ClientConsumer
setMessageHandler
in interface ClientConsumer
theHandler
- a MessageHandlerHornetQException
- if an exception occurs while setting the MessageHandlerpublic void close() throws HornetQException
ClientConsumer
close
in interface ClientConsumer
HornetQException
public void cleanUp()
cleanUp
in interface ClientConsumerInternal
public boolean isClosed()
ClientConsumer
isClosed
in interface ClientConsumer
true
if this consumer is closed, false
elsepublic void stop() throws HornetQException
stop
in interface ClientConsumerInternal
HornetQException
public void stop(boolean waitForOnMessage) throws HornetQException
stop
in interface ClientConsumerInternal
HornetQException
public void clearAtFailover()
clearAtFailover
in interface ClientConsumerInternal
public void start()
start
in interface ClientConsumerInternal
public Exception getLastException()
ClientConsumer
getLastException
in interface ClientConsumer
null
public ClientSessionInternal getSession()
getSession
in interface ClientConsumerInternal
public SessionQueueQueryResponseMessage getQueueInfo()
getQueueInfo
in interface ClientConsumerInternal
public long getID()
getID
in interface ClientConsumerInternal
public SimpleString getFilterString()
getFilterString
in interface ClientConsumerInternal
public SimpleString getQueueName()
getQueueName
in interface ClientConsumerInternal
public boolean isBrowseOnly()
isBrowseOnly
in interface ClientConsumerInternal
public void handleMessage(ClientMessageInternal message) throws Exception
handleMessage
in interface ClientConsumerInternal
Exception
public void handleLargeMessage(SessionReceiveLargeMessage packet) throws Exception
handleLargeMessage
in interface ClientConsumerInternal
Exception
public void handleLargeMessageContinuation(SessionReceiveContinuationMessage chunk) throws Exception
handleLargeMessageContinuation
in interface ClientConsumerInternal
Exception
public void clear(boolean waitForOnMessage) throws HornetQException
clear
in interface ClientConsumerInternal
HornetQException
public int getClientWindowSize()
getClientWindowSize
in interface ClientConsumerInternal
public int getBufferSize()
getBufferSize
in interface ClientConsumerInternal
public void acknowledge(ClientMessage message) throws HornetQException
acknowledge
in interface ClientConsumerInternal
HornetQException
public void flushAcks() throws HornetQException
flushAcks
in interface ClientConsumerInternal
HornetQException
public void flowControl(int messageBytes, boolean discountSlowConsumer) throws HornetQException
flowControl
in interface ClientConsumerInternal
discountSlowConsumer
- When dealing with slowConsumers, we need to discount one credit that was pre-sent when the first receive was called. For largeMessage that is only done at the latest packetHornetQException
Copyright © 2012 JBoss by Red Hat. All Rights Reserved.