Hi Gordon,
yes right #invalidateAll() is the right Method; however, the call of this
method has no effect
I print always the maps out
(aSession.getIdentityMapAccessor().printIdentityMaps())
I have a search site, where it's possible to find some objects. 
If I use 
aSession.getIdentityMapAccessor().invalidateAll();
the maps seem to be empty, however if I return to the search page and fire a
selection. I see the same outputs with the same objects (hashcodes)
Does invalidateAll() flushs the cache immediately? 
I have the same effect with the other invalidate*-Methods (invalidateClass
etc.)
That's the reason, why I use 
aSession.getIdentityMapAccessor().initializeAllIdentityMaps();
To Cache-Coordination:
Yes, that will be the better solution. But I have at the moment not the time
in the projects to switch to this feature.
Thanks
Joe
Gordon Yorke-2 wrote:
  
  
    Initializing the identity maps in a running system can lead to hard to 
diagnose errors.  IdentityMapAccessor.invalidateAll()  and the other 
invalidation APIs are the recommended approach.  Have you looked at 
Cache Coordination ( 
http://wiki.eclipse.org/Introduction_to_Cache_(ELUG)#Cache_Coordination_2 
) to automatically handle the notification for you.
--Gordon
Joe Mc. wrote:
    
    
      Alright, my solution is:
- I am using a SessionCustomizer 
- adding a SessionEventAdapter
- override preExecuteQuery
- call Session.getIdentityMapAccessor().initializeAllIdentityMaps()
Codesnippet:
public void customize(Session session) throws Exception {
  
   SessionEventAdapter evtListener = new SessionEventAdapter() {
      
      @Override
      public void preExecuteQuery(SessionEvent event) {
          Session aSession = event.getSession();
          
          // check if cache invalidation is necessary....
          // if yes:
          aSession.getIdentityMapAccessor().initializeAllIdentityMaps();
      }
   }
}
Open Questions:
- is preExecuteQuery the right place?
- Does any better solution exist?
Thanks
Mc.Joe
Joe Mc. wrote:
  
      
      
        Hi everybody,
I trying to provide a functionality to delete the whole cache, to
support
the possibility to refresh the objects in the cache.
How is the best practice to flush the whole cache?
I have the following use case:
- 2 separate Applications on different servers
- Both use JPA Eclipselink
- Application A reads the objects, I am using SoftWeak
- Application B modifies sometimes the data
desired is, that Application B gives Application A a signal (details are
here irrelevant), if he modified the data
Application A will flush his cache, if he gets this event.
Now the question is: Does any API exists to flush the (whole) cache?
Thanks in advance
Mc.Joe
    
        
      
        
      
    
    _______________________________________________
eclipselink-users mailing list
eclipselink-users@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/eclipselink-users