Class FilePendingMessageCursor
java.lang.Object
org.apache.activemq.broker.region.cursors.AbstractPendingMessageCursor
org.apache.activemq.broker.region.cursors.FilePendingMessageCursor
- All Implemented Interfaces:
PendingMessageCursor,org.apache.activemq.Service,org.apache.activemq.usage.UsageListener
public class FilePendingMessageCursor
extends AbstractPendingMessageCursor
implements org.apache.activemq.usage.UsageListener
persist pending messages pending message (messages awaiting dispatch to a
consumer) cursor
-
Field Summary
FieldsFields inherited from class org.apache.activemq.broker.region.cursors.AbstractPendingMessageCursor
audit, cacheEnabled, enableAudit, last, maxAuditDepth, maxBatchSize, maxProducersToAudit, memoryUsageHighWaterMark, prioritizedMessages, systemUsage, useCacheFields inherited from interface org.apache.activemq.broker.region.cursors.PendingMessageCursor
INFINITE_WAIT -
Constructor Summary
ConstructorsConstructorDescriptionFilePendingMessageCursor(Broker broker, String name, boolean prioritizedMessages) -
Method Summary
Modifier and TypeMethodDescriptionvoidaddMessageFirst(org.apache.activemq.broker.region.MessageReference node) add message to await dispatchvoidclear()clear all pending messagesvoiddestroy()destroy the cursorprotected voidprotected org.apache.activemq.util.ByteSequencegetByteSequence(org.apache.activemq.command.Message message) protected org.apache.activemq.command.MessagegetMessage(org.apache.activemq.util.ByteSequence bs) booleanbooleanhasNext()protected booleanbooleanisEmpty()booleanisFull()booleanlongorg.apache.activemq.broker.region.MessageReferencenext()voidonUsageChanged(org.apache.activemq.usage.Usage usage, int oldPercentUsage, int newPercentUsage) LinkedList<org.apache.activemq.broker.region.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(org.apache.activemq.broker.region.MessageReference node) remove a nodevoidreset()reset the cursorvoidsetSystemUsage(SystemUsage usageManager) Set the UsageManagerintsize()voidstart()voidstop()booleantryAddMessageLast(org.apache.activemq.broker.region.MessageReference node, long maxWaitTime) add message to await dispatchMethods 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 Details
-
broker
-
-
Constructor Details
-
FilePendingMessageCursor
- Parameters:
broker-name-prioritizedMessages-
-
-
Method Details
-
start
- Specified by:
startin interfaceorg.apache.activemq.Service- Overrides:
startin classAbstractPendingMessageCursor- Throws:
Exception
-
stop
- Specified by:
stopin interfaceorg.apache.activemq.Service- 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
Description copied from class:AbstractPendingMessageCursordestroy the cursor- Specified by:
destroyin interfacePendingMessageCursor- Overrides:
destroyin classAbstractPendingMessageCursor- Throws:
Exception
-
pageInList
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(org.apache.activemq.broker.region.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(org.apache.activemq.broker.region.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 org.apache.activemq.broker.region.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(org.apache.activemq.broker.region.MessageReference node) Description copied from interface:PendingMessageCursorremove a node- Specified by:
removein interfacePendingMessageCursor- Overrides:
removein classAbstractPendingMessageCursor- Parameters:
node-- See Also:
-
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
Description copied from interface:PendingMessageCursorSet the UsageManager- Specified by:
setSystemUsagein interfacePendingMessageCursor- Overrides:
setSystemUsagein classAbstractPendingMessageCursor- See Also:
-
onUsageChanged
public void onUsageChanged(org.apache.activemq.usage.Usage usage, int oldPercentUsage, int newPercentUsage) - Specified by:
onUsageChangedin interfaceorg.apache.activemq.usage.UsageListener
-
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
-
getByteSequence
protected org.apache.activemq.util.ByteSequence getByteSequence(org.apache.activemq.command.Message message) throws IOException - Throws:
IOException
-
getMessage
protected org.apache.activemq.command.Message getMessage(org.apache.activemq.util.ByteSequence bs) throws IOException - Throws:
IOException
-