|
|||||||||||
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
Journal
record
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 Journal
data
- - the data to be written to disk.sync
- - If this call should block until the data lands on disk.
IOException
Journal.write(byte[], boolean)
public void setMark(RecordLocation recordLocator, boolean force) throws InvalidRecordLocationException, IOException
Journal
location
is no longer
needed and can be reclaimed for reuse.
setMark
in interface Journal
recordLocator
- 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 Journal
Journal.getMark()
public void close() throws IOException
Journal
close
in interface Journal
IOException
- if an error occurs while the journal is being closed.Journal.close()
public void setJournalEventListener(JournalEventListener eventListener)
Journal
JournalEventListener
that will receive notifications from the Journal.
setJournalEventListener
in interface Journal
eventListener
- object that will receive journal events.Journal.setJournalEventListener(org.codehaus.activemq.journal.JournalEventListener)
public RecordLocation getNextRecordLocation(RecordLocation lastLocation) throws IOException, InvalidRecordLocationException
Journal
location
that
is in the journal.
getNextRecordLocation
in interface Journal
lastLocation
- 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
IOException
Journal.getNextRecordLocation(org.codehaus.activemq.journal.RecordLocation)
public byte[] read(RecordLocation location) throws InvalidRecordLocationException, IOException
Journal
read
in interface Journal
location
- 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 |