Hi,
I am currently having a problem regarding the viewing of stale data in a
clustered environment. We are using Toplink Essentials. I have read
other threads on this topic, and the general recommendation seems to be
to use cache type |SoftCacheWeakIdentityMap, which will cause objects to
be garbage collected (and therefore refreshed) more often. However,
this doesn't fit our needs. For example, we have an entity that is read
mostly, which is accessed on almost every user request. If this entity
is updated, I don't see how the other instances would get a refreshed
copy, because it would rarely be garbage collected.
What we need is a way to distribute updates to all members of the
cluster, or specify a timeout for read-mostly entities, which would
trigger a refresh from the database. As far as I can tell these options
are only available in "regular" Toplink, not Toplink Essentials. Does
anyone know of plans for adding these features to Toplink Essentials?
It looks like an alternative would be to use Hibernate's JPA, with one
of the clusterable caches, such as EHCache. Just wanted to see if
anyone has gone a similar route to solve these clustering issues, and
what roadblocks might be found in replacing TopLink Essentials.
Thank you,
Ellen
|