public class JournalMessageStore extends AbstractMessageStore
Modifier and Type | Field and Description |
---|---|
protected Set<org.apache.activeio.journal.RecordLocation> |
inFlightTxLocations |
protected org.apache.activeio.journal.RecordLocation |
lastLocation |
protected MessageStore |
longTermStore |
protected JournalPersistenceAdapter |
peristenceAdapter |
protected JournalTransactionStore |
transactionStore |
protected TransactionTemplate |
transactionTemplate |
destination, FUTURE, indexListener, messageStoreStatistics, prioritizedMessages
Constructor and Description |
---|
JournalMessageStore(JournalPersistenceAdapter adapter,
MessageStore checkpointStore,
ActiveMQDestination destination) |
Modifier and Type | Method and Description |
---|---|
void |
addMessage(ConnectionContext context,
Message message)
Not synchronized since the Journal has better throughput if you increase
the number of concurrent writes that it is doing.
|
void |
addMessageReference(ConnectionContext context,
MessageId messageId,
long expirationTime,
String messageRef) |
org.apache.activeio.journal.RecordLocation |
checkpoint() |
org.apache.activeio.journal.RecordLocation |
checkpoint(Callback postCheckpointTest) |
MessageStore |
getLongTermMessageStore() |
Message |
getMessage(MessageId identity)
Looks up a message using either the String messageID or the
messageNumber.
|
int |
getMessageCount() |
String |
getMessageReference(MessageId identity) |
long |
getMessageSize() |
void |
recover(MessageRecoveryListener listener)
Replays the checkpointStore first as those messages are the oldest ones,
then messages are replayed from the transaction log and then the cache is
updated.
|
void |
recoverNextMessages(int maxReturned,
MessageRecoveryListener listener) |
void |
removeAllMessages(ConnectionContext context)
Removes all the messages from the message store.
|
void |
removeMessage(ConnectionContext context,
MessageAck ack)
Removes a message from the message store.
|
void |
replayAddMessage(ConnectionContext context,
Message message) |
void |
replayRemoveMessage(ConnectionContext context,
MessageAck messageAck) |
void |
resetBatching()
A hint to the Store to reset any batching state for the Destination
|
void |
setBatch(MessageId messageId)
allow caching cursors to set the current batch offset when cache is exhausted
|
void |
setMemoryUsage(MemoryUsage memoryUsage) |
void |
start() |
void |
stop() |
addMessage, asyncAddQueueMessage, asyncAddQueueMessage, asyncAddTopicMessage, asyncAddTopicMessage, dispose, getDestination, getIndexListener, getMessageStoreStatistics, isEmpty, isPrioritizedMessages, recoverMessageStoreStatistics, registerIndexListener, removeAsyncMessage, setPrioritizedMessages, updateMessage
protected final JournalPersistenceAdapter peristenceAdapter
protected final JournalTransactionStore transactionStore
protected final MessageStore longTermStore
protected final TransactionTemplate transactionTemplate
protected org.apache.activeio.journal.RecordLocation lastLocation
protected Set<org.apache.activeio.journal.RecordLocation> inFlightTxLocations
public JournalMessageStore(JournalPersistenceAdapter adapter, MessageStore checkpointStore, ActiveMQDestination destination)
public void setMemoryUsage(MemoryUsage memoryUsage)
setMemoryUsage
in interface MessageStore
setMemoryUsage
in class AbstractMessageStore
memoryUsage
- The SystemUsage that is controlling the
destination's memory usage.public void addMessage(ConnectionContext context, Message message) throws IOException
context
- contextIOException
public void replayAddMessage(ConnectionContext context, Message message)
public void removeMessage(ConnectionContext context, MessageAck ack) throws IOException
MessageStore
ack
- the ack request that cause the message to be removed. It
conatins the identity which contains the messageID of the
message that needs to be removed.IOException
public void replayRemoveMessage(ConnectionContext context, MessageAck messageAck)
public org.apache.activeio.journal.RecordLocation checkpoint() throws IOException
IOException
public org.apache.activeio.journal.RecordLocation checkpoint(Callback postCheckpointTest) throws IOException
IOException
public Message getMessage(MessageId identity) throws IOException
MessageStore
identity
- which contains either the messageID or the messageNumberIOException
public void recover(MessageRecoveryListener listener) throws Exception
listener
- Exception
public void start() throws Exception
start
in interface Service
start
in class AbstractMessageStore
Exception
public void stop() throws Exception
stop
in interface Service
stop
in class AbstractMessageStore
Exception
public MessageStore getLongTermMessageStore()
public void removeAllMessages(ConnectionContext context) throws IOException
MessageStore
IOException
MessageStore.removeAllMessages(ConnectionContext)
public void addMessageReference(ConnectionContext context, MessageId messageId, long expirationTime, String messageRef) throws IOException
IOException
public String getMessageReference(MessageId identity) throws IOException
IOException
public int getMessageCount() throws IOException
getMessageCount
in interface MessageStore
getMessageCount
in class AbstractMessageStore
IOException
MessageStore.getMessageCount()
public long getMessageSize() throws IOException
getMessageSize
in interface MessageStore
getMessageSize
in class AbstractMessageStore
IOException
public void recoverNextMessages(int maxReturned, MessageRecoveryListener listener) throws Exception
Exception
public void resetBatching()
MessageStore
public void setBatch(MessageId messageId) throws Exception
MessageStore
setBatch
in interface MessageStore
setBatch
in class AbstractMessageStore
Exception
Copyright © 2005–2019 The Apache Software Foundation. All rights reserved.