fr.dyade.aaa.ext
Class NGTransaction

java.lang.Object
  extended by fr.dyade.aaa.util.AbstractTransaction
      extended by fr.dyade.aaa.ext.NGTransaction
All Implemented Interfaces:
NGTransactionMBean, Transaction, TransactionMBean

public final class NGTransaction
extends AbstractTransaction
implements NGTransactionMBean

The NGTransaction class implements a transactional storage. For efficiency it uses multiples files for its transaction journal, the final storage is provided through the Repository interface on filesystem or database.

Be Careful, the configuration properties don't work for the transaction component: these properties are saved in the transaction repository so they can not be used to configure it.

See Also:
Transaction, Repository, FileRepository, DBRepository, MySqlDBRepository

Nested Class Summary
static class NGTransaction.LogFile
           
 
Nested classes/interfaces inherited from class fr.dyade.aaa.util.AbstractTransaction
AbstractTransaction.Context
 
Field Summary
 
Fields inherited from class fr.dyade.aaa.util.AbstractTransaction
dir, logmon, OOS_STREAM_HEADER, perThreadContext, phase, startTime
 
Fields inherited from interface fr.dyade.aaa.util.Transaction
COMMIT, FINALIZE, FREE, GARBAGE, INIT, Kb, Mb, PhaseInfo, ROLLBACK, RUN
 
Constructor Summary
NGTransaction()
           
 
Method Summary
 void close()
          Close the transaction module.
 void commit(boolean release)
          Commit the current transaction.
 void delete(java.lang.String dirName, java.lang.String name)
          Deletes the specified object.
 int getCommitCount()
          Returns the number of commit operation since starting up.
 int getGarbageCount()
          Returns the number of garbage operation since starting up.
 int getGarbageRatio()
          Returns the ratio of garbage operations since starting up.
 long getGarbageTime()
          Returns the cumulated time of garbage operations since starting up.
 java.lang.String[] getList(java.lang.String prefix)
          Returns an array of strings naming the persistent objects denoted by a name that satisfy the specified prefix.
 int getLogFileSize()
          Returns the current size of disk log in Kb.
 int getLogMemoryCapacity()
          Returns the initial capacity of global in memory log (by default 4096).
 int getLogMemorySize()
          Returns the number of operation in the memory log.
 int getLogThresholdOperation()
          Returns the pool size for operation objects, by default 1000.
 int getMaxLogFileSize()
          Returns the maximum size of disk log in Mb, by default 16Mb.
 int getNbBadDeletedObjects()
          Returns the number of useless delete operation on repository.
 int getNbDeletedObjects()
          Returns the number of delete operation on repository.
 int getNbLoadedFromLog()
          Returns the number of load operation from a log file since last start.
 int getNbLoadedObjects()
          Returns the number of load operation from repository.
 int getNbLogFiles()
          Returns the number of rolled log files.
 int getNbSavedObjects()
          Returns the number of save operation to repository.
 java.lang.String getPersistenceDir()
          Returns the path of persistence directory.
 java.lang.String getRepositoryImpl()
          Returns the Repository classname implementation.
 void initRepository()
           
 boolean isPersistent()
          Tests if the Transaction component is persistent.
 boolean isSyncOnWrite()
          Returns true if every write in the log file is synced to disk.
 byte[] loadByteArray(java.lang.String dirName, java.lang.String name)
          Load the specified byte array.
protected  void saveInLog(byte[] buf, java.lang.String dirName, java.lang.String name, java.util.Hashtable log, boolean copy, boolean first)
          Save an object state already serialized.
 void setMaxLogFileSize(int size)
          Sets the maximum size of disk log in Mb.
protected  void setPhase(int newPhase)
          Changes the transaction state.
 void stop()
          Stops the transaction module.
 java.lang.String toString()
          Returns a string representation for this object.
 
Methods inherited from class fr.dyade.aaa.util.AbstractTransaction
begin, create, create, createByteArray, createByteArray, delete, getPhase, getPhaseInfo, getStartTime, init, load, load, loadByteArray, release, save, save, save, saveByteArray, saveByteArray, saveByteArray
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface fr.dyade.aaa.util.TransactionMBean
getPhase, getPhaseInfo, getStartTime
 

Constructor Detail

NGTransaction

public NGTransaction()
Method Detail

getLogMemoryCapacity

public final int getLogMemoryCapacity()
Returns the initial capacity of global in memory log (by default 4096).

Specified by:
getLogMemoryCapacity in interface NGTransactionMBean
Returns:
The initial capacity of global in memory log.

getLogMemorySize

public int getLogMemorySize()
Returns the number of operation in the memory log.

Specified by:
getLogMemorySize in interface NGTransactionMBean
Returns:
The number of operation in the memory log.

getMaxLogFileSize

public final int getMaxLogFileSize()
Returns the maximum size of disk log in Mb, by default 16Mb.

Specified by:
getMaxLogFileSize in interface NGTransactionMBean
Returns:
The maximum size of disk log in Mb.

setMaxLogFileSize

public final void setMaxLogFileSize(int size)
Sets the maximum size of disk log in Mb.

Specified by:
setMaxLogFileSize in interface NGTransactionMBean
Parameters:
size - The maximum size of disk log in Mb.

getLogFileSize

public final int getLogFileSize()
Returns the current size of disk log in Kb.

Specified by:
getLogFileSize in interface NGTransactionMBean
Returns:
The size of disk log in Kb.

getNbLogFiles

public final int getNbLogFiles()
Returns the number of rolled log files.

Specified by:
getNbLogFiles in interface NGTransactionMBean
Returns:
The number of rolled log files.

isSyncOnWrite

public boolean isSyncOnWrite()
Description copied from interface: NGTransactionMBean
Returns true if every write in the log file is synced to disk.

Specified by:
isSyncOnWrite in interface NGTransactionMBean
Returns:
the syncOnWrite

getLogThresholdOperation

public final int getLogThresholdOperation()
Returns the pool size for operation objects, by default 1000.

Specified by:
getLogThresholdOperation in interface NGTransactionMBean
Returns:
The pool size for operation objects.

getCommitCount

public final int getCommitCount()
Returns the number of commit operation since starting up.

Specified by:
getCommitCount in interface NGTransactionMBean
Returns:
The number of commit operation.

getGarbageCount

public final int getGarbageCount()
Returns the number of garbage operation since starting up.

Specified by:
getGarbageCount in interface NGTransactionMBean
Returns:
The number of garbage operation.

getGarbageTime

public long getGarbageTime()
Returns the cumulated time of garbage operations since starting up.

Specified by:
getGarbageTime in interface NGTransactionMBean
Returns:
The cumulated time of garbage operations since starting up.

getNbLoadedFromLog

public int getNbLoadedFromLog()
Returns the number of load operation from a log file since last start.

Specified by:
getNbLoadedFromLog in interface NGTransactionMBean
Returns:
The number of load operation from a log file.

getGarbageRatio

public int getGarbageRatio()
Returns the ratio of garbage operations since starting up.

Specified by:
getGarbageRatio in interface NGTransactionMBean
Returns:
The ratio of garbage operations since starting up.

getRepositoryImpl

public java.lang.String getRepositoryImpl()
Returns the Repository classname implementation.

Specified by:
getRepositoryImpl in interface NGTransactionMBean
Returns:
The Repository classname implementation.

getNbSavedObjects

public int getNbSavedObjects()
Returns the number of save operation to repository.

Specified by:
getNbSavedObjects in interface NGTransactionMBean
Returns:
The number of save operation to repository.

getNbDeletedObjects

public int getNbDeletedObjects()
Returns the number of delete operation on repository.

Specified by:
getNbDeletedObjects in interface NGTransactionMBean
Returns:
The number of delete operation on repository.

getNbBadDeletedObjects

public int getNbBadDeletedObjects()
Returns the number of useless delete operation on repository.

Specified by:
getNbBadDeletedObjects in interface NGTransactionMBean
Returns:
The number of useless delete operation on repository.

getNbLoadedObjects

public int getNbLoadedObjects()
Returns the number of load operation from repository.

Specified by:
getNbLoadedObjects in interface NGTransactionMBean
Returns:
The number of load operation from repository.

initRepository

public final void initRepository()
                          throws java.io.IOException
Specified by:
initRepository in class AbstractTransaction
Throws:
java.io.IOException

isPersistent

public boolean isPersistent()
Tests if the Transaction component is persistent.

Specified by:
isPersistent in interface Transaction
Specified by:
isPersistent in interface TransactionMBean
Returns:
true.

getPersistenceDir

public java.lang.String getPersistenceDir()
Returns the path of persistence directory.

Returns:
The path of persistence directory.

setPhase

protected final void setPhase(int newPhase)
Description copied from class: AbstractTransaction
Changes the transaction state.

Specified by:
setPhase in class AbstractTransaction
Parameters:
newPhase - the new transaction state.

getList

public java.lang.String[] getList(java.lang.String prefix)
Returns an array of strings naming the persistent objects denoted by a name that satisfy the specified prefix. Each string is an object name.

Specified by:
getList in interface Transaction
Parameters:
prefix - the prefix
Returns:
An array of strings naming the persistent objects denoted by a name that satisfy the specified prefix. The array will be empty if no names match.

saveInLog

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
Save an object state already serialized. The byte array in parameter may be modified so we must duplicate it.

Specified by:
saveInLog in class AbstractTransaction
Parameters:
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.
Throws:
java.io.IOException

loadByteArray

public byte[] loadByteArray(java.lang.String dirName,
                            java.lang.String name)
                     throws java.io.IOException
Description copied from interface: Transaction
Load the specified byte array.

Specified by:
loadByteArray in interface Transaction
Parameters:
dirName - the directory name of the object.
name - the name of the object.
Returns:
the loaded byte array.
Throws:
java.io.IOException

delete

public final void delete(java.lang.String dirName,
                         java.lang.String name)
Description copied from interface: Transaction
Deletes the specified object.

Specified by:
delete in interface Transaction
Parameters:
dirName - the directory name of the object.
name - the name of the object.

commit

public final void commit(boolean release)
                  throws java.io.IOException
Description copied from interface: Transaction
Commit the current transaction.

Specified by:
commit in interface Transaction
Parameters:
release - if true releases the transaction at the end of the commit.
Throws:
java.io.IOException

stop

public void stop()
Stops the transaction module. It waits all transactions termination, then the module is kept in a FREE 'ready to use' state. The log file is garbaged, all operations are reported to disk.

Specified by:
stop in interface Transaction

close

public void close()
Close the transaction module. It waits all transactions termination, the module will be initialized anew before reusing it. The log file is garbaged then closed.

Specified by:
close in interface Transaction

toString

public java.lang.String toString()
Returns a string representation for this object.

Overrides:
toString in class java.lang.Object
Returns:
A string representation of this object.


Copyright © 2011 ScalAgent D.T.. All Rights Reserved.