public class JournalPersistenceAdapter extends Object implements PersistenceAdapter, org.apache.activeio.journal.JournalEventListener, UsageListener, BrokerServiceAware
PersistenceAdapter designed for use with a
Journal and then check pointing asynchronously on a timeout with some
other long term persistent storage.| Constructor and Description |
|---|
JournalPersistenceAdapter() |
JournalPersistenceAdapter(org.apache.activeio.journal.Journal journal,
PersistenceAdapter longTermPersistence,
TaskRunnerFactory taskRunnerFactory) |
| Modifier and Type | Method and Description |
|---|---|
void |
beginTransaction(ConnectionContext context)
This method starts a transaction on the persistent storage - which is
nothing to do with JMS or XA transactions - its purely a mechanism to
perform multiple writes to a persistent store in 1 transaction as a
performance optimization.
|
void |
checkpoint(boolean sync)
checkpoint any
|
void |
checkpoint(boolean sync,
boolean fullCheckpoint)
When we checkpoint we move all the journalled data to long term storage.
|
void |
commitTransaction(ConnectionContext context)
Commit a persistence transaction
|
JobSchedulerStore |
createJobSchedulerStore()
Creates and returns a new Job Scheduler store instance.
|
MessageStore |
createQueueMessageStore(ActiveMQQueue destination)
Factory method to create a new queue message store with the given
destination name
|
protected IOException |
createRecoveryFailedException(Exception e) |
TopicMessageStore |
createTopicMessageStore(ActiveMQTopic destinationName)
Factory method to create a new topic message store with the given
destination name
|
TransactionStore |
createTransactionStore()
Factory method to create a new persistent prepared transaction store for
XA recovery
|
protected IOException |
createWriteException(DataStructure packet,
Exception e) |
protected IOException |
createWriteException(String command,
Exception e) |
void |
deleteAllMessages()
Delete's all the messages in the persistent store.
|
boolean |
doCheckpoint()
This does the actual checkpoint.
|
long |
getCheckpointInterval() |
Set<ActiveMQDestination> |
getDestinations()
Returns a set of all the
ActiveMQDestination objects that the
persistence store is aware exist. |
File |
getDirectory() |
long |
getLastMessageBrokerSequenceId() |
long |
getLastProducerSequenceId(ProducerId id)
return the last stored producer sequenceId for this producer Id used to
suppress duplicate sends on failover reconnect at the transport when a
reconnect occurs
|
PersistenceAdapter |
getLongTermPersistence() |
int |
getMaxCheckpointMessageAddSize() |
int |
getMaxCheckpointWorkers() |
JournalTransactionStore |
getTransactionStore() |
SystemUsage |
getUsageManager() |
WireFormat |
getWireFormat() |
boolean |
isUseExternalMessageReferences() |
void |
onUsageChanged(Usage usage,
int oldPercentUsage,
int newPercentUsage) |
void |
overflowNotification(org.apache.activeio.journal.RecordLocation safeLocation)
The Journal give us a call back so that we can move old data out of the
journal.
|
DataStructure |
readCommand(org.apache.activeio.journal.RecordLocation location) |
void |
removeQueueMessageStore(ActiveMQQueue destination)
Cleanup method to remove any state associated with the given destination
|
void |
removeTopicMessageStore(ActiveMQTopic destination)
Cleanup method to remove any state associated with the given destination
|
void |
rollbackTransaction(ConnectionContext context)
Rollback a persistence transaction
|
void |
setBrokerName(String brokerName)
Set the name of the broker using the adapter
|
void |
setBrokerService(BrokerService brokerService) |
void |
setCheckpointInterval(long checkpointInterval) |
void |
setDirectory(File dir)
Set the directory where any data files should be created
|
void |
setJournal(org.apache.activeio.journal.Journal journal) |
void |
setMaxCheckpointMessageAddSize(int maxCheckpointMessageAddSize) |
void |
setMaxCheckpointWorkers(int maxCheckpointWorkers) |
void |
setPersistenceAdapter(PersistenceAdapter longTermPersistence) |
void |
setTaskRunnerFactory(TaskRunnerFactory taskRunnerFactory) |
void |
setUsageManager(SystemUsage usageManager) |
void |
setUseExternalMessageReferences(boolean enable) |
long |
size()
A hint to return the size of the store on disk
|
void |
start() |
void |
stop() |
ByteSequence |
toByteSequence(org.apache.activeio.packet.Packet packet) |
org.apache.activeio.packet.Packet |
toPacket(ByteSequence sequence) |
String |
toString() |
org.apache.activeio.journal.RecordLocation |
writeCommand(DataStructure command,
boolean sync) |
public JournalPersistenceAdapter()
public JournalPersistenceAdapter(org.apache.activeio.journal.Journal journal, PersistenceAdapter longTermPersistence, TaskRunnerFactory taskRunnerFactory) throws IOException
IOExceptionpublic void setTaskRunnerFactory(TaskRunnerFactory taskRunnerFactory)
public void setJournal(org.apache.activeio.journal.Journal journal)
public void setPersistenceAdapter(PersistenceAdapter longTermPersistence)
public void setUsageManager(SystemUsage usageManager)
setUsageManager in interface PersistenceAdapterusageManager - The UsageManager that is controlling the
destination's memory usage.public Set<ActiveMQDestination> getDestinations()
PersistenceAdapterActiveMQDestination objects that the
persistence store is aware exist.getDestinations in interface PersistenceAdapterpublic MessageStore createQueueMessageStore(ActiveMQQueue destination) throws IOException
PersistenceAdaptercreateQueueMessageStore in interface PersistenceAdapterIOExceptionpublic TopicMessageStore createTopicMessageStore(ActiveMQTopic destinationName) throws IOException
PersistenceAdaptercreateTopicMessageStore in interface PersistenceAdapterIOExceptionpublic void removeQueueMessageStore(ActiveMQQueue destination)
removeQueueMessageStore in interface PersistenceAdapterdestination - Destination to forgetpublic void removeTopicMessageStore(ActiveMQTopic destination)
removeTopicMessageStore in interface PersistenceAdapterdestination - Destination to forgetpublic TransactionStore createTransactionStore() throws IOException
PersistenceAdaptercreateTransactionStore in interface PersistenceAdapterIOExceptionpublic long getLastMessageBrokerSequenceId() throws IOException
getLastMessageBrokerSequenceId in interface PersistenceAdapterIOExceptionpublic void beginTransaction(ConnectionContext context) throws IOException
PersistenceAdapterbeginTransaction in interface PersistenceAdapterIOExceptionpublic void commitTransaction(ConnectionContext context) throws IOException
PersistenceAdaptercommitTransaction in interface PersistenceAdapterIOExceptionPersistenceAdapter.beginTransaction(ConnectionContext context)public void rollbackTransaction(ConnectionContext context) throws IOException
PersistenceAdapterrollbackTransaction in interface PersistenceAdapterIOExceptionPersistenceAdapter.beginTransaction(ConnectionContext context)public PersistenceAdapter getLongTermPersistence()
public WireFormat getWireFormat()
public void overflowNotification(org.apache.activeio.journal.RecordLocation safeLocation)
overflowNotification in interface org.apache.activeio.journal.JournalEventListenerorg.apache.activemq.journal.JournalEventListener#overflowNotification(org.apache.activemq.journal.RecordLocation)public void checkpoint(boolean sync, boolean fullCheckpoint)
public void checkpoint(boolean sync)
PersistenceAdaptercheckpoint in interface PersistenceAdapterpublic boolean doCheckpoint()
public DataStructure readCommand(org.apache.activeio.journal.RecordLocation location) throws IOException
location - IOExceptionprotected IOException createWriteException(DataStructure packet, Exception e)
protected IOException createWriteException(String command, Exception e)
protected IOException createRecoveryFailedException(Exception e)
public org.apache.activeio.journal.RecordLocation writeCommand(DataStructure command, boolean sync) throws IOException
command - sync - IOExceptionpublic void onUsageChanged(Usage usage, int oldPercentUsage, int newPercentUsage)
onUsageChanged in interface UsageListenerpublic JournalTransactionStore getTransactionStore()
public void deleteAllMessages() throws IOException
PersistenceAdapterdeleteAllMessages in interface PersistenceAdapterIOExceptionpublic SystemUsage getUsageManager()
public int getMaxCheckpointMessageAddSize()
public void setMaxCheckpointMessageAddSize(int maxCheckpointMessageAddSize)
public int getMaxCheckpointWorkers()
public void setMaxCheckpointWorkers(int maxCheckpointWorkers)
public long getCheckpointInterval()
public void setCheckpointInterval(long checkpointInterval)
public boolean isUseExternalMessageReferences()
public void setUseExternalMessageReferences(boolean enable)
public org.apache.activeio.packet.Packet toPacket(ByteSequence sequence)
public ByteSequence toByteSequence(org.apache.activeio.packet.Packet packet)
public void setBrokerName(String brokerName)
PersistenceAdaptersetBrokerName in interface PersistenceAdapterpublic void setDirectory(File dir)
PersistenceAdaptersetDirectory in interface PersistenceAdapterpublic File getDirectory()
getDirectory in interface PersistenceAdapterpublic long size()
PersistenceAdaptersize in interface PersistenceAdapterpublic void setBrokerService(BrokerService brokerService)
setBrokerService in interface BrokerServiceAwarepublic long getLastProducerSequenceId(ProducerId id)
PersistenceAdaptergetLastProducerSequenceId in interface PersistenceAdapterid - the producerId to find a sequenceId forpublic JobSchedulerStore createJobSchedulerStore() throws IOException, UnsupportedOperationException
PersistenceAdaptercreateJobSchedulerStore in interface PersistenceAdapterIOException - If an error occurs while creating the new JobSchedulerStore.UnsupportedOperationException - If this adapter does not provide its own
scheduler store implementation.Copyright © 2005–2015 FuseSource, Corp.. All rights reserved.