Class DestinationFilter
- java.lang.Object
-
- org.apache.activemq.broker.region.DestinationFilter
-
- All Implemented Interfaces:
Destination
,org.apache.activemq.command.Message.MessageDestination
,org.apache.activemq.Service
,org.apache.activemq.thread.Task
- Direct Known Subclasses:
AuthorizationDestinationFilter
,CompositeDestinationFilter
,MappedQueueFilter
,VirtualTopicInterceptor
public class DestinationFilter extends Object implements Destination
-
-
Field Summary
Fields Modifier and Type Field Description protected Destination
next
-
Fields inherited from interface org.apache.activemq.broker.region.Destination
DEFAULT_BLOCKED_PRODUCER_WARNING_INTERVAL, DEFAULT_DEAD_LETTER_STRATEGY
-
-
Constructor Summary
Constructors Constructor Description DestinationFilter(Destination next)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
acknowledge(ConnectionContext context, Subscription sub, org.apache.activemq.command.MessageAck ack, org.apache.activemq.broker.region.MessageReference node)
void
addProducer(ConnectionContext context, org.apache.activemq.command.ProducerInfo info)
void
addSubscription(ConnectionContext context, Subscription sub)
org.apache.activemq.command.Message[]
browse()
boolean
canGC()
void
clearPendingMessages(int pendingAdditionsCount)
void
deleteSubscription(ConnectionContext context, SubscriptionKey key)
void
dispose(ConnectionContext context)
void
duplicateFromStore(org.apache.activemq.command.Message message, Subscription subscription)
void
fastProducer(ConnectionContext context, org.apache.activemq.command.ProducerInfo producerInfo)
Called to notify a producer is too fastvoid
gc()
org.apache.activemq.command.ActiveMQDestination
getActiveMQDestination()
<T> T
getAdaptor(Class<? extends T> clazz)
long
getBlockedProducerWarningInterval()
List<Subscription>
getConsumers()
int
getCursorMemoryHighWaterMark()
DeadLetterStrategy
getDeadLetterStrategy()
DestinationStatistics
getDestinationStatistics()
long
getInactiveTimeoutBeforeGC()
int
getMaxAuditDepth()
int
getMaxBrowsePageSize()
int
getMaxPageSize()
int
getMaxProducersToAudit()
org.apache.activemq.usage.MemoryUsage
getMemoryUsage()
MessageStore
getMessageStore()
int
getMinimumMessageSize()
String
getName()
Destination
getNext()
SlowConsumerStrategy
getSlowConsumerStrategy()
TempUsage
getTempUsage()
boolean
isActive()
boolean
isAlwaysRetroactive()
boolean
isDisposed()
boolean
isDoOptimzeMessageStorage()
boolean
isEnableAudit()
void
isFull(ConnectionContext context, org.apache.activemq.usage.Usage<?> usage)
Called when a Usage reaches a limitboolean
isLazyDispatch()
boolean
isPrioritizedMessages()
boolean
isProducerFlowControl()
boolean
isSendDuplicateFromStoreToDLQ()
boolean
isUseCache()
boolean
iterate()
void
markForGC(long timeStamp)
void
messageConsumed(ConnectionContext context, org.apache.activemq.broker.region.MessageReference messageReference)
called when message is consumedvoid
messageDelivered(ConnectionContext context, org.apache.activemq.broker.region.MessageReference messageReference)
Called when message is delivered to the brokervoid
messageDiscarded(ConnectionContext context, Subscription sub, org.apache.activemq.broker.region.MessageReference messageReference)
Called when a message is discarded - e.g.void
messageExpired(ConnectionContext context, PrefetchSubscription prefetchSubscription, org.apache.activemq.broker.region.MessageReference node)
void
messageExpired(ConnectionContext context, Subscription subs, org.apache.activemq.broker.region.MessageReference node)
Inform the Destination a message has expiredvoid
processDispatchNotification(org.apache.activemq.command.MessageDispatchNotification messageDispatchNotification)
called on Queues in slave mode to allow dispatch to follow subscription choice of mastervoid
removeProducer(ConnectionContext context, org.apache.activemq.command.ProducerInfo info)
void
removeSubscription(ConnectionContext context, Subscription sub, long lastDeliveredSequenceId)
void
send(ProducerBrokerExchange context, org.apache.activemq.command.Message messageSend)
protected void
send(ProducerBrokerExchange context, org.apache.activemq.command.Message message, org.apache.activemq.command.ActiveMQDestination destination)
Sends a message to the given destination which may be a wildcardvoid
setAlwaysRetroactive(boolean value)
void
setBlockedProducerWarningInterval(long blockedProducerWarningInterval)
Set's the interval at which warnings about producers being blocked by resource usage will be triggered.void
setCursorMemoryHighWaterMark(int cursorMemoryHighWaterMark)
void
setDoOptimzeMessageStorage(boolean doOptimzeMessageStorage)
void
setEnableAudit(boolean enableAudit)
void
setLazyDispatch(boolean value)
set the lazy dispatch - default is falsevoid
setMaxAuditDepth(int maxAuditDepth)
void
setMaxBrowsePageSize(int maxPageSize)
void
setMaxPageSize(int maxPageSize)
void
setMaxProducersToAudit(int maxProducersToAudit)
void
setMemoryUsage(org.apache.activemq.usage.MemoryUsage memoryUsage)
void
setMinimumMessageSize(int minimumMessageSize)
void
setProducerFlowControl(boolean value)
void
setSendDuplicateFromStoreToDLQ(boolean sendDuplicateFromStoreToDLQ)
void
setUseCache(boolean useCache)
void
slowConsumer(ConnectionContext context, Subscription subs)
Called when there is a slow consumervoid
start()
void
stop()
void
wakeup()
optionally called by a Subscriber - to inform the Destination its ready for more messages
-
-
-
Field Detail
-
next
protected final Destination next
-
-
Constructor Detail
-
DestinationFilter
public DestinationFilter(Destination next)
-
-
Method Detail
-
acknowledge
public void acknowledge(ConnectionContext context, Subscription sub, org.apache.activemq.command.MessageAck ack, org.apache.activemq.broker.region.MessageReference node) throws IOException
- Specified by:
acknowledge
in interfaceDestination
- Throws:
IOException
-
addSubscription
public void addSubscription(ConnectionContext context, Subscription sub) throws Exception
- Specified by:
addSubscription
in interfaceDestination
- Throws:
Exception
-
browse
public org.apache.activemq.command.Message[] browse()
- Specified by:
browse
in interfaceDestination
-
dispose
public void dispose(ConnectionContext context) throws IOException
- Specified by:
dispose
in interfaceDestination
- Throws:
IOException
-
isDisposed
public boolean isDisposed()
- Specified by:
isDisposed
in interfaceDestination
-
gc
public void gc()
- Specified by:
gc
in interfaceDestination
-
markForGC
public void markForGC(long timeStamp)
- Specified by:
markForGC
in interfaceDestination
-
canGC
public boolean canGC()
- Specified by:
canGC
in interfaceDestination
-
getInactiveTimeoutBeforeGC
public long getInactiveTimeoutBeforeGC()
- Specified by:
getInactiveTimeoutBeforeGC
in interfaceDestination
-
getActiveMQDestination
public org.apache.activemq.command.ActiveMQDestination getActiveMQDestination()
- Specified by:
getActiveMQDestination
in interfaceDestination
-
getDeadLetterStrategy
public DeadLetterStrategy getDeadLetterStrategy()
- Specified by:
getDeadLetterStrategy
in interfaceDestination
-
getDestinationStatistics
public DestinationStatistics getDestinationStatistics()
- Specified by:
getDestinationStatistics
in interfaceDestination
-
getName
public String getName()
- Specified by:
getName
in interfaceDestination
-
getMemoryUsage
public org.apache.activemq.usage.MemoryUsage getMemoryUsage()
- Specified by:
getMemoryUsage
in interfaceDestination
- Specified by:
getMemoryUsage
in interfaceorg.apache.activemq.command.Message.MessageDestination
-
setMemoryUsage
public void setMemoryUsage(org.apache.activemq.usage.MemoryUsage memoryUsage)
- Specified by:
setMemoryUsage
in interfaceDestination
-
getTempUsage
public TempUsage getTempUsage()
- Specified by:
getTempUsage
in interfaceDestination
-
removeSubscription
public void removeSubscription(ConnectionContext context, Subscription sub, long lastDeliveredSequenceId) throws Exception
- Specified by:
removeSubscription
in interfaceDestination
- Throws:
Exception
-
send
public void send(ProducerBrokerExchange context, org.apache.activemq.command.Message messageSend) throws Exception
- Specified by:
send
in interfaceDestination
- Throws:
Exception
-
start
public void start() throws Exception
- Specified by:
start
in interfaceorg.apache.activemq.Service
- Throws:
Exception
-
stop
public void stop() throws Exception
- Specified by:
stop
in interfaceorg.apache.activemq.Service
- Throws:
Exception
-
getConsumers
public List<Subscription> getConsumers()
- Specified by:
getConsumers
in interfaceDestination
-
send
protected void send(ProducerBrokerExchange context, org.apache.activemq.command.Message message, org.apache.activemq.command.ActiveMQDestination destination) throws Exception
Sends a message to the given destination which may be a wildcard- Parameters:
context
- broker contextmessage
- message to senddestination
- possibly wildcard destination to send the message to- Throws:
Exception
- on error
-
getMessageStore
public MessageStore getMessageStore()
- Specified by:
getMessageStore
in interfaceDestination
-
isProducerFlowControl
public boolean isProducerFlowControl()
- Specified by:
isProducerFlowControl
in interfaceDestination
-
setProducerFlowControl
public void setProducerFlowControl(boolean value)
- Specified by:
setProducerFlowControl
in interfaceDestination
-
isAlwaysRetroactive
public boolean isAlwaysRetroactive()
- Specified by:
isAlwaysRetroactive
in interfaceDestination
-
setAlwaysRetroactive
public void setAlwaysRetroactive(boolean value)
- Specified by:
setAlwaysRetroactive
in interfaceDestination
-
setBlockedProducerWarningInterval
public void setBlockedProducerWarningInterval(long blockedProducerWarningInterval)
Description copied from interface:Destination
Set's the interval at which warnings about producers being blocked by resource usage will be triggered. Values of 0 or less will disable warnings- Specified by:
setBlockedProducerWarningInterval
in interfaceDestination
- Parameters:
blockedProducerWarningInterval
- the interval at which warning about blocked producers will be triggered.
-
getBlockedProducerWarningInterval
public long getBlockedProducerWarningInterval()
- Specified by:
getBlockedProducerWarningInterval
in interfaceDestination
- Returns:
- the interval at which warning about blocked producers will be triggered.
-
addProducer
public void addProducer(ConnectionContext context, org.apache.activemq.command.ProducerInfo info) throws Exception
- Specified by:
addProducer
in interfaceDestination
- Throws:
Exception
-
removeProducer
public void removeProducer(ConnectionContext context, org.apache.activemq.command.ProducerInfo info) throws Exception
- Specified by:
removeProducer
in interfaceDestination
- Throws:
Exception
-
getMaxAuditDepth
public int getMaxAuditDepth()
- Specified by:
getMaxAuditDepth
in interfaceDestination
-
getMaxProducersToAudit
public int getMaxProducersToAudit()
- Specified by:
getMaxProducersToAudit
in interfaceDestination
-
isEnableAudit
public boolean isEnableAudit()
- Specified by:
isEnableAudit
in interfaceDestination
-
setEnableAudit
public void setEnableAudit(boolean enableAudit)
- Specified by:
setEnableAudit
in interfaceDestination
-
setMaxAuditDepth
public void setMaxAuditDepth(int maxAuditDepth)
- Specified by:
setMaxAuditDepth
in interfaceDestination
-
setMaxProducersToAudit
public void setMaxProducersToAudit(int maxProducersToAudit)
- Specified by:
setMaxProducersToAudit
in interfaceDestination
-
isActive
public boolean isActive()
- Specified by:
isActive
in interfaceDestination
-
getMaxPageSize
public int getMaxPageSize()
- Specified by:
getMaxPageSize
in interfaceDestination
-
setMaxPageSize
public void setMaxPageSize(int maxPageSize)
- Specified by:
setMaxPageSize
in interfaceDestination
-
isUseCache
public boolean isUseCache()
- Specified by:
isUseCache
in interfaceDestination
-
setUseCache
public void setUseCache(boolean useCache)
- Specified by:
setUseCache
in interfaceDestination
-
getMinimumMessageSize
public int getMinimumMessageSize()
- Specified by:
getMinimumMessageSize
in interfaceDestination
- Specified by:
getMinimumMessageSize
in interfaceorg.apache.activemq.command.Message.MessageDestination
-
setMinimumMessageSize
public void setMinimumMessageSize(int minimumMessageSize)
- Specified by:
setMinimumMessageSize
in interfaceDestination
-
wakeup
public void wakeup()
Description copied from interface:Destination
optionally called by a Subscriber - to inform the Destination its ready for more messages- Specified by:
wakeup
in interfaceDestination
-
isLazyDispatch
public boolean isLazyDispatch()
- Specified by:
isLazyDispatch
in interfaceDestination
- Returns:
- true if lazyDispatch is enabled
-
setLazyDispatch
public void setLazyDispatch(boolean value)
Description copied from interface:Destination
set the lazy dispatch - default is false- Specified by:
setLazyDispatch
in interfaceDestination
-
messageExpired
public void messageExpired(ConnectionContext context, PrefetchSubscription prefetchSubscription, org.apache.activemq.broker.region.MessageReference node)
-
iterate
public boolean iterate()
- Specified by:
iterate
in interfaceorg.apache.activemq.thread.Task
-
fastProducer
public void fastProducer(ConnectionContext context, org.apache.activemq.command.ProducerInfo producerInfo)
Description copied from interface:Destination
Called to notify a producer is too fast- Specified by:
fastProducer
in interfaceDestination
-
isFull
public void isFull(ConnectionContext context, org.apache.activemq.usage.Usage<?> usage)
Description copied from interface:Destination
Called when a Usage reaches a limit- Specified by:
isFull
in interfaceDestination
-
messageConsumed
public void messageConsumed(ConnectionContext context, org.apache.activemq.broker.region.MessageReference messageReference)
Description copied from interface:Destination
called when message is consumed- Specified by:
messageConsumed
in interfaceDestination
-
messageDelivered
public void messageDelivered(ConnectionContext context, org.apache.activemq.broker.region.MessageReference messageReference)
Description copied from interface:Destination
Called when message is delivered to the broker- Specified by:
messageDelivered
in interfaceDestination
-
messageDiscarded
public void messageDiscarded(ConnectionContext context, Subscription sub, org.apache.activemq.broker.region.MessageReference messageReference)
Description copied from interface:Destination
Called when a message is discarded - e.g. running low on memory This will happen only if the policy is enabled - e.g. non durable topics- Specified by:
messageDiscarded
in interfaceDestination
-
slowConsumer
public void slowConsumer(ConnectionContext context, Subscription subs)
Description copied from interface:Destination
Called when there is a slow consumer- Specified by:
slowConsumer
in interfaceDestination
-
messageExpired
public void messageExpired(ConnectionContext context, Subscription subs, org.apache.activemq.broker.region.MessageReference node)
Description copied from interface:Destination
Inform the Destination a message has expired- Specified by:
messageExpired
in interfaceDestination
-
getMaxBrowsePageSize
public int getMaxBrowsePageSize()
- Specified by:
getMaxBrowsePageSize
in interfaceDestination
-
setMaxBrowsePageSize
public void setMaxBrowsePageSize(int maxPageSize)
- Specified by:
setMaxBrowsePageSize
in interfaceDestination
-
processDispatchNotification
public void processDispatchNotification(org.apache.activemq.command.MessageDispatchNotification messageDispatchNotification) throws Exception
Description copied from interface:Destination
called on Queues in slave mode to allow dispatch to follow subscription choice of master- Specified by:
processDispatchNotification
in interfaceDestination
- Throws:
Exception
-
getCursorMemoryHighWaterMark
public int getCursorMemoryHighWaterMark()
- Specified by:
getCursorMemoryHighWaterMark
in interfaceDestination
-
setCursorMemoryHighWaterMark
public void setCursorMemoryHighWaterMark(int cursorMemoryHighWaterMark)
- Specified by:
setCursorMemoryHighWaterMark
in interfaceDestination
-
isPrioritizedMessages
public boolean isPrioritizedMessages()
- Specified by:
isPrioritizedMessages
in interfaceDestination
-
getSlowConsumerStrategy
public SlowConsumerStrategy getSlowConsumerStrategy()
- Specified by:
getSlowConsumerStrategy
in interfaceDestination
-
isDoOptimzeMessageStorage
public boolean isDoOptimzeMessageStorage()
- Specified by:
isDoOptimzeMessageStorage
in interfaceDestination
-
setDoOptimzeMessageStorage
public void setDoOptimzeMessageStorage(boolean doOptimzeMessageStorage)
- Specified by:
setDoOptimzeMessageStorage
in interfaceDestination
-
clearPendingMessages
public void clearPendingMessages(int pendingAdditionsCount)
- Specified by:
clearPendingMessages
in interfaceDestination
-
duplicateFromStore
public void duplicateFromStore(org.apache.activemq.command.Message message, Subscription subscription)
- Specified by:
duplicateFromStore
in interfaceDestination
-
isSendDuplicateFromStoreToDLQ
public boolean isSendDuplicateFromStoreToDLQ()
- Specified by:
isSendDuplicateFromStoreToDLQ
in interfaceDestination
-
setSendDuplicateFromStoreToDLQ
public void setSendDuplicateFromStoreToDLQ(boolean sendDuplicateFromStoreToDLQ)
- Specified by:
setSendDuplicateFromStoreToDLQ
in interfaceDestination
-
deleteSubscription
public void deleteSubscription(ConnectionContext context, SubscriptionKey key) throws Exception
- Throws:
Exception
-
getNext
public Destination getNext()
-
getAdaptor
public <T> T getAdaptor(Class<? extends T> clazz)
-
-