Package org.apache.activemq.store
Class AbstractMessageStore
- java.lang.Object
-
- org.apache.activemq.store.AbstractMessageStore
-
- All Implemented Interfaces:
Service
,MessageStore
- Direct Known Subclasses:
JDBCMessageStore
,JournalMessageStore
,KahaDBStore.KahaDBMessageStore
,MemoryMessageStore
,TempKahaDBStore.KahaDBMessageStore
public abstract class AbstractMessageStore extends Object implements MessageStore
-
-
Field Summary
Fields Modifier and Type Field Description protected ActiveMQDestination
destination
static ListenableFuture<Object>
FUTURE
protected IndexListener
indexListener
protected MessageStoreStatistics
messageStoreStatistics
protected boolean
prioritizedMessages
-
Constructor Summary
Constructors Constructor Description AbstractMessageStore(ActiveMQDestination destination)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
addMessage(ConnectionContext context, Message message, boolean canOptimizeHint)
Adds a message to the message storeListenableFuture<Object>
asyncAddQueueMessage(ConnectionContext context, Message message)
Adds a message to the message storeListenableFuture<Object>
asyncAddQueueMessage(ConnectionContext context, Message message, boolean canOptimizeHint)
Adds a message to the message storeListenableFuture<Object>
asyncAddTopicMessage(ConnectionContext context, Message message)
Adds a message to the message storeListenableFuture<Object>
asyncAddTopicMessage(ConnectionContext context, Message message, boolean canOptimizeHint)
Adds a message to the message storevoid
dispose(ConnectionContext context)
ActiveMQDestination
getDestination()
The destination that the message store is holding messages for.IndexListener
getIndexListener()
int
getMessageCount()
long
getMessageSize()
MessageStoreStatistics
getMessageStoreStatistics()
boolean
isEmpty()
flag to indicate if the store is emptyboolean
isPrioritizedMessages()
protected void
recoverMessageStoreStatistics()
void
registerIndexListener(IndexListener indexListener)
void
removeAsyncMessage(ConnectionContext context, MessageAck ack)
void
setBatch(MessageId messageId)
allow caching cursors to set the current batch offset when cache is exhaustedvoid
setMemoryUsage(MemoryUsage memoryUsage)
void
setPrioritizedMessages(boolean prioritizedMessages)
A hint to the store to try recover messages according to priorityvoid
start()
void
stop()
void
updateMessage(Message message)
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.apache.activemq.store.MessageStore
addMessage, getMessage, recover, recoverNextMessages, removeAllMessages, removeMessage, resetBatching
-
-
-
-
Field Detail
-
FUTURE
public static final ListenableFuture<Object> FUTURE
-
destination
protected final ActiveMQDestination destination
-
prioritizedMessages
protected boolean prioritizedMessages
-
indexListener
protected IndexListener indexListener
-
messageStoreStatistics
protected final MessageStoreStatistics messageStoreStatistics
-
-
Constructor Detail
-
AbstractMessageStore
public AbstractMessageStore(ActiveMQDestination destination)
-
-
Method Detail
-
dispose
public void dispose(ConnectionContext context)
- Specified by:
dispose
in interfaceMessageStore
-
start
public void start() throws Exception
-
getDestination
public ActiveMQDestination getDestination()
Description copied from interface:MessageStore
The destination that the message store is holding messages for.- Specified by:
getDestination
in interfaceMessageStore
- Returns:
- the destination
-
setMemoryUsage
public void setMemoryUsage(MemoryUsage memoryUsage)
- Specified by:
setMemoryUsage
in interfaceMessageStore
- Parameters:
memoryUsage
- The SystemUsage that is controlling the destination's memory usage.
-
setBatch
public void setBatch(MessageId messageId) throws IOException, Exception
Description copied from interface:MessageStore
allow caching cursors to set the current batch offset when cache is exhausted- Specified by:
setBatch
in interfaceMessageStore
- Throws:
Exception
IOException
-
isEmpty
public boolean isEmpty() throws Exception
flag to indicate if the store is empty- Specified by:
isEmpty
in interfaceMessageStore
- Returns:
- true if the message count is 0
- Throws:
Exception
-
setPrioritizedMessages
public void setPrioritizedMessages(boolean prioritizedMessages)
Description copied from interface:MessageStore
A hint to the store to try recover messages according to priority- Specified by:
setPrioritizedMessages
in interfaceMessageStore
-
isPrioritizedMessages
public boolean isPrioritizedMessages()
- Specified by:
isPrioritizedMessages
in interfaceMessageStore
- Returns:
- true if store is trying to recover messages according to priority
-
addMessage
public void addMessage(ConnectionContext context, Message message, boolean canOptimizeHint) throws IOException
Description copied from interface:MessageStore
Adds a message to the message store- Specified by:
addMessage
in interfaceMessageStore
- Parameters:
context
- contextcanOptimizeHint
- - give a hint to the store that the message may be consumed before it hits the disk- Throws:
IOException
-
asyncAddQueueMessage
public ListenableFuture<Object> asyncAddQueueMessage(ConnectionContext context, Message message) throws IOException
Description copied from interface:MessageStore
Adds a message to the message store- Specified by:
asyncAddQueueMessage
in interfaceMessageStore
- Parameters:
context
- context- Returns:
- a Future to track when this is complete
- Throws:
IOException
-
asyncAddQueueMessage
public ListenableFuture<Object> asyncAddQueueMessage(ConnectionContext context, Message message, boolean canOptimizeHint) throws IOException
Description copied from interface:MessageStore
Adds a message to the message store- Specified by:
asyncAddQueueMessage
in interfaceMessageStore
- Parameters:
context
- contextcanOptimizeHint
- - give a hint to the store that the message may be consumed before it hits the disk- Returns:
- a Future to track when this is complete
- Throws:
IOException
-
asyncAddTopicMessage
public ListenableFuture<Object> asyncAddTopicMessage(ConnectionContext context, Message message, boolean canOptimizeHint) throws IOException
Description copied from interface:MessageStore
Adds a message to the message store- Specified by:
asyncAddTopicMessage
in interfaceMessageStore
- Parameters:
context
- contextcanOptimizeHint
- - give a hint to the store that the message may be consumed before it hits the disk- Returns:
- a ListenableFuture to track when this is complete
- Throws:
IOException
-
asyncAddTopicMessage
public ListenableFuture<Object> asyncAddTopicMessage(ConnectionContext context, Message message) throws IOException
Description copied from interface:MessageStore
Adds a message to the message store- Specified by:
asyncAddTopicMessage
in interfaceMessageStore
- Parameters:
context
- context- Returns:
- a ListenableFuture to track when this is complete
- Throws:
IOException
-
removeAsyncMessage
public void removeAsyncMessage(ConnectionContext context, MessageAck ack) throws IOException
- Specified by:
removeAsyncMessage
in interfaceMessageStore
- Throws:
IOException
-
updateMessage
public void updateMessage(Message message) throws IOException
- Specified by:
updateMessage
in interfaceMessageStore
- Throws:
IOException
-
registerIndexListener
public void registerIndexListener(IndexListener indexListener)
- Specified by:
registerIndexListener
in interfaceMessageStore
-
getIndexListener
public IndexListener getIndexListener()
-
getMessageCount
public int getMessageCount() throws IOException
- Specified by:
getMessageCount
in interfaceMessageStore
- Returns:
- the number of messages ready to deliver
- Throws:
IOException
-
getMessageSize
public long getMessageSize() throws IOException
- Specified by:
getMessageSize
in interfaceMessageStore
- Returns:
- the size of the messages ready to deliver
- Throws:
IOException
-
getMessageStoreStatistics
public MessageStoreStatistics getMessageStoreStatistics()
- Specified by:
getMessageStoreStatistics
in interfaceMessageStore
- Returns:
- The statistics bean for this message store
-
recoverMessageStoreStatistics
protected void recoverMessageStoreStatistics() throws IOException
- Throws:
IOException
-
-