|
|||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||||
java.lang.Objectorg.codehaus.activemq.journal.impl.JournalImpl
A high speed Journal implementation. Inspired by the ideas of the Howl project but tailored to the needs of ActiveMQ.
This Journal provides the following features:
| Field Summary | |
(package private) LogFileManager |
manager
|
(package private) LongSequenceGenerator |
sequenceGenerator
|
| Constructor Summary | |
JournalImpl()
|
|
JournalImpl(File logDirectory)
|
|
JournalImpl(File logDirectory,
int segments,
int segmentSize)
|
|
| Method Summary | |
void |
close()
Close the Journal. |
RecordLocation |
getMark()
Obtains the mark that was set in the Journal. |
RecordLocation |
getNextRecordLocation(RecordLocation lastLocation)
Allows you to get the next RecordLocation after the location that
is in the journal. |
byte[] |
read(RecordLocation location)
Reads a previously written record from the journal. |
void |
setJournalEventListener(JournalEventListener eventListener)
Registers a JournalEventListener that will receive notifications from the Journal. |
void |
setMark(RecordLocation recordLocator,
boolean force)
Informs the journal that all the journal space up to the location is no longer
needed and can be reclaimed for reuse. |
String |
toString()
|
RecordLocation |
write(byte[] data,
boolean sync)
Writes a byte array record to the journal. |
| Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
| Field Detail |
LogFileManager manager
LongSequenceGenerator sequenceGenerator
| Constructor Detail |
public JournalImpl()
throws IOException
public JournalImpl(File logDirectory)
throws IOException
public JournalImpl(File logDirectory,
int segments,
int segmentSize)
throws IOException
| Method Detail |
public RecordLocation write(byte[] data,
boolean sync)
throws IOException
Journalrecord to the journal. If sync
is true, then this call blocks until the data has landed on the physical
disk. Otherwise, this call returns imeadiatly.
write in interface Journaldata - - the data to be written to disk.sync - - If this call should block until the data lands on disk.
IOExceptionJournal.write(byte[], boolean)
public void setMark(RecordLocation recordLocator,
boolean force)
throws InvalidRecordLocationException,
IOException
Journallocation is no longer
needed and can be reclaimed for reuse.
setMark in interface JournalrecordLocator - the location of the record to mark. All record locations before the marked
location will no longger be vaild.force - if this call should block until the mark is set on the journal.
InvalidRecordLocationException - if location parameter is out of range.
It cannot be a location that is before the current mark.
IOException - if the record could not be read.Journal.setMark(org.codehaus.activemq.journal.RecordLocation,
boolean)public RecordLocation getMark()
Journal
getMark in interface JournalJournal.getMark()
public void close()
throws IOException
Journal
close in interface JournalIOException - if an error occurs while the journal is being closed.Journal.close()public void setJournalEventListener(JournalEventListener eventListener)
JournalJournalEventListener that will receive notifications from the Journal.
setJournalEventListener in interface JournaleventListener - object that will receive journal events.Journal.setJournalEventListener(org.codehaus.activemq.journal.JournalEventListener)
public RecordLocation getNextRecordLocation(RecordLocation lastLocation)
throws IOException,
InvalidRecordLocationException
Journallocation that
is in the journal.
getNextRecordLocation in interface JournallastLocation - the reference location the is used to find the next location.
To get the oldest location available in the journal, location
should be set to null.
InvalidRecordLocationException
IOExceptionJournal.getNextRecordLocation(org.codehaus.activemq.journal.RecordLocation)
public byte[] read(RecordLocation location)
throws InvalidRecordLocationException,
IOException
Journal
read in interface Journallocation - is where to read the record from.
location.
IOException - if the record could not be read.
InvalidRecordLocationException - if location parameter is out of range.
It cannot be a location that is before the current mark.Journal.getNextRecordLocation(org.codehaus.activemq.journal.RecordLocation)public String toString()
Object.toString()
|
|||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||||