public class QueueImpl extends Object implements Queue
Completely non blocking between adding to queue and delivering to consumers.
Modifier and Type | Field and Description |
---|---|
static int |
CHECK_QUEUE_SIZE_PERIOD |
static int |
DEFAULT_FLUSH_LIMIT |
protected AtomicInteger |
deliveringCount |
static int |
DELIVERY_TIMEOUT
If The system gets slow for any reason, this is the maximum time a Delivery or
or depage executor should be hanging on
|
static int |
MAX_DELIVERIES_IN_LOOP |
static int |
NUM_PRIORITIES |
static int |
REDISTRIBUTOR_BATCH_SIZE |
Constructor and Description |
---|
QueueImpl(long id,
SimpleString address,
SimpleString name,
Filter filter,
PageSubscription pageSubscription,
SimpleString user,
boolean durable,
boolean temporary,
boolean autoCreated,
ScheduledExecutorService scheduledExecutor,
PostOffice postOffice,
StorageManager storageManager,
HierarchicalRepository<AddressSettings> addressSettingsRepository,
Executor executor) |
QueueImpl(long id,
SimpleString address,
SimpleString name,
Filter filter,
SimpleString user,
boolean durable,
boolean temporary,
boolean autoCreated,
ScheduledExecutorService scheduledExecutor,
PostOffice postOffice,
StorageManager storageManager,
HierarchicalRepository<AddressSettings> addressSettingsRepository,
Executor executor) |
Modifier and Type | Method and Description |
---|---|
void |
acknowledge(MessageReference ref) |
void |
acknowledge(MessageReference ref,
AckReason reason) |
void |
acknowledge(Transaction tx,
MessageReference ref) |
void |
acknowledge(Transaction tx,
MessageReference ref,
AckReason reason) |
void |
addConsumer(Consumer consumer) |
void |
addHead(List<MessageReference> refs,
boolean scheduling) |
void |
addHead(MessageReference ref,
boolean scheduling) |
void |
addRedistributor(long delay) |
void |
addTail(MessageReference ref) |
void |
addTail(MessageReference ref,
boolean direct) |
org.apache.activemq.artemis.core.server.impl.QueueImpl.QueueBrowserIterator |
browserIterator() |
void |
cancel(MessageReference reference,
long timeBase) |
void |
cancel(Transaction tx,
MessageReference reference) |
void |
cancel(Transaction tx,
MessageReference reference,
boolean ignoreRedeliveryCheck) |
void |
cancelRedistributor() |
boolean |
changeReferencePriority(long messageID,
byte newPriority) |
int |
changeReferencesPriority(Filter filter,
byte newPriority) |
boolean |
checkRedelivery(MessageReference reference,
long timeBase,
boolean ignoreRedeliveryDelay) |
void |
close() |
String |
debug() |
void |
decDelivering() |
void |
decDelivering(int size) |
int |
deleteAllReferences() |
int |
deleteAllReferences(int flushLimit) |
int |
deleteMatchingReferences(Filter filter) |
int |
deleteMatchingReferences(int flushLimit,
Filter filter1) |
void |
deleteQueue() |
void |
deleteQueue(boolean removeConsumers) |
boolean |
deleteReference(long messageID) |
void |
deliverAsync() |
void |
deliverNow() |
void |
deliverScheduledMessages()
cancels scheduled messages and send them to the head of the queue.
|
void |
destroyPaging() |
boolean |
equals(Object other) |
void |
expire(MessageReference ref) |
boolean |
expireReference(long messageID) |
void |
expireReferences() |
int |
expireReferences(Filter filter)
Expire all the references in the queue which matches the filter
|
protected void |
finalize() |
boolean |
flushExecutor() |
void |
forceDelivery()
This method will make sure that any pending message (including paged message) will be delivered
|
SimpleString |
getAddress() |
int |
getConsumerCount() |
Set<Consumer> |
getConsumers() |
ReferenceCounter |
getConsumersRefCount() |
int |
getDeliveringCount() |
Map<String,List<MessageReference>> |
getDeliveringMessages()
Return a Map consisting of consumer.toString and its messages
Delivering message is a property of the consumer, this method will aggregate the results per Server's consumer object
|
Executor |
getExecutor() |
SimpleString |
getExpiryAddress() |
Filter |
getFilter() |
List<SimpleString> |
getGroupsUsed()
For testing only
|
long |
getID() |
long |
getMessageCount() |
long |
getMessagesAcknowledged() |
long |
getMessagesAdded() |
long |
getMessagesExpired() |
long |
getMessagesKilled() |
SimpleString |
getName() |
int |
getNumberOfReferences()
Used on testing only *
|
PageSubscription |
getPageSubscription() |
float |
getRate() |
MessageReference |
getReference(long id1) |
SimpleString |
getRoutingName() |
int |
getScheduledCount() |
List<MessageReference> |
getScheduledMessages() |
SimpleString |
getUniqueName() |
SimpleString |
getUser() |
int |
hashCode() |
boolean |
hasMatchingConsumer(ServerMessage message) |
void |
incrementMesssagesAdded() |
boolean |
isAutoCreated() |
boolean |
isDirectDeliver() |
boolean |
isDurable() |
boolean |
isExclusive() |
boolean |
isExpirationRedundant() |
boolean |
isInternalQueue()
We can't send stuff to DLQ on queues used on clustered-bridge-communication
|
boolean |
isPaused() |
boolean |
isPersistedPause()
if the pause was persisted
|
boolean |
isTemporary() |
LinkedListIterator<MessageReference> |
iterator()
It will iterate thorugh memory only (not paging)
|
boolean |
moveReference(long messageID,
SimpleString toAddress) |
boolean |
moveReference(long messageID,
SimpleString toAddress,
boolean rejectDuplicate) |
int |
moveReferences(Filter filter,
SimpleString toAddress) |
int |
moveReferences(int flushLimit,
Filter filter,
SimpleString toAddress,
boolean rejectDuplicates) |
int |
moveReferencesBetweenSnFQueues(SimpleString queueSuffix) |
void |
pause()
Pauses the queue.
|
void |
pause(boolean persist)
Pauses the queue.
|
void |
postAcknowledge(MessageReference ref) |
void |
reacknowledge(Transaction tx,
MessageReference ref) |
protected void |
refAdded(MessageReference ref) |
void |
referenceHandled() |
protected void |
refRemoved(MessageReference ref) |
void |
reload(MessageReference ref) |
void |
reloadPause(long recordID) |
void |
removeConsumer(Consumer consumer) |
MessageReference |
removeReferenceWithID(long id1) |
void |
resetAllIterators() |
void |
resetMessagesAcknowledged() |
void |
resetMessagesAdded() |
void |
resetMessagesExpired() |
void |
resetMessagesKilled() |
void |
resume()
Resumes the delivery of message for the queue.
|
int |
retryMessages(Filter filter) |
void |
route(ServerMessage message,
RoutingContext context) |
void |
routeWithAck(ServerMessage message,
RoutingContext context) |
protected boolean |
scheduleIfPossible(MessageReference ref) |
int |
sendMessagesToDeadLetterAddress(Filter filter) |
boolean |
sendMessageToDeadLetterAddress(long messageID) |
void |
sendToDeadLetterAddress(Transaction tx,
MessageReference ref) |
void |
setConsumersRefCount(ReferenceCounter referenceCounter)
This will set a reference counter for every consumer present on the queue.
|
void |
setInternalQueue(boolean internalQueue) |
String |
toString() |
void |
unproposed(SimpleString groupID) |
public static final int REDISTRIBUTOR_BATCH_SIZE
public static final int NUM_PRIORITIES
public static final int MAX_DELIVERIES_IN_LOOP
public static final int CHECK_QUEUE_SIZE_PERIOD
public static final int DELIVERY_TIMEOUT
public static final int DEFAULT_FLUSH_LIMIT
protected final AtomicInteger deliveringCount
public QueueImpl(long id, SimpleString address, SimpleString name, Filter filter, SimpleString user, boolean durable, boolean temporary, boolean autoCreated, ScheduledExecutorService scheduledExecutor, PostOffice postOffice, StorageManager storageManager, HierarchicalRepository<AddressSettings> addressSettingsRepository, Executor executor)
public QueueImpl(long id, SimpleString address, SimpleString name, Filter filter, PageSubscription pageSubscription, SimpleString user, boolean durable, boolean temporary, boolean autoCreated, ScheduledExecutorService scheduledExecutor, PostOffice postOffice, StorageManager storageManager, HierarchicalRepository<AddressSettings> addressSettingsRepository, Executor executor)
public List<SimpleString> getGroupsUsed()
public String debug()
public SimpleString getRoutingName()
public SimpleString getUniqueName()
public SimpleString getUser()
public boolean isExclusive()
public void route(ServerMessage message, RoutingContext context) throws Exception
public void routeWithAck(ServerMessage message, RoutingContext context)
routeWithAck
in interface Bindable
public void setConsumersRefCount(ReferenceCounter referenceCounter)
Queue
setConsumersRefCount
in interface Queue
public ReferenceCounter getConsumersRefCount()
getConsumersRefCount
in interface Queue
public boolean isTemporary()
isTemporary
in interface Queue
public boolean isAutoCreated()
isAutoCreated
in interface Queue
public SimpleString getName()
public SimpleString getAddress()
getAddress
in interface Queue
public PageSubscription getPageSubscription()
getPageSubscription
in interface Queue
public void unproposed(SimpleString groupID)
unproposed
in interface Queue
public void addHead(MessageReference ref, boolean scheduling)
public void addHead(List<MessageReference> refs, boolean scheduling)
public void reload(MessageReference ref)
public void addTail(MessageReference ref)
public void addTail(MessageReference ref, boolean direct)
protected boolean scheduleIfPossible(MessageReference ref)
public void forceDelivery()
Queue
forceDelivery
in interface Queue
public void deliverAsync()
deliverAsync
in interface Queue
public Executor getExecutor()
getExecutor
in interface Queue
public void deliverNow()
public boolean flushExecutor()
flushExecutor
in interface Queue
public void addConsumer(Consumer consumer) throws Exception
addConsumer
in interface Queue
Exception
public void removeConsumer(Consumer consumer)
removeConsumer
in interface Queue
public void addRedistributor(long delay)
addRedistributor
in interface Queue
public void cancelRedistributor() throws Exception
cancelRedistributor
in interface Queue
Exception
protected void finalize() throws Throwable
public int getConsumerCount()
getConsumerCount
in interface Queue
public Set<Consumer> getConsumers()
getConsumers
in interface Queue
public boolean hasMatchingConsumer(ServerMessage message)
hasMatchingConsumer
in interface Queue
public LinkedListIterator<MessageReference> iterator()
Queue
public org.apache.activemq.artemis.core.server.impl.QueueImpl.QueueBrowserIterator browserIterator()
browserIterator
in interface Queue
public MessageReference removeReferenceWithID(long id1) throws Exception
removeReferenceWithID
in interface Queue
Exception
public MessageReference getReference(long id1) throws ActiveMQException
getReference
in interface Queue
ActiveMQException
public long getMessageCount()
getMessageCount
in interface Queue
public int getScheduledCount()
getScheduledCount
in interface Queue
public List<MessageReference> getScheduledMessages()
getScheduledMessages
in interface Queue
public Map<String,List<MessageReference>> getDeliveringMessages()
Queue
getDeliveringMessages
in interface Queue
public int getDeliveringCount()
getDeliveringCount
in interface Queue
public void acknowledge(MessageReference ref) throws Exception
acknowledge
in interface Queue
Exception
public void acknowledge(MessageReference ref, AckReason reason) throws Exception
acknowledge
in interface Queue
Exception
public void acknowledge(Transaction tx, MessageReference ref) throws Exception
acknowledge
in interface Queue
Exception
public void acknowledge(Transaction tx, MessageReference ref, AckReason reason) throws Exception
acknowledge
in interface Queue
Exception
public void reacknowledge(Transaction tx, MessageReference ref) throws Exception
reacknowledge
in interface Queue
Exception
public void cancel(Transaction tx, MessageReference reference)
public void cancel(Transaction tx, MessageReference reference, boolean ignoreRedeliveryCheck)
public void cancel(MessageReference reference, long timeBase) throws Exception
public void expire(MessageReference ref) throws Exception
public SimpleString getExpiryAddress()
getExpiryAddress
in interface Queue
public void referenceHandled()
referenceHandled
in interface Queue
public void incrementMesssagesAdded()
incrementMesssagesAdded
in interface Queue
public void deliverScheduledMessages() throws ActiveMQException
Queue
deliverScheduledMessages
in interface Queue
ActiveMQException
public long getMessagesAdded()
getMessagesAdded
in interface Queue
public long getMessagesAcknowledged()
getMessagesAcknowledged
in interface Queue
public long getMessagesExpired()
getMessagesExpired
in interface Queue
public long getMessagesKilled()
getMessagesKilled
in interface Queue
public int deleteAllReferences() throws Exception
deleteAllReferences
in interface Queue
Exception
public int deleteAllReferences(int flushLimit) throws Exception
deleteAllReferences
in interface Queue
Exception
public int deleteMatchingReferences(Filter filter) throws Exception
deleteMatchingReferences
in interface Queue
Exception
public int deleteMatchingReferences(int flushLimit, Filter filter1) throws Exception
deleteMatchingReferences
in interface Queue
Exception
public void destroyPaging() throws Exception
destroyPaging
in interface Queue
Exception
public boolean deleteReference(long messageID) throws Exception
deleteReference
in interface Queue
Exception
public void deleteQueue() throws Exception
deleteQueue
in interface Queue
Exception
public void deleteQueue(boolean removeConsumers) throws Exception
deleteQueue
in interface Queue
Exception
public boolean expireReference(long messageID) throws Exception
expireReference
in interface Queue
Exception
public int expireReferences(Filter filter) throws Exception
Queue
expireReferences
in interface Queue
Exception
public void expireReferences()
expireReferences
in interface Queue
public boolean isExpirationRedundant()
public boolean sendMessageToDeadLetterAddress(long messageID) throws Exception
sendMessageToDeadLetterAddress
in interface Queue
Exception
public int sendMessagesToDeadLetterAddress(Filter filter) throws Exception
sendMessagesToDeadLetterAddress
in interface Queue
Exception
public boolean moveReference(long messageID, SimpleString toAddress) throws Exception
moveReference
in interface Queue
Exception
public boolean moveReference(long messageID, SimpleString toAddress, boolean rejectDuplicate) throws Exception
moveReference
in interface Queue
Exception
public int moveReferences(Filter filter, SimpleString toAddress) throws Exception
moveReferences
in interface Queue
Exception
public int moveReferences(int flushLimit, Filter filter, SimpleString toAddress, boolean rejectDuplicates) throws Exception
moveReferences
in interface Queue
Exception
public int moveReferencesBetweenSnFQueues(SimpleString queueSuffix) throws Exception
Exception
public int retryMessages(Filter filter) throws Exception
retryMessages
in interface Queue
Exception
public boolean changeReferencePriority(long messageID, byte newPriority) throws Exception
changeReferencePriority
in interface Queue
Exception
public int changeReferencesPriority(Filter filter, byte newPriority) throws Exception
changeReferencesPriority
in interface Queue
Exception
public void resetAllIterators()
resetAllIterators
in interface Queue
public void pause()
Queue
public void reloadPause(long recordID)
reloadPause
in interface Queue
public void pause(boolean persist)
Queue
public void resume()
Queue
public boolean isPaused()
public boolean isPersistedPause()
Queue
isPersistedPause
in interface Queue
public boolean isDirectDeliver()
isDirectDeliver
in interface Queue
public boolean isInternalQueue()
Queue
isInternalQueue
in interface Queue
public void setInternalQueue(boolean internalQueue)
setInternalQueue
in interface Queue
internalQueue
- the internalQueue to setprotected void refRemoved(MessageReference ref)
protected void refAdded(MessageReference ref)
public boolean checkRedelivery(MessageReference reference, long timeBase, boolean ignoreRedeliveryDelay) throws Exception
checkRedelivery
in interface Queue
Exception
public int getNumberOfReferences()
public void sendToDeadLetterAddress(Transaction tx, MessageReference ref) throws Exception
sendToDeadLetterAddress
in interface Queue
Exception
public void postAcknowledge(MessageReference ref)
postAcknowledge
in interface Queue
public void resetMessagesAdded()
resetMessagesAdded
in interface Queue
public void resetMessagesAcknowledged()
resetMessagesAcknowledged
in interface Queue
public void resetMessagesExpired()
resetMessagesExpired
in interface Queue
public void resetMessagesKilled()
resetMessagesKilled
in interface Queue
public void decDelivering()
public void decDelivering(int size)
decDelivering
in interface Queue
Copyright © 2017 JBoss by Red Hat. All rights reserved.