|
||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectjdbm.recman.TransactionManager
public final class TransactionManager
This class manages the transaction log that belongs to every
RecordFile
. The transaction log is either clean, or
in progress. In the latter case, the transaction manager
takes care of a roll forward.
Implementation note: this is a proof-of-concept implementation which hasn't been optimized for speed. For instance, all sorts of streams are created for every transaction.
Nested Class Summary | |
---|---|
static class |
TransactionManager.BlockIoComparator
INNER CLASS. |
Field Summary | |
---|---|
(package private) static int |
DEFAULT_TXNS_IN_LOG
By default, we keep 10 transactions in the log file before synchronizing it with the main database file. |
(package private) static java.lang.String |
extension
Extension of a log file. |
Constructor Summary | |
---|---|
TransactionManager(RecordFile owner)
Instantiates a transaction manager instance. |
Method Summary | |
---|---|
(package private) void |
add(BlockIo block)
Indicates the block is part of the transaction. |
(package private) void |
commit()
Commits the transaction to the log file. |
(package private) void |
forceClose()
Force closing the file without synchronizing pending transaction data. |
void |
setMaximumTransactionsInLog(int maxTxns)
Set the maximum number of transactions to record in the log (and keep in memory) before the log is synchronized with the main database file. |
(package private) void |
shutdown()
Shutdowns the transaction manager. |
(package private) void |
start()
Starts a transaction. |
void |
synchronizeLog()
Synchronize log file data with the main database file. |
(package private) void |
synchronizeLogFromDisk()
Use the disk-based transaction log to synchronize the data file. |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
static final int DEFAULT_TXNS_IN_LOG
static final java.lang.String extension
Constructor Detail |
---|
TransactionManager(RecordFile owner) throws java.io.IOException
owner
- the RecordFile instance that owns this transaction mgr.
java.io.IOException
Method Detail |
---|
public void synchronizeLog() throws java.io.IOException
After this call, the main database file is guaranteed to be consistent and guaranteed to be the only file needed for backup purposes.
java.io.IOException
public void setMaximumTransactionsInLog(int maxTxns) throws java.io.IOException
This method must be called while there are no pending transactions in the log.
java.io.IOException
void start() throws java.io.IOException
java.io.IOException
void add(BlockIo block) throws java.io.IOException
java.io.IOException
void commit() throws java.io.IOException
java.io.IOException
void shutdown() throws java.io.IOException
java.io.IOException
void forceClose() throws java.io.IOException
java.io.IOException
void synchronizeLogFromDisk() throws java.io.IOException
java.io.IOException
|
||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |