Option.setCacheModeLocal(true) is definitely enough to ensure non-propagation of the remove call.
Getting into an inconsistent state is for sure a sign of a bug/greater problem. Greater problem might just be don't use async, but let's dig deeper. Can you make this happen with INVALIDATION_SYNC? ASYNC by its nature doesn't guarantee cache consistency, although ending up with an earlier version on a node and no JBC exception in the logs doesn't sound right. With INVALIDATION, the only thing that puts data in the cache is the local caller, so having version 39 in the cache means a local caller either 1) put it in the cache after the invalidation message for 40 had already arrived 2) the invalidation message for 40 never arrived. The latter is unlikely. Do you have any logging telling you how version 39 ended up in A? What it via a putFromExternalRead or a put after a tx running on A updated the entity to version 39? This smells more like a putForExternalRead problem to me. View the original post : http://www.jboss.org/index.html?module=bb&op=viewtopic&p=4221589#4221589 Reply to the post : http://www.jboss.org/index.html?module=bb&op=posting&mode=reply&p=4221589 _______________________________________________ jboss-user mailing list jboss-user@lists.jboss.org https://lists.jboss.org/mailman/listinfo/jboss-user