org.apache.activemq.store.journal
Class JournalPersistenceAdapter

java.lang.Object
  extended by org.apache.activemq.store.journal.JournalPersistenceAdapter
All Implemented Interfaces:
org.apache.activeio.journal.JournalEventListener, BrokerServiceAware, org.apache.activemq.Service, PersistenceAdapter, UsageListener

public class JournalPersistenceAdapter
extends Object
implements PersistenceAdapter, org.apache.activeio.journal.JournalEventListener, UsageListener, BrokerServiceAware

An implementation of PersistenceAdapter designed for use with a Journal and then check pointing asynchronously on a timeout with some other long term persistent storage.


Field Summary
protected  org.apache.activemq.thread.Scheduler scheduler
           
 
Constructor Summary
JournalPersistenceAdapter()
           
JournalPersistenceAdapter(org.apache.activeio.journal.Journal journal, PersistenceAdapter longTermPersistence, org.apache.activemq.thread.TaskRunnerFactory taskRunnerFactory)
           
 
Method Summary
 void beginTransaction(ConnectionContext context)
           
 void checkpoint(boolean sync)
           
 void checkpoint(boolean sync, boolean fullCheckpoint)
          When we checkpoint we move all the journalled data to long term storage.
 void commitTransaction(ConnectionContext context)
           
 MessageStore createQueueMessageStore(org.apache.activemq.command.ActiveMQQueue destination)
           
protected  IOException createRecoveryFailedException(Exception e)
           
 TopicMessageStore createTopicMessageStore(org.apache.activemq.command.ActiveMQTopic destinationName)
           
 TransactionStore createTransactionStore()
           
protected  IOException createWriteException(org.apache.activemq.command.DataStructure packet, Exception e)
           
protected  IOException createWriteException(String command, Exception e)
           
 void deleteAllMessages()
           
 boolean doCheckpoint()
          This does the actual checkpoint.
 Set<org.apache.activemq.command.ActiveMQDestination> getDestinations()
           
 File getDirectory()
           
 long getLastMessageBrokerSequenceId()
           
 long getLastProducerSequenceId(org.apache.activemq.command.ProducerId id)
           
 PersistenceAdapter getLongTermPersistence()
           
 int getMaxCheckpointMessageAddSize()
           
 int getMaxCheckpointWorkers()
           
 JournalTransactionStore getTransactionStore()
           
 SystemUsage getUsageManager()
           
 org.apache.activemq.wireformat.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.
 org.apache.activemq.command.DataStructure readCommand(org.apache.activeio.journal.RecordLocation location)
           
 void removeQueueMessageStore(org.apache.activemq.command.ActiveMQQueue destination)
          Cleanup method to remove any state associated with the given destination
 void removeTopicMessageStore(org.apache.activemq.command.ActiveMQTopic destination)
          Cleanup method to remove any state associated with the given destination
 void rollbackTransaction(ConnectionContext context)
           
 void setBrokerName(String brokerName)
           
 void setBrokerService(BrokerService brokerService)
           
 void setDirectory(File dir)
           
 void setJournal(org.apache.activeio.journal.Journal journal)
           
 void setMaxCheckpointMessageAddSize(int maxCheckpointMessageAddSize)
           
 void setMaxCheckpointWorkers(int maxCheckpointWorkers)
           
 void setPersistenceAdapter(PersistenceAdapter longTermPersistence)
           
 void setTaskRunnerFactory(org.apache.activemq.thread.TaskRunnerFactory taskRunnerFactory)
           
 void setUsageManager(SystemUsage usageManager)
           
 void setUseExternalMessageReferences(boolean enable)
           
 long size()
           
 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(org.apache.activemq.command.DataStructure command, boolean sync)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

scheduler

protected org.apache.activemq.thread.Scheduler scheduler
Constructor Detail

JournalPersistenceAdapter

public JournalPersistenceAdapter()

JournalPersistenceAdapter

public JournalPersistenceAdapter(org.apache.activeio.journal.Journal journal,
                                 PersistenceAdapter longTermPersistence,
                                 org.apache.activemq.thread.TaskRunnerFactory taskRunnerFactory)
                          throws IOException
Throws:
IOException
Method Detail

setTaskRunnerFactory

public void setTaskRunnerFactory(org.apache.activemq.thread.TaskRunnerFactory taskRunnerFactory)

setJournal

public void setJournal(org.apache.activeio.journal.Journal journal)

setPersistenceAdapter

public void setPersistenceAdapter(PersistenceAdapter longTermPersistence)

setUsageManager

public void setUsageManager(SystemUsage usageManager)
Specified by:
setUsageManager in interface PersistenceAdapter
Parameters:
usageManager - The UsageManager that is controlling the destination's memory usage.

getDestinations

public Set<org.apache.activemq.command.ActiveMQDestination> getDestinations()
Specified by:
getDestinations in interface PersistenceAdapter

createQueueMessageStore

public MessageStore createQueueMessageStore(org.apache.activemq.command.ActiveMQQueue destination)
                                     throws IOException
Specified by:
createQueueMessageStore in interface PersistenceAdapter
Throws:
IOException

createTopicMessageStore

public TopicMessageStore createTopicMessageStore(org.apache.activemq.command.ActiveMQTopic destinationName)
                                          throws IOException
Specified by:
createTopicMessageStore in interface PersistenceAdapter
Throws:
IOException

removeQueueMessageStore

public void removeQueueMessageStore(org.apache.activemq.command.ActiveMQQueue destination)
Cleanup method to remove any state associated with the given destination

Specified by:
removeQueueMessageStore in interface PersistenceAdapter
Parameters:
destination - Destination to forget

removeTopicMessageStore

public void removeTopicMessageStore(org.apache.activemq.command.ActiveMQTopic destination)
Cleanup method to remove any state associated with the given destination

Specified by:
removeTopicMessageStore in interface PersistenceAdapter
Parameters:
destination - Destination to forget

createTransactionStore

public TransactionStore createTransactionStore()
                                        throws IOException
Specified by:
createTransactionStore in interface PersistenceAdapter
Throws:
IOException

getLastMessageBrokerSequenceId

public long getLastMessageBrokerSequenceId()
                                    throws IOException
Specified by:
getLastMessageBrokerSequenceId in interface PersistenceAdapter
Throws:
IOException

beginTransaction

public void beginTransaction(ConnectionContext context)
                      throws IOException
Specified by:
beginTransaction in interface PersistenceAdapter
Throws:
IOException

commitTransaction

public void commitTransaction(ConnectionContext context)
                       throws IOException
Specified by:
commitTransaction in interface PersistenceAdapter
Throws:
IOException

rollbackTransaction

public void rollbackTransaction(ConnectionContext context)
                         throws IOException
Specified by:
rollbackTransaction in interface PersistenceAdapter
Throws:
IOException

start

public void start()
           throws Exception
Specified by:
start in interface org.apache.activemq.Service
Throws:
Exception

stop

public void stop()
          throws Exception
Specified by:
stop in interface org.apache.activemq.Service
Throws:
Exception

getLongTermPersistence

public PersistenceAdapter getLongTermPersistence()

getWireFormat

public org.apache.activemq.wireformat.WireFormat getWireFormat()
Returns:
Returns the wireFormat.

overflowNotification

public 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. Taking a checkpoint does this for us.

Specified by:
overflowNotification in interface org.apache.activeio.journal.JournalEventListener
See Also:
org.apache.activemq.journal.JournalEventListener#overflowNotification(org.apache.activemq.journal.RecordLocation)

checkpoint

public void checkpoint(boolean sync,
                       boolean fullCheckpoint)
When we checkpoint we move all the journalled data to long term storage.


checkpoint

public void checkpoint(boolean sync)
Specified by:
checkpoint in interface PersistenceAdapter

doCheckpoint

public boolean doCheckpoint()
This does the actual checkpoint.

Returns:

readCommand

public org.apache.activemq.command.DataStructure readCommand(org.apache.activeio.journal.RecordLocation location)
                                                      throws IOException
Parameters:
location -
Returns:
Throws:
IOException

createWriteException

protected IOException createWriteException(org.apache.activemq.command.DataStructure packet,
                                           Exception e)

createWriteException

protected IOException createWriteException(String command,
                                           Exception e)

createRecoveryFailedException

protected IOException createRecoveryFailedException(Exception e)

writeCommand

public org.apache.activeio.journal.RecordLocation writeCommand(org.apache.activemq.command.DataStructure command,
                                                               boolean sync)
                                                        throws IOException
Parameters:
command -
sync -
Returns:
Throws:
IOException

onUsageChanged

public void onUsageChanged(Usage usage,
                           int oldPercentUsage,
                           int newPercentUsage)
Specified by:
onUsageChanged in interface UsageListener

getTransactionStore

public JournalTransactionStore getTransactionStore()

deleteAllMessages

public void deleteAllMessages()
                       throws IOException
Specified by:
deleteAllMessages in interface PersistenceAdapter
Throws:
IOException

getUsageManager

public SystemUsage getUsageManager()

getMaxCheckpointMessageAddSize

public int getMaxCheckpointMessageAddSize()

setMaxCheckpointMessageAddSize

public void setMaxCheckpointMessageAddSize(int maxCheckpointMessageAddSize)

getMaxCheckpointWorkers

public int getMaxCheckpointWorkers()

setMaxCheckpointWorkers

public void setMaxCheckpointWorkers(int maxCheckpointWorkers)

isUseExternalMessageReferences

public boolean isUseExternalMessageReferences()

setUseExternalMessageReferences

public void setUseExternalMessageReferences(boolean enable)

toPacket

public org.apache.activeio.packet.Packet toPacket(ByteSequence sequence)

toByteSequence

public ByteSequence toByteSequence(org.apache.activeio.packet.Packet packet)

setBrokerName

public void setBrokerName(String brokerName)
Specified by:
setBrokerName in interface PersistenceAdapter

toString

public String toString()
Overrides:
toString in class Object

setDirectory

public void setDirectory(File dir)
Specified by:
setDirectory in interface PersistenceAdapter

getDirectory

public File getDirectory()
Specified by:
getDirectory in interface PersistenceAdapter

size

public long size()
Specified by:
size in interface PersistenceAdapter

setBrokerService

public void setBrokerService(BrokerService brokerService)
Specified by:
setBrokerService in interface BrokerServiceAware

getLastProducerSequenceId

public long getLastProducerSequenceId(org.apache.activemq.command.ProducerId id)
Specified by:
getLastProducerSequenceId in interface PersistenceAdapter


Copyright © 2005-2013 The Apache Software Foundation. All Rights Reserved.