These methods allow you to interact indirectly with the
public void evict (Object pc); public void evictAll (Collection pcs); public void evictAll (Object pcs); public void evictAll ();
Evicting an object tells the
that your application no longer needs that object. Unless it is dirty,
the object transitions to hollow and the
PersistenceManager releases all strong
references to it, allowing it to be garbage collected.
evictAll method with
no parameters acts on all persistent-clean objects in the
public void flush ();
flush method writes any changes that have
been made in the current transaction to the datastore. If the
PersistenceManager does not already have a
connection to the datastore, it obtains one for the flush and retains
it for the duration of the transaction. Any exceptions during flush
cause the transaction to be marked for rollback, as if
Transaction.setRollbackOnly were called.
See Chapter 9, Transaction.
Flushing has no effect outside of a transaction.
public void checkConsistency ();
This method validates the dirty objects in the
PersistenceManager cache against the datastore.
Within a datastore transaction, this method may delegate to
flush. Within an optimistic transaction, this
method obtains a datastore connection and checks that the instances in
cache are consistent with their datastore records. If the
implementation detects any inconsistencies, such as concurrent
modification by another thread/process, it throws a
datastore resources obtained during the course of this method are
released before the method returns. This method has no effect outside
of a transaction.
You can use
checkConsistency to determine
if a subsequent commit is likely to succeed. If
checkConsistency throws a
JDOOptimisticVerificationException, you have an opportunity
to gather the failed objects in the exception and its nested exceptions
and fix their inconsistencies before committing.