Class FilePendingMessageCursor
- java.lang.Object
-
- org.apache.activemq.broker.region.cursors.AbstractPendingMessageCursor
-
- org.apache.activemq.broker.region.cursors.FilePendingMessageCursor
-
- All Implemented Interfaces:
PendingMessageCursor,Service,UsageListener
public class FilePendingMessageCursor extends AbstractPendingMessageCursor implements UsageListener
persist pending messages pending message (messages awaiting dispatch to a consumer) cursor
-
-
Field Summary
Fields Modifier and Type Field Description protected Brokerbroker-
Fields inherited from class org.apache.activemq.broker.region.cursors.AbstractPendingMessageCursor
audit, cacheEnabled, enableAudit, last, maxAuditDepth, maxBatchSize, maxProducersToAudit, memoryUsageHighWaterMark, prioritizedMessages, systemUsage, useCache
-
Fields inherited from interface org.apache.activemq.broker.region.cursors.PendingMessageCursor
INFINITE_WAIT
-
-
Constructor Summary
Constructors Constructor Description FilePendingMessageCursor(Broker broker, String name, boolean prioritizedMessages)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidaddMessageFirst(MessageReference node)add message to await dispatchvoidclear()clear all pending messagesvoiddestroy()destroy the cursorprotected voidflushToDisk()protected ByteSequencegetByteSequence(Message message)PListgetDiskList()protected MessagegetMessage(ByteSequence bs)booleanhasMessagesBufferedToDeliver()booleanhasNext()protected booleanisDiskListEmpty()booleanisEmpty()booleanisFull()booleanisTransient()longmessageSize()MessageReferencenext()voidonUsageChanged(Usage usage, int oldPercentUsage, int newPercentUsage)LinkedList<MessageReference>pageInList(int maxItems)Page in a restricted number of messagesvoidrelease()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 cursorvoidsetSystemUsage(SystemUsage usageManager)Set the UsageManagerintsize()voidstart()voidstop()booleantryAddMessageLast(MessageReference node, long maxWaitTime)add message to await dispatch-
Methods inherited from class org.apache.activemq.broker.region.cursors.AbstractPendingMessageCursor
add, addMessageLast, addRecoveredMessage, fillBatch, gc, getMaxAuditDepth, getMaxBatchSize, getMaxProducersToAudit, getMemoryUsageHighWaterMark, getMessageAudit, getSystemUsage, hasSpace, isCacheEnabled, isDuplicate, isEmpty, isEnableAudit, isPrioritizedMessageSubscriber, isRecoveryRequired, isStarted, isUseCache, rebase, recordUniqueId, remove, resetForGC, rollback, setCacheEnabled, setEnableAudit, setMaxAuditDepth, setMaxBatchSize, setMaxProducersToAudit, setMemoryUsageHighWaterMark, setMessageAudit, setUseCache
-
-
-
-
Field Detail
-
broker
protected Broker broker
-
-
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
-
isEmpty
public boolean isEmpty()
- Specified by:
isEmptyin interfacePendingMessageCursor- Overrides:
isEmptyin classAbstractPendingMessageCursor- Returns:
- true if there are no pending messages
-
reset
public void reset()
reset 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
-
destroy
public void destroy() throws ExceptionDescription copied from class:AbstractPendingMessageCursordestroy the cursor- Specified by:
destroyin interfacePendingMessageCursor- Overrides:
destroyin classAbstractPendingMessageCursor- Throws:
Exception
-
pageInList
public LinkedList<MessageReference> pageInList(int maxItems)
Description copied from class:AbstractPendingMessageCursorPage in a restricted number of messages- Specified by:
pageInListin interfacePendingMessageCursor- Overrides:
pageInListin classAbstractPendingMessageCursor- Parameters:
maxItems- maximum number of messages to return- Returns:
- a list of paged in messages
-
tryAddMessageLast
public boolean tryAddMessageLast(MessageReference node, long maxWaitTime) throws Exception
add message to await dispatch- Specified by:
tryAddMessageLastin interfacePendingMessageCursor- Overrides:
tryAddMessageLastin classAbstractPendingMessageCursor- Parameters:
node-- Returns:
- true if successful
- Throws:
ExceptionIOException
-
addMessageFirst
public void addMessageFirst(MessageReference node)
add message to await dispatch- Specified by:
addMessageFirstin interfacePendingMessageCursor- Overrides:
addMessageFirstin classAbstractPendingMessageCursor- Parameters:
node-
-
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
-
remove
public void remove()
remove 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- Parameters:
node-- See Also:
AbstractPendingMessageCursor.remove(org.apache.activemq.broker.region.MessageReference)
-
size
public int size()
- Specified by:
sizein interfacePendingMessageCursor- Overrides:
sizein classAbstractPendingMessageCursor- Returns:
- the number of pending messages
-
messageSize
public long messageSize()
- Specified by:
messageSizein interfacePendingMessageCursor
-
clear
public void clear()
clear all pending messages- Specified by:
clearin interfacePendingMessageCursor- Overrides:
clearin classAbstractPendingMessageCursor
-
isFull
public boolean isFull()
- Specified by:
isFullin interfacePendingMessageCursor- Overrides:
isFullin classAbstractPendingMessageCursor- Returns:
- true if the cursor is full
-
hasMessagesBufferedToDeliver
public boolean hasMessagesBufferedToDeliver()
- Specified by:
hasMessagesBufferedToDeliverin interfacePendingMessageCursor- Overrides:
hasMessagesBufferedToDeliverin classAbstractPendingMessageCursor- Returns:
- true if the cursor has buffered messages ready to deliver
-
setSystemUsage
public void setSystemUsage(SystemUsage usageManager)
Description copied from interface:PendingMessageCursorSet the UsageManager- Specified by:
setSystemUsagein interfacePendingMessageCursor- Overrides:
setSystemUsagein classAbstractPendingMessageCursor- See Also:
SystemUsage
-
onUsageChanged
public void onUsageChanged(Usage usage, int oldPercentUsage, int newPercentUsage)
- Specified by:
onUsageChangedin interfaceUsageListener
-
isTransient
public boolean isTransient()
- Specified by:
isTransientin interfacePendingMessageCursor- Overrides:
isTransientin classAbstractPendingMessageCursor- Returns:
- true if the underlying state of this cursor disappears when the broker shuts down
-
flushToDisk
protected void flushToDisk()
-
isDiskListEmpty
protected boolean isDiskListEmpty()
-
getDiskList
public PList getDiskList()
-
getByteSequence
protected ByteSequence getByteSequence(Message message) throws IOException
- Throws:
IOException
-
getMessage
protected Message getMessage(ByteSequence bs) throws IOException
- Throws:
IOException
-
-