|
Berkeley DB Java Edition version ${release.version} |
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectcom.sleepycat.je.Transaction
public class Transaction
The Transaction object is the handle for a transaction. Methods off the transaction handle are used to configure, abort and commit the transaction. Transaction handles are provided to other Berkeley DB methods in order to transactionally protect those operations.
Transaction handles are free-threaded; transactions handles may be used
concurrently by multiple threads. Once the Transaction.abort
or Transaction.commit
methods are called,
the handle may not be accessed again, regardless of the success or failure
of the method.
To obtain a transaction with default attributes:
Transaction txn = myEnvironment.beginTransaction(null, null);
To customize the attributes of a transaction:
TransactionConfig config = new TransactionConfig(); config.setReadUncommitted(true); Transaction txn = myEnvironment.beginTransaction(null, config);
Method Summary | |
---|---|
void |
abort()
Cause an abnormal termination of the transaction. |
void |
commit()
End the transaction. |
void |
commitNoSync()
End the transaction, not committing synchronously. |
void |
commitSync()
End the transaction, committing synchronously. |
void |
commitWriteNoSync()
End the transaction, committing synchronously. |
long |
getId()
Return the transaction's unique ID. |
String |
getName()
Get the user visible name for the transaction. |
void |
setLockTimeout(long timeOut)
Configure the lock request timeout value for the transaction. |
void |
setName(String name)
Set the user visible name for the transaction. |
void |
setTxnTimeout(long timeOut)
Configure the timeout value for the transaction lifetime. |
String |
toString()
|
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Method Detail |
---|
public void abort() throws DatabaseException
The log is played backward, and any necessary undo operations are done. Before Transaction.abort returns, any locks held by the transaction will have been released.
In the case of nested transactions, aborting a parent transaction causes all children (unresolved or not) of the parent transaction to be aborted.
All cursors opened within the transaction must be closed before the transaction is aborted.
After Transaction.abort has been called, regardless of its return,
the Transaction
handle may not be
accessed again.
DatabaseException
- if a failure occurs.public long getId() throws DatabaseException
DatabaseException
- if a failure occurs.public void commit() throws DatabaseException
If the environment is not configured for synchronous commit, the commit will not necessarily have been committed to stable storage before the call returns. This means the transaction will exhibit the ACI (atomicity, consistency, and isolation) properties, but not D (durability); that is, database integrity will be maintained, but it is possible this transaction may be undone during recovery.
All cursors opened within the transaction must be closed before the transaction is committed.
After this method returns the Transaction
handle may not be accessed again, regardless of the
method's success or failure. If the method encounters an error, the
transaction and all child transactions of the transaction will have been
aborted when the call returns.
DatabaseException
- if a failure occurs.public void commitSync() throws DatabaseException
This behavior is the default for database environments unless
otherwise configured using the EnvironmentConfig.setTxnNoSync
method. This behavior may also be set
for a single transaction using the Environment.beginTransaction
method. Any value specified to this
method overrides both of those settings.
All cursors opened within the transaction must be closed before the transaction is committed.
After this method returns the Transaction
handle may not be accessed again, regardless of the
method's success or failure. If the method encounters an error, the
transaction and all child transactions of the transaction will have been
aborted when the call returns.
DatabaseException
- if a failure occurs.public void commitNoSync() throws DatabaseException
This behavior may be set for a database environment using the EnvironmentConfig.setTxnNoSync
method or for a single transaction using
the Environment.beginTransaction
method. Any value specified to this
method overrides both of those settings.
All cursors opened within the transaction must be closed before the transaction is committed.
After this method returns the Transaction
handle may not be accessed again, regardless of the
method's success or failure. If the method encounters an error, the
transaction and all child transactions of the transaction will have been
aborted when the call returns.
DatabaseException
- if a failure occurs.public void commitWriteNoSync() throws DatabaseException
This behavior is the default for database environments unless
otherwise configured using the EnvironmentConfig.setTxnNoSync
method. This behavior may also be set
for a single transaction using the Environment.beginTransaction
method. Any value specified to this
method overrides both of those settings.
All cursors opened within the transaction must be closed before the transaction is committed.
After this method returns the Transaction
handle may not be accessed again, regardless of the
method's success or failure. If the method encounters an error, the
transaction and all child transactions of the transaction will have been
aborted when the call returns.
DatabaseException
- if a failure occurs.public void setTxnTimeout(long timeOut) throws IllegalArgumentException, DatabaseException
If the transaction runs longer than this time, the transaction may
throw DatabaseException
.
Timeouts are checked whenever a thread of control blocks on a lock or when deadlock detection is performed. For this reason, the accuracy of the timeout depends on how often deadlock detection is performed.
timeOut
- The timeout value for the transaction lifetime, in
microseconds. A value of 0 disables timeouts for the transaction.
IllegalArgumentException
- If the value of timeout is negative
DatabaseException
- if a failure occurs.public void setLockTimeout(long timeOut) throws IllegalArgumentException, DatabaseException
If a lock request cannot be granted in this time, the transaction may
throw DatabaseException
.
Timeouts are checked whenever a thread of control blocks on a lock or when deadlock detection is performed. For this reason, the accuracy of the timeout depends on how often deadlock detection is performed.
timeOut
- The lock request timeout value for the transaction, in
microseconds. A value of 0 disables timeouts for the transaction.
This method may be called at any time during the life of the application.
IllegalArgumentException
- If the value of timeout is negative.
DatabaseException
- if a failure occurs.public void setName(String name)
name
- The user visible name for the transaction.public String getName()
public String toString()
toString
in class Object
|
Berkeley DB Java Edition version ${release.version} |
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |