[
Date Prev][
Date Next][
Thread Prev][
Thread Next][
Date Index][
Thread Index]
[
List Home]
Re: [eclipselink-users] How to clear Cache
|
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
>
>
--
View this message in context: http://www.nabble.com/How-to-clear-Cache-tp23567622p23638198.html
Sent from the EclipseLink - Users mailing list archive at Nabble.com.