|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectfr.dyade.aaa.util.AbstractTransaction
fr.dyade.aaa.util.ATransaction
public final class ATransaction
Nested Class Summary |
---|
Nested classes/interfaces inherited from class fr.dyade.aaa.util.AbstractTransaction |
---|
AbstractTransaction.Context |
Field Summary | |
---|---|
private static java.io.ByteArrayOutputStream |
baos
|
(package private) static int |
CLEANUP_THRESHOLD_COMMIT
|
(package private) static int |
CLEANUP_THRESHOLD_OPERATION
|
(package private) static int |
CLEANUP_THRESHOLD_SIZE
|
private java.util.Hashtable |
clog
Log of all operations already commited but not reported on disk by the "garbage" Thread. |
private int |
commitCount
|
private int |
cumulativeSize
|
(package private) static boolean |
debug
|
private java.io.File |
dir
|
private static java.io.DataOutputStream |
dos
|
private static byte[] |
emptyUTFString
|
private boolean |
garbage
|
private java.lang.Thread |
gThread
|
private boolean |
isRunning
|
private java.lang.Object |
lock
|
private static java.lang.String |
LOCK
|
private java.io.File |
lockFile
|
private static java.lang.String |
LOG
|
protected java.io.FileDescriptor |
logFD
|
protected java.io.RandomAccessFile |
logFile
|
protected java.io.File |
logFilePN
|
private static org.objectweb.util.monolog.api.Logger |
logmon
|
private int |
operationCount
|
private java.util.Hashtable |
plog
Log currently used by "garbage" Thread, its thread reports all operation it contents on disk, then it deletes it. |
private static java.lang.String |
PLOG
|
protected java.io.File |
plogFilePN
|
Fields inherited from class fr.dyade.aaa.util.AbstractTransaction |
---|
OOS_STREAM_HEADER, perThreadContext, phase |
Fields inherited from interface fr.dyade.aaa.util.Transaction |
---|
COMMIT, FINALIZE, FREE, GARBAGE, INIT, Kb, Mb, PhaseInfo, ROLLBACK, RUN |
Constructor Summary | |
---|---|
ATransaction()
|
Method Summary | |
---|---|
void |
_stop()
|
void |
close()
Close the transaction module. |
void |
commit(boolean release)
Commit the current transaction. |
private void |
commit(java.util.Hashtable log)
Reports all logged operations on disk. |
void |
delete(java.lang.String dirName,
java.lang.String name)
Deletes the specified object. |
private void |
deleteDir(java.io.File dir)
Delete the specified directory if it is empty. |
java.io.File |
getDir()
|
private byte[] |
getFromLog(java.util.Hashtable log,
java.lang.Object key)
|
private byte[] |
getFromLog(java.lang.String dirName,
java.lang.String name)
|
java.lang.String[] |
getList(java.lang.String prefix)
Returns an array of strings naming the objects in the component started by this prefix. |
void |
init(java.lang.String path)
Initializes the atomic storage component. |
boolean |
isPersistent()
Tests if the Transaction component is persistent. |
byte[] |
loadByteArray(java.lang.String dirName,
java.lang.String name)
Load the specified byte array. |
protected void |
newLogFile()
|
void |
release()
Release the mutual exclusion. |
private void |
restart(java.util.Hashtable log,
java.io.File logFilePN)
|
void |
rollback()
|
void |
run()
|
protected void |
saveInLog(byte[] buf,
java.lang.String dirName,
java.lang.String name,
java.util.Hashtable log,
boolean copy,
boolean first)
Register the specified object in transaction log. |
protected void |
setPhase(int newPhase)
Changes the transaction state. |
void |
stop()
Stops the transaction module. |
protected void |
syncLogFile()
|
private void |
wakeup()
|
Methods inherited from class fr.dyade.aaa.util.AbstractTransaction |
---|
begin, create, create, createByteArray, createByteArray, delete, getPhase, getPhaseInfo, load, load, loadByteArray, save, save, save, saveByteArray, saveByteArray, saveByteArray |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Methods inherited from interface fr.dyade.aaa.util.TransactionMBean |
---|
getPhase, getPhaseInfo |
Field Detail |
---|
private static org.objectweb.util.monolog.api.Logger logmon
static final int CLEANUP_THRESHOLD_COMMIT
static final int CLEANUP_THRESHOLD_OPERATION
static final int CLEANUP_THRESHOLD_SIZE
private int commitCount
private int operationCount
private int cumulativeSize
private java.util.Hashtable clog
private java.util.Hashtable plog
private java.io.File dir
private static final java.lang.String LOCK
private static final java.lang.String LOG
private static final java.lang.String PLOG
private java.io.File lockFile
protected java.io.File logFilePN
protected java.io.File plogFilePN
private boolean garbage
private java.lang.Object lock
private boolean isRunning
private java.lang.Thread gThread
static final boolean debug
private static final byte[] emptyUTFString
private static java.io.ByteArrayOutputStream baos
private static java.io.DataOutputStream dos
protected java.io.RandomAccessFile logFile
protected java.io.FileDescriptor logFD
Constructor Detail |
---|
public ATransaction()
Method Detail |
---|
public boolean isPersistent()
TransactionMBean
isPersistent
in interface Transaction
isPersistent
in interface TransactionMBean
public final void init(java.lang.String path) throws java.io.IOException
Transaction
init
in interface Transaction
java.io.IOException
private final void restart(java.util.Hashtable log, java.io.File logFilePN) throws java.io.IOException
java.io.IOException
public final java.io.File getDir()
protected final void setPhase(int newPhase)
AbstractTransaction
setPhase
in class AbstractTransaction
newPhase
- the new transaction state.public final java.lang.String[] getList(java.lang.String prefix)
Transaction
getList
in interface Transaction
protected final void saveInLog(byte[] buf, java.lang.String dirName, java.lang.String name, java.util.Hashtable log, boolean copy, boolean first) throws java.io.IOException
AbstractTransaction
saveInLog
in class AbstractTransaction
buf
- the byte array containing the state of the object.dirName
- the directory name of the object.name
- the name of the object.log
- the log to use.copy
- the byte array can be modified, copy it.first
- the object is a new one.
java.io.IOException
private final byte[] getFromLog(java.util.Hashtable log, java.lang.Object key) throws java.io.IOException
java.io.IOException
private final byte[] getFromLog(java.lang.String dirName, java.lang.String name) throws java.io.IOException
java.io.IOException
public final byte[] loadByteArray(java.lang.String dirName, java.lang.String name) throws java.io.IOException
Transaction
loadByteArray
in interface Transaction
dirName
- the directory name of the object.name
- the name of the object.
java.io.IOException
public final void delete(java.lang.String dirName, java.lang.String name)
Transaction
delete
in interface Transaction
dirName
- the directory name of the object.name
- the name of the object.public void commit(boolean release) throws java.io.IOException
Transaction
commit
in interface Transaction
release
- if true releases the transaction at the end of the commit.
java.io.IOException
protected void newLogFile() throws java.io.IOException
java.io.IOException
protected void syncLogFile() throws java.io.IOException
java.io.IOException
public final void rollback()
public final void release() throws java.io.IOException
AbstractTransaction
release
in interface Transaction
release
in class AbstractTransaction
java.io.IOException
Transaction.release()
private final void commit(java.util.Hashtable log) throws java.io.IOException
java.io.IOException
private final void deleteDir(java.io.File dir)
public final void _stop()
public final void stop()
Transaction
stop
in interface Transaction
public void close()
close
in interface Transaction
public void run()
run
in interface java.lang.Runnable
private final void wakeup() throws java.io.IOException
java.io.IOException
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |