Class StoreQueueCursor
- java.lang.Object
-
- org.apache.activemq.broker.region.cursors.AbstractPendingMessageCursor
-
- org.apache.activemq.broker.region.cursors.StoreQueueCursor
-
- All Implemented Interfaces:
PendingMessageCursor,Service
public class StoreQueueCursor extends AbstractPendingMessageCursor
Store based Cursor for Queues
-
-
Field Summary
-
Fields inherited from class org.apache.activemq.broker.region.cursors.AbstractPendingMessageCursor
audit, cacheEnabled, enableAudit, last, maxAuditDepth, maxBatchSize, maxProducersToAudit, memoryUsageHighWaterMark, prioritizedMessages, started, systemUsage, useCache
-
Fields inherited from interface org.apache.activemq.broker.region.cursors.PendingMessageCursor
INFINITE_WAIT
-
-
Constructor Summary
Constructors Constructor Description StoreQueueCursor(Broker broker, Queue queue)Construct
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidaddMessageFirst(MessageReference node)add message to await dispatchvoidclear()clear all pending messagesvoidgc()free up any internal buffersprotected PendingMessageCursorgetNextCursor()PendingMessageCursorgetNonPersistent()PendingMessageCursorgetPersistent()booleanhasNext()booleanisCacheEnabled()booleanisEmpty()booleanisRecoveryRequired()Informs the Broker if the subscription needs to intervention to recover it's state e.g.longmessageSize()MessageReferencenext()voidrebase()voidrelease()hint to the cursor to release any locks it might have grabbed after a resetvoidremove()remove the message at the cursor positionvoidremove(MessageReference node)remove a nodevoidreset()reset the cursorvoidrollback(MessageId id)remove from auditing the message idvoidsetEnableAudit(boolean enableAudit)voidsetMaxAuditDepth(int maxAuditDepth)Set the maximum depth of message ids to trackvoidsetMaxBatchSize(int maxBatchSize)Set the max batch sizevoidsetMaxProducersToAudit(int maxProducersToAudit)set the maximum number of producers to track at one timevoidsetMemoryUsageHighWaterMark(int memoryUsageHighWaterMark)voidsetNonPersistent(PendingMessageCursor nonPersistent)voidsetSystemUsage(SystemUsage usageManager)Set the UsageManagervoidsetUseCache(boolean useCache)use a cache to improve performanceintsize()voidstart()voidstop()booleantryAddMessageLast(MessageReference node, long maxWait)add message to await dispatch - if it can-
Methods inherited from class org.apache.activemq.broker.region.cursors.AbstractPendingMessageCursor
add, addMessageLast, addRecoveredMessage, destroy, fillBatch, getMaxAuditDepth, getMaxBatchSize, getMaxProducersToAudit, getMemoryUsageHighWaterMark, getMessageAudit, getSystemUsage, hasMessagesBufferedToDeliver, hasSpace, isDuplicate, isEmpty, isEnableAudit, isFull, isPrioritizedMessageSubscriber, isStarted, isTransient, isUseCache, pageInList, recordUniqueId, remove, resetForGC, setCacheEnabled, setMessageAudit
-
-
-
-
Method Detail
-
start
public void start() throws Exception- Specified by:
startin interfaceService- Overrides:
startin classAbstractPendingMessageCursor- Throws:
Exception
-
stop
public void stop() throws Exception- Specified by:
stopin interfaceService- Overrides:
stopin classAbstractPendingMessageCursor- Throws:
Exception
-
tryAddMessageLast
public boolean tryAddMessageLast(MessageReference node, long maxWait) throws Exception
Description copied from interface:PendingMessageCursoradd message to await dispatch - if it can- Specified by:
tryAddMessageLastin interfacePendingMessageCursor- Overrides:
tryAddMessageLastin classAbstractPendingMessageCursor- Returns:
- true if successful
- Throws:
IOExceptionException
-
addMessageFirst
public void addMessageFirst(MessageReference node) throws Exception
Description copied from interface:PendingMessageCursoradd message to await dispatch- Specified by:
addMessageFirstin interfacePendingMessageCursor- Overrides:
addMessageFirstin classAbstractPendingMessageCursor- Throws:
Exception
-
clear
public void clear()
Description copied from interface:PendingMessageCursorclear all pending messages- Specified by:
clearin interfacePendingMessageCursor- Overrides:
clearin classAbstractPendingMessageCursor
-
hasNext
public boolean hasNext()
- Specified by:
hasNextin interfacePendingMessageCursor- Overrides:
hasNextin classAbstractPendingMessageCursor- Returns:
- true if there pending messages to dispatch
-
next
public MessageReference next()
- Specified by:
nextin interfacePendingMessageCursor- Overrides:
nextin classAbstractPendingMessageCursor- Returns:
- the next pending message with its reference count increment
-
remove
public void remove()
Description copied from interface:PendingMessageCursorremove the message at the cursor position- Specified by:
removein interfacePendingMessageCursor- Overrides:
removein classAbstractPendingMessageCursor
-
remove
public void remove(MessageReference node)
Description copied from interface:PendingMessageCursorremove a node- Specified by:
removein interfacePendingMessageCursor- Overrides:
removein classAbstractPendingMessageCursor
-
reset
public void reset()
Description copied from interface:PendingMessageCursorreset the cursor- Specified by:
resetin interfacePendingMessageCursor- Overrides:
resetin classAbstractPendingMessageCursor
-
release
public void release()
Description copied from interface:PendingMessageCursorhint to the cursor to release any locks it might have grabbed after a reset- Specified by:
releasein interfacePendingMessageCursor- Overrides:
releasein classAbstractPendingMessageCursor
-
size
public int size()
- Specified by:
sizein interfacePendingMessageCursor- Overrides:
sizein classAbstractPendingMessageCursor- Returns:
- the number of pending messages
-
messageSize
public long messageSize()
-
isEmpty
public boolean isEmpty()
- Specified by:
isEmptyin interfacePendingMessageCursor- Overrides:
isEmptyin classAbstractPendingMessageCursor- Returns:
- true if there are no pending messages
-
isRecoveryRequired
public boolean isRecoveryRequired()
Informs the Broker if the subscription needs to intervention to recover it's state e.g. DurableTopicSubscriber may do- Specified by:
isRecoveryRequiredin interfacePendingMessageCursor- Overrides:
isRecoveryRequiredin classAbstractPendingMessageCursor- Returns:
- true if recovery required
- See Also:
PendingMessageCursor
-
getNonPersistent
public PendingMessageCursor getNonPersistent()
- Returns:
- the nonPersistent Cursor
-
setNonPersistent
public void setNonPersistent(PendingMessageCursor nonPersistent)
- Parameters:
nonPersistent- cursor to set
-
getPersistent
public PendingMessageCursor getPersistent()
- Returns:
- the persistent Cursor
-
setMaxBatchSize
public void setMaxBatchSize(int maxBatchSize)
Description copied from interface:PendingMessageCursorSet the max batch size- Specified by:
setMaxBatchSizein interfacePendingMessageCursor- Overrides:
setMaxBatchSizein classAbstractPendingMessageCursor
-
setMaxProducersToAudit
public void setMaxProducersToAudit(int maxProducersToAudit)
Description copied from interface:PendingMessageCursorset the maximum number of producers to track at one time- Specified by:
setMaxProducersToAuditin interfacePendingMessageCursor- Overrides:
setMaxProducersToAuditin classAbstractPendingMessageCursor- Parameters:
maxProducersToAudit- the maxProducersToAudit to set
-
setMaxAuditDepth
public void setMaxAuditDepth(int maxAuditDepth)
Description copied from interface:PendingMessageCursorSet the maximum depth of message ids to track- Specified by:
setMaxAuditDepthin interfacePendingMessageCursor- Overrides:
setMaxAuditDepthin classAbstractPendingMessageCursor- Parameters:
maxAuditDepth- the maxAuditDepth to set
-
setEnableAudit
public void setEnableAudit(boolean enableAudit)
- Specified by:
setEnableAuditin interfacePendingMessageCursor- Overrides:
setEnableAuditin classAbstractPendingMessageCursor- Parameters:
enableAudit- the enableAudit to set
-
rollback
public void rollback(MessageId id)
Description copied from interface:PendingMessageCursorremove from auditing the message id- Specified by:
rollbackin interfacePendingMessageCursor- Overrides:
rollbackin classAbstractPendingMessageCursor
-
setUseCache
public void setUseCache(boolean useCache)
Description copied from interface:PendingMessageCursoruse a cache to improve performance- Specified by:
setUseCachein interfacePendingMessageCursor- Overrides:
setUseCachein classAbstractPendingMessageCursor
-
setMemoryUsageHighWaterMark
public void setMemoryUsageHighWaterMark(int memoryUsageHighWaterMark)
- Specified by:
setMemoryUsageHighWaterMarkin interfacePendingMessageCursor- Overrides:
setMemoryUsageHighWaterMarkin classAbstractPendingMessageCursor- Parameters:
memoryUsageHighWaterMark- the memoryUsageHighWaterMark to set
-
gc
public void gc()
Description copied from interface:PendingMessageCursorfree up any internal buffers- Specified by:
gcin interfacePendingMessageCursor- Overrides:
gcin classAbstractPendingMessageCursor
-
setSystemUsage
public void setSystemUsage(SystemUsage usageManager)
Description copied from interface:PendingMessageCursorSet the UsageManager- Specified by:
setSystemUsagein interfacePendingMessageCursor- Overrides:
setSystemUsagein classAbstractPendingMessageCursor- See Also:
SystemUsage
-
getNextCursor
protected PendingMessageCursor getNextCursor() throws Exception
- Throws:
Exception
-
isCacheEnabled
public boolean isCacheEnabled()
- Specified by:
isCacheEnabledin interfacePendingMessageCursor- Overrides:
isCacheEnabledin classAbstractPendingMessageCursor- Returns:
- true if cache is being used
-
rebase
public void rebase()
- Specified by:
rebasein interfacePendingMessageCursor- Overrides:
rebasein classAbstractPendingMessageCursor
-
-