This is the situation:
Two JVMs, each is running an instance of TreeCacheAop. Same cluster. Replication (have tried both synchronous and asynchronous).
When I call getObject("/foo") on both servers at roughly the same time, and "/foo" does not exist in the cache, then both servers end up asking the CacheLoader for data. They both call:
The problem is that the data can be very hard to produce and I would like the CacheLoader to be invoked only on one server and have the other call to getObject block until the data is loaded and replicated.
Am I missing something. I had really expected this to be the default behaviour.
Well, not necessarily. You can the scenarios of shared single cacheloader or individual ones. And they will certainly behave differently.