I have been working with EhCache for Hibernate and for the application level cache since 3 years ago. We use it with RMI to invalidate the cache, and it works very well. If you use the cache for replication, you should take care of the graph of objects, it can become very heavy with high power ratios.
If you use EhCache for Hibernate, you can use it for the Query cache (this is a good improvement for read-only tables), and the table is modified, it automatically clears the cache. Using EhCache to cache collections is also a good idea to avoid aggregating subselects.
, EhCache, . .
, .