javax.jdo

Interface Transaction

public interface Transaction

The JDO Transaction interface provides for initiation and completion of transactions under user control. It is a sub-interface of the PersistenceManager that deals with options and transaction demarcation.

Transaction options include whether optimistic concurrency control should be used for the current transaction, whether instances may hold values in the cache outside transactions, and whether values should be retained in the cache after transaction completion. These options are valid for both managed and non-managed transactions.

Transaction initiation and completion methods have similar semantics to javax.transaction.UserTransaction when used outside a managed environment. When used in a managed environment, transaction initiation and completion methods may only be used with bean-managed transaction semantics.

Version:
2.0

Method Summary

void
begin()
Begin a transaction.
void
commit()
Commit the current transaction.
boolean
getNontransactionalRead()
If true, allows persistent instances to be read without a transaction active.
boolean
getNontransactionalWrite()
If true, allows persistent instances to be written without a transaction active.
boolean
getOptimistic()
Optimistic transactions do not hold data store locks until commit time.
PersistenceManager
getPersistenceManager()
The Transaction instance is always associated with exactly one PersistenceManager.
boolean
getRestoreValues()
Return the current value of the restoreValues property.
boolean
getRetainValues()
If true, at commit time instances retain their field values.
boolean
getRollbackOnly()
Returns the rollback-only status of the transaction.
Synchronization
getSynchronization()
The user-specified Synchronization instance for this Transaction instance.
boolean
isActive()
Returns whether there is a transaction currently active.
void
rollback()
Roll back the current transaction.
void
setNontransactionalRead(boolean nontransactionalRead)
If true, allow persistent instances to be read without a transaction active.
void
setNontransactionalWrite(boolean nontransactionalWrite)
If true, allow persistent instances to be written without a transaction active.
void
setOptimistic(boolean optimistic)
Optimistic transactions do not hold data store locks until commit time.
void
setRestoreValues(boolean restoreValues)
If true, at rollback, fields of newly persistent instances are restored to their values as of the beginning of the transaction, and the instances revert to transient.
void
setRetainValues(boolean retainValues)
If true, at commit instances retain their values and the instances transition to persistent-nontransactional.
void
setRollbackOnly()
Sets the rollback-only status of the transaction to true.
void
setSynchronization(Synchronization sync)
The user can specify a Synchronization instance to be notified on transaction completions.

Method Details

begin

public void begin()
Begin a transaction. The type of transaction is determined by the setting of the Optimistic flag.

commit

public void commit()
Commit the current transaction.

getNontransactionalRead

public boolean getNontransactionalRead()
If true, allows persistent instances to be read without a transaction active.
Returns:
the value of the nontransactionalRead property

getNontransactionalWrite

public boolean getNontransactionalWrite()
If true, allows persistent instances to be written without a transaction active.
Returns:
the value of the nontransactionalWrite property

getOptimistic

public boolean getOptimistic()
Optimistic transactions do not hold data store locks until commit time.
Returns:
the value of the Optimistic property.

getPersistenceManager

public PersistenceManager getPersistenceManager()
The Transaction instance is always associated with exactly one PersistenceManager.
Returns:
the PersistenceManager for this Transaction instance

getRestoreValues

public boolean getRestoreValues()
Return the current value of the restoreValues property.
Returns:
the value of the restoreValues property

getRetainValues

public boolean getRetainValues()
If true, at commit time instances retain their field values.
Returns:
the value of the retainValues property

getRollbackOnly

public boolean getRollbackOnly()
Returns the rollback-only status of the transaction. When begun, the rollback-only status is false. Either the application or the JDO implementation may set this flag using setRollbackOnly.
Returns:
true if the transaction has been marked for rollback.
Since:
2.0

getSynchronization

public Synchronization getSynchronization()
The user-specified Synchronization instance for this Transaction instance.
Returns:
the user-specified Synchronization instance.

isActive

public boolean isActive()
Returns whether there is a transaction currently active.
Returns:
true if the transaction is active.

rollback

public void rollback()
Roll back the current transaction.

setNontransactionalRead

public void setNontransactionalRead(boolean nontransactionalRead)
If true, allow persistent instances to be read without a transaction active. If an implementation does not support this option, a JDOUnsupportedOptionException is thrown.
Parameters:
nontransactionalRead - the value of the nontransactionalRead property

setNontransactionalWrite

public void setNontransactionalWrite(boolean nontransactionalWrite)
If true, allow persistent instances to be written without a transaction active. If an implementation does not support this option, a JDOUnsupportedOptionException is thrown.
Parameters:
nontransactionalWrite - the value of the nontransactionalRead property

setOptimistic

public void setOptimistic(boolean optimistic)
Optimistic transactions do not hold data store locks until commit time. If an implementation does not support this option, a JDOUnsupportedOptionException is thrown.
Parameters:
optimistic - the value of the Optimistic flag.

setRestoreValues

public void setRestoreValues(boolean restoreValues)
If true, at rollback, fields of newly persistent instances are restored to their values as of the beginning of the transaction, and the instances revert to transient. Additionally, fields of modified instances of primitive types and immutable reference types are restored to their values as of the beginning of the transaction.

If false, at rollback, the values of fields of newly persistent instances are unchanged and the instances revert to transient. Additionally, dirty instances transition to hollow. If an implementation does not support this option, a JDOUnsupportedOptionException is thrown.

Parameters:
restoreValues - the value of the restoreValues property

setRetainValues

public void setRetainValues(boolean retainValues)
If true, at commit instances retain their values and the instances transition to persistent-nontransactional. If an implementation does not support this option, a JDOUnsupportedOptionException is thrown.
Parameters:
retainValues - the value of the retainValues property

setRollbackOnly

public void setRollbackOnly()
Sets the rollback-only status of the transaction to true. After this flag is set to true, the transaction can no longer be committed, and any attempt to commit the transaction will throw JDOUserException.
Since:
2.0

setSynchronization

public void setSynchronization(Synchronization sync)
The user can specify a Synchronization instance to be notified on transaction completions. The beforeCompletion method is called prior to flushing instances to the data store.

The afterCompletion method is called after performing state transitions of persistent and transactional instances, following the data store commit or rollback operation.

Only one Synchronization instance can be registered with the Transaction. If the application requires more than one instance to receive synchronization callbacks, then the single application instance is responsible for managing them, and forwarding callbacks to them.

Parameters:
sync - the Synchronization instance to be notified; null for none