Class AbstractStoreCursor
- java.lang.Object
-
- org.apache.activemq.broker.region.cursors.AbstractPendingMessageCursor
-
- org.apache.activemq.broker.region.cursors.AbstractStoreCursor
-
- All Implemented Interfaces:
PendingMessageCursor
,org.apache.activemq.Service
,MessageRecoveryListener
public abstract class AbstractStoreCursor extends AbstractPendingMessageCursor implements MessageRecoveryListener
Store based cursor
-
-
Field Summary
Fields Modifier and Type Field Description protected PendingList
batchList
protected boolean
batchResetNeeded
protected boolean
hadSpace
protected Destination
regionDestination
protected int
size
-
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 Modifier Constructor Description protected
AbstractStoreCursor(Destination destination)
-
Method Summary
All Methods Static Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description void
addMessageFirst(org.apache.activemq.broker.region.MessageReference node)
add message to await dispatchprotected boolean
canEnableCash()
boolean
canRecoveryNextMessage()
void
clear()
clear all pending messagesprotected abstract void
doFillBatch()
protected boolean
duplicateFromStoreExcepted(org.apache.activemq.command.Message message)
protected boolean
enableCacheNow()
protected void
fillBatch()
void
finished()
void
gc()
free up any internal buffersprotected abstract long
getStoreMessageSize()
protected abstract int
getStoreSize()
Subscription
getSubscription()
static boolean
gotToTheStore(org.apache.activemq.command.Message message)
boolean
hasMessagesBufferedToDeliver()
boolean
hasNext()
boolean
isCacheEnabled()
boolean
isEmpty()
protected abstract boolean
isStoreEmpty()
long
messageSize()
org.apache.activemq.broker.region.MessageReference
next()
void
rebase()
boolean
recoverMessage(org.apache.activemq.command.Message message)
boolean
recoverMessage(org.apache.activemq.command.Message message, boolean cached)
void
release()
hint to the cursor to release any locks it might have grabbed after a resetvoid
remove()
remove the message at the cursor positionvoid
remove(org.apache.activemq.broker.region.MessageReference node)
remove a nodevoid
reset()
reset the cursorprotected abstract void
resetBatch()
protected void
resetSize()
protected void
setBatch(org.apache.activemq.command.MessageId messageId)
int
size()
void
start()
void
stop()
String
toString()
boolean
tryAddMessageLast(org.apache.activemq.broker.region.MessageReference node, long wait)
add message to await dispatch - if it can-
Methods inherited from class org.apache.activemq.broker.region.cursors.AbstractPendingMessageCursor
add, addMessageLast, addRecoveredMessage, destroy, getMaxAuditDepth, getMaxBatchSize, getMaxProducersToAudit, getMemoryUsageHighWaterMark, getMessageAudit, getSystemUsage, hasSpace, isDuplicate, isEmpty, isEnableAudit, isFull, isPrioritizedMessageSubscriber, isRecoveryRequired, isStarted, isTransient, isUseCache, pageInList, recordUniqueId, remove, resetForGC, rollback, setCacheEnabled, setEnableAudit, setMaxAuditDepth, setMaxBatchSize, setMaxProducersToAudit, setMemoryUsageHighWaterMark, setMessageAudit, setSystemUsage, setUseCache
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface org.apache.activemq.store.MessageRecoveryListener
hasSpace, isDuplicate, recoverMessageReference
-
-
-
-
Field Detail
-
regionDestination
protected final Destination regionDestination
-
batchList
protected final PendingList batchList
-
batchResetNeeded
protected boolean batchResetNeeded
-
size
protected int size
-
hadSpace
protected boolean hadSpace
-
-
Constructor Detail
-
AbstractStoreCursor
protected AbstractStoreCursor(Destination destination)
-
-
Method Detail
-
start
public final void start() throws Exception
- Specified by:
start
in interfaceorg.apache.activemq.Service
- Overrides:
start
in classAbstractPendingMessageCursor
- Throws:
Exception
-
resetSize
protected void resetSize()
-
rebase
public void rebase()
- Specified by:
rebase
in interfacePendingMessageCursor
- Overrides:
rebase
in classAbstractPendingMessageCursor
-
stop
public final void stop() throws Exception
- Specified by:
stop
in interfaceorg.apache.activemq.Service
- Overrides:
stop
in classAbstractPendingMessageCursor
- Throws:
Exception
-
recoverMessage
public final boolean recoverMessage(org.apache.activemq.command.Message message) throws Exception
- Specified by:
recoverMessage
in interfaceMessageRecoveryListener
- Throws:
Exception
-
recoverMessage
public boolean recoverMessage(org.apache.activemq.command.Message message, boolean cached) throws Exception
- Throws:
Exception
-
duplicateFromStoreExcepted
protected boolean duplicateFromStoreExcepted(org.apache.activemq.command.Message message)
-
gotToTheStore
public static boolean gotToTheStore(org.apache.activemq.command.Message message) throws Exception
- Throws:
Exception
-
reset
public final void reset()
Description copied from interface:PendingMessageCursor
reset the cursor- Specified by:
reset
in interfacePendingMessageCursor
- Overrides:
reset
in classAbstractPendingMessageCursor
-
release
public void release()
Description copied from interface:PendingMessageCursor
hint to the cursor to release any locks it might have grabbed after a reset- Specified by:
release
in interfacePendingMessageCursor
- Overrides:
release
in classAbstractPendingMessageCursor
-
finished
public final void finished()
-
hasNext
public final boolean hasNext()
- Specified by:
hasNext
in interfacePendingMessageCursor
- Overrides:
hasNext
in classAbstractPendingMessageCursor
- Returns:
- true if there pending messages to dispatch
-
next
public final org.apache.activemq.broker.region.MessageReference next()
- Specified by:
next
in interfacePendingMessageCursor
- Overrides:
next
in classAbstractPendingMessageCursor
- Returns:
- the next pending message with its reference count increment
-
tryAddMessageLast
public boolean tryAddMessageLast(org.apache.activemq.broker.region.MessageReference node, long wait) throws Exception
Description copied from interface:PendingMessageCursor
add message to await dispatch - if it can- Specified by:
tryAddMessageLast
in interfacePendingMessageCursor
- Overrides:
tryAddMessageLast
in classAbstractPendingMessageCursor
- Returns:
- true if successful
- Throws:
IOException
Exception
-
isCacheEnabled
public boolean isCacheEnabled()
- Specified by:
isCacheEnabled
in interfacePendingMessageCursor
- Overrides:
isCacheEnabled
in classAbstractPendingMessageCursor
- Returns:
- true if cache is being used
-
enableCacheNow
protected boolean enableCacheNow()
-
canEnableCash
protected boolean canEnableCash()
-
canRecoveryNextMessage
public boolean canRecoveryNextMessage()
- Specified by:
canRecoveryNextMessage
in interfaceMessageRecoveryListener
-
setBatch
protected void setBatch(org.apache.activemq.command.MessageId messageId) throws Exception
- Throws:
Exception
-
addMessageFirst
public void addMessageFirst(org.apache.activemq.broker.region.MessageReference node) throws Exception
Description copied from interface:PendingMessageCursor
add message to await dispatch- Specified by:
addMessageFirst
in interfacePendingMessageCursor
- Overrides:
addMessageFirst
in classAbstractPendingMessageCursor
- Throws:
Exception
-
remove
public final void remove()
Description copied from interface:PendingMessageCursor
remove the message at the cursor position- Specified by:
remove
in interfacePendingMessageCursor
- Overrides:
remove
in classAbstractPendingMessageCursor
-
remove
public final void remove(org.apache.activemq.broker.region.MessageReference node)
Description copied from interface:PendingMessageCursor
remove a node- Specified by:
remove
in interfacePendingMessageCursor
- Overrides:
remove
in classAbstractPendingMessageCursor
-
clear
public final void clear()
Description copied from interface:PendingMessageCursor
clear all pending messages- Specified by:
clear
in interfacePendingMessageCursor
- Overrides:
clear
in classAbstractPendingMessageCursor
-
gc
public void gc()
Description copied from interface:PendingMessageCursor
free up any internal buffers- Specified by:
gc
in interfacePendingMessageCursor
- Overrides:
gc
in classAbstractPendingMessageCursor
-
fillBatch
protected final void fillBatch()
- Overrides:
fillBatch
in classAbstractPendingMessageCursor
-
isEmpty
public final boolean isEmpty()
- Specified by:
isEmpty
in interfacePendingMessageCursor
- Overrides:
isEmpty
in classAbstractPendingMessageCursor
- Returns:
- true if there are no pending messages
-
hasMessagesBufferedToDeliver
public final boolean hasMessagesBufferedToDeliver()
- Specified by:
hasMessagesBufferedToDeliver
in interfacePendingMessageCursor
- Overrides:
hasMessagesBufferedToDeliver
in classAbstractPendingMessageCursor
- Returns:
- true if the cursor has buffered messages ready to deliver
-
size
public final int size()
- Specified by:
size
in interfacePendingMessageCursor
- Overrides:
size
in classAbstractPendingMessageCursor
- Returns:
- the number of pending messages
-
messageSize
public final long messageSize()
- Specified by:
messageSize
in interfacePendingMessageCursor
-
resetBatch
protected abstract void resetBatch()
-
getStoreSize
protected abstract int getStoreSize()
-
getStoreMessageSize
protected abstract long getStoreMessageSize()
-
isStoreEmpty
protected abstract boolean isStoreEmpty()
-
getSubscription
public Subscription getSubscription()
-
-