Are you aware of the second level cache cluster support in OpenAccess? Check out the docs (search for msmq). In a nutshell, it's a queued service that evicts stale objects from other applications caches when someone updates an entity. From the docs:
"When deployment scenarios exist with more than one application using the L2cache for the same database (like an application server farm), then the variouscaches for the same database must be synchronized. This is done in such a way,that every modifying transaction sends its eviction requests to all participantsin the L2 cache cluster. This communication is done in an asynchronous fashion:There is a time window, in which one L2 cache (process A) is already evicted butanother L2 cache (process B) is not yet evicted. The size of the time windowdepends on the cache cluster implementation chosen."