What's the state of 2.1? Might a pm.refresh(Object, boolean) method be appropriate where a true value would equate to the following as you suggested. Just a thought. pm.getDataStoreCache().evictAll(collection); pm.refresh(collection);
-----Original Message----- From: Craig L Russell [mailto:[EMAIL PROTECTED] Sent: Tuesday, May 01, 2007 11:17 AM To: jdo-user@db.apache.org Cc: JDO Expert Group; Apache JDO project Subject: Re: refresh() Hi Christiaan, On May 1, 2007, at 9:06 AM, Christiaan des Bouvrie wrote: > Hello Craig, > > Thanks for the reply. We do not actually always refresh because of the > OptimisticVerificationException, but sometimes we want to make sure > the user is seeing the latest data. > > Also, the datastore cache is not shared between clients, since we have > a rich-client application. So imagine the following scenario (not sure > if we have the same scenario in mind, since I cant really explain the > need for flush()): > > - Client A views an object, and loads it in his datastore > cache; > > - Client B views and modifies the same object. His datastore > cache gets updated and also the datastore. > > - Client A now wants to see the latest version, but the stale > version is still in his datastore cache since it is not shared with > client B. How to get the latest version from the datastore? Two things come to mind. First, perhaps there is a vendor-specific policy that you can use to specify that refresh should evict the instances from the datastore cache. Second, you might use the standard DataStoreCache interface: // get fresh instances from the datastore pm.getDataStoreCache().evictAll(collection); pm.refresh(collection); Craig > > > > Kind regard, > > Christiaan > > > > > Craig Russell Architect, Sun Java Enterprise System http://java.sun.com/products/jdo 408 276-5638 mailto:[EMAIL PROTECTED] P.S. A good JDO? O, Gasp!