|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
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 completion methods have the same semantics as
javax.transaction.UserTransaction
, and are valid only in the
non-managed, non-distributed transaction environment.
For operation in the distributed environment, Transaction
is declared
to implement javax.transaction.Synchronization
. This allows for
flushing the cache to the data store during externally managed
transaction completion.
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. |
javax.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 |
setSynchronization(javax.transaction.Synchronization sync)
The user can specify a Synchronization instance to be notified on
transaction completions. |
Method Detail |
---|
void begin()
JDOUserException
- if transactions are managed by a container
in the managed environment, or if the transaction is already active.setOptimistic(boolean)
,
getOptimistic()
void commit()
JDOUserException
- if transactions are managed by a container
in the managed environment, or if the transaction is not active.void rollback()
JDOUserException
- if transactions are managed by a container
in the managed environment, or if the transaction is not active.boolean isActive()
true
if the transaction is active.void setNontransactionalRead(boolean nontransactionalRead)
true
, allow persistent instances to be read without
a transaction active.
If an implementation does not support this option, a
JDOUnsupportedOptionException
is thrown.
nontransactionalRead
- the value of the nontransactionalRead propertyboolean getNontransactionalRead()
true
, allows persistent instances to be read without
a transaction active.
void setNontransactionalWrite(boolean nontransactionalWrite)
true
, allow persistent instances to be written without
a transaction active.
If an implementation does not support this option, a
JDOUnsupportedOptionException
is thrown.
nontransactionalWrite
- the value of the nontransactionalRead propertyboolean getNontransactionalWrite()
true
, allows persistent instances to be written without
a transaction active.
void setRetainValues(boolean retainValues)
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.
retainValues
- the value of the retainValues propertyboolean getRetainValues()
true
, at commit time instances retain their field values.
void setRestoreValues(boolean restoreValues)
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.
restoreValues
- the value of the restoreValues propertyboolean getRestoreValues()
void setOptimistic(boolean optimistic)
JDOUnsupportedOptionException
is thrown.
optimistic
- the value of the Optimistic flag.boolean getOptimistic()
void setSynchronization(javax.transaction.Synchronization sync)
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.
sync
- the Synchronization
instance to be notified; null
for nonejavax.transaction.Synchronization getSynchronization()
Synchronization
instance for this Transaction
instance.
Synchronization
instance.PersistenceManager getPersistenceManager()
Transaction
instance is always associated with exactly one
PersistenceManager
.
PersistenceManager
for this Transaction
instance
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |