Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## org.codehaus.activemq.store.journal
Class JournalPersistenceAdapter

    java.lang.Object
      org.codehaus.activemq.service.impl.PersistenceAdapterSupport
          org.codehaus.activemq.store.journal.JournalPersistenceAdapter

All Implemented Interfaces:
  JournalEventListener, PersistenceAdapter, Service

public class JournalPersistenceAdapter
extends PersistenceAdapterSupport
implements JournalEventListener

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

Version:
  $Revision: 1.9 $

Field Summary
`(package private) ClockDaemon` | `clockDaemon`

Constructor Summary
`JournalPersistenceAdapter()`
`JournalPersistenceAdapter(File directory, PersistenceAdapter longTermPersistence, DefaultWireFormat wireFormat)`

Method Summary
`void` | `beginTransaction()` 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 optimisation.
`void` | `commitTransaction()` Commit a persistence transaction
`PreparedTransactionStore` | `createPreparedTransactionStore()` Factory method to create a new persistent prepared transaction store for XA recovery
`MessageStore` | `createQueueMessageStore(String destinationName)` Factory method to create a new queue message store with the given destination name
`protected JMSException` | `createRecoveryFailedException(Exception e)`
`TopicMessageStore` | `createTopicMessageStore(String destinationName)` Factory method to create a new topic message store with the given destination name
`protected JMSException` | `createWriteException(Packet packet, Exception e)`
`protected JMSException` | `createWriteException(String command, Exception e)`
`ClockDaemon` | `getClockDaemon()`
`File` | `getDirectory()`
`Map` | `getInitialDestinations()` Returns a map, indexed by String name, of all the `Destination` objects active on startup.
`PersistenceAdapter` | `getLongTermPersistence()`
`WireFormat` | `getWireFormat()`
`boolean` | `isSync()`
`static JournalPersistenceAdapter` | `newInstance(File directory)` Factory method to create an instance using the defaults
`void` | `overflowNotification(RecordLocation safeLocation)` The Journal give us a call back so that we can move old data out of the journal.
`Packet` | `readPacket(RecordLocation location)`
`void` | `rollbackTransaction()` Rollback a persistence transaction
`void` | `setClockDaemon(ClockDaemon clockDaemon)`
`void` | `setDirectory(File directory)`
`void` | `setLongTermPersistence(PersistenceAdapter longTermPersistence)`
`void` | `setSync(boolean sync)`
`void` | `setWireFormat(WireFormat wireFormat)`
`void` | `start()` Called to start the service
`void` | `stop()` Called to shutdown the service
`RecordLocation` | `writeCommand(String command, boolean sync)`
`RecordLocation` | `writePacket(String destination, Packet packet, boolean sync)`

Methods inherited from class org.codehaus.activemq.service.impl.PersistenceAdapterSupport
`createQueueMessageContainer, createTopicMessageContainer`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Field Detail

### clockDaemon

    ClockDaemon clockDaemon

Constructor Detail

### JournalPersistenceAdapter

    public JournalPersistenceAdapter()

### JournalPersistenceAdapter

    public JournalPersistenceAdapter(File directory,
                                     PersistenceAdapter longTermPersistence,
                                     DefaultWireFormat wireFormat)
                              throws IOException

Method Detail

### newInstance

    public static JournalPersistenceAdapter newInstance(File directory)
                                                 throws IOException,
                                                        JMSException

  Factory method to create an instance using the defaults

  Parameters:
    `directory` - the directory in which to store the persistent files
  Returns:
  Throws:
    `JMSException`
    `IOException`

### getInitialDestinations

    public Map getInitialDestinations()

  Description copied from interface: `PersistenceAdapter`
  Returns a map, indexed by String name, of all the `Destination` objects active on startup.

  Specified by:
    `getInitialDestinations` in interface `PersistenceAdapter`
  Returns:

### createQueueMessageStore

    public MessageStore createQueueMessageStore(String destinationName)
                                         throws JMSException

  Description copied from interface: `PersistenceAdapter`
  Factory method to create a new queue message store with the given destination name

  Specified by:
    `createQueueMessageStore` in interface `PersistenceAdapter`
  Throws:
    `JMSException`

### createTopicMessageStore

    public TopicMessageStore createTopicMessageStore(String destinationName)
                                              throws JMSException

  Description copied from interface: `PersistenceAdapter`
  Factory method to create a new topic message store with the given destination name

  Specified by:
    `createTopicMessageStore` in interface `PersistenceAdapter`
  Throws:
    `JMSException`

### createPreparedTransactionStore

    public PreparedTransactionStore createPreparedTransactionStore()
                                                            throws JMSException

  Description copied from interface: `PersistenceAdapter`
  Factory method to create a new persistent prepared transaction store for XA recovery

  Specified by:
    `createPreparedTransactionStore` in interface `PersistenceAdapter`
  Throws:
    `JMSException`

### beginTransaction

    public void beginTransaction()
                          throws JMSException

  Description copied from interface: `PersistenceAdapter`
  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 optimisation.

  Typically one transaction will require one disk synchronization point and so for real high performance its usually faster to perform many writes within the same transaction to minimise latency caused by disk synchronization. This is especially true when using tools like Berkeley Db or embedded JDBC servers.

  Specified by:
    `beginTransaction` in interface `PersistenceAdapter`
  Throws:
    `JMSException`

### commitTransaction

    public void commitTransaction()
                           throws JMSException

  Description copied from interface: `PersistenceAdapter`
  Commit a persistence transaction

  Specified by:
    `commitTransaction` in interface `PersistenceAdapter`
  Throws:
    `JMSException`
  See Also:
    `PersistenceAdapter.beginTransaction()`

### rollbackTransaction

    public void rollbackTransaction()

  Description copied from interface: `PersistenceAdapter`
  Rollback a persistence transaction

  Specified by:
    `rollbackTransaction` in interface `PersistenceAdapter`
  See Also:
    `PersistenceAdapter.beginTransaction()`

### start

    public void start()
               throws JMSException

  Description copied from interface: `Service`
  Called to start the service

  Specified by:
    `start` in interface `Service`
  Throws:
    `JMSException`

### stop

    public void stop()
              throws JMSException

  Description copied from interface: `Service`
  Called to shutdown the service

  Specified by:
    `stop` in interface `Service`
  Throws:
    `JMSException`

### getLongTermPersistence

    public PersistenceAdapter getLongTermPersistence()

### setLongTermPersistence

    public void setLongTermPersistence(PersistenceAdapter longTermPersistence)

### getDirectory

    public File getDirectory()

  Returns:
    Returns the directory.

### setDirectory

    public void setDirectory(File directory)

  Parameters:
    `directory` - The directory to set.

### isSync

    public boolean isSync()

  Returns:
    Returns the sync.

### setSync

    public void setSync(boolean sync)

  Parameters:
    `sync` - The sync to set.

### getWireFormat

    public WireFormat getWireFormat()

  Returns:
    Returns the wireFormat.

### setWireFormat

    public void setWireFormat(WireFormat wireFormat)

  Parameters:
    `wireFormat` - The wireFormat to set.

### overflowNotification

    public void overflowNotification(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 `JournalEventListener`
  Parameters:
    `safeLocation` - the oldest location that the journal recomends the mark to be set.
  See Also:
    `JournalEventListener.overflowNotification(org.codehaus.activemq.journal.RecordLocation)`

### writePacket

    public RecordLocation writePacket(String destination,
                                      Packet packet,
                                      boolean sync)
                               throws JMSException

  Parameters:
    `sync` -
  Throws:
    `JMSException`

### writeCommand

    public RecordLocation writeCommand(String command,
                                       boolean sync)
                                throws JMSException

  Parameters:
    `sync` -
  Throws:
    `JMSException`

### readPacket

    public Packet readPacket(RecordLocation location)
                      throws JMSException

  Parameters:
    `location` -
  Returns:
  Throws:
    `JMSException`

### createWriteException

    protected JMSException createWriteException(Packet packet,
                                                Exception e)

### createWriteException

    protected JMSException createWriteException(String command,
                                                Exception e)

### createRecoveryFailedException

    protected JMSException createRecoveryFailedException(Exception e)

### getClockDaemon

    public ClockDaemon getClockDaemon()

### setClockDaemon

    public void setClockDaemon(ClockDaemon clockDaemon)

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

Copyright © 2004 Protique, Ltd.. All Rights Reserved.