0
根据this MSDN页面“Put通过将版本信息作为可选参数支持乐观并发性;如果要替换的对象具有相同版本,则放置成功。”如何在乐观并发模型下处理AppFabric中的数据争用?
当版本不同时,什么是一个好的解决方案?缓存客户端是一个WCF服务。
根据this MSDN页面“Put通过将版本信息作为可选参数支持乐观并发性;如果要替换的对象具有相同版本,则放置成功。”如何在乐观并发模型下处理AppFabric中的数据争用?
当版本不同时,什么是一个好的解决方案?缓存客户端是一个WCF服务。
如果版本不同,则表示另一个客户端已经进入并更新缓存的对象。您可以通过捕获DataCacheException
来检测此问题,该问题将从您的调用中抛出,并检查ErrorCode
与DataCacheErrorCode
的枚举 - CacheItemVersionMismatch
是要测试的特定条目。捕获此错误表明,您的当前客户端正在使用的缓存项目已过时,您应该在尝试制作您的客户端之前从客户端获取最新版本(您可能想也可能不想向用户显示)再次改变。
这就是为什么在乐观并发场景中,您希望获取缓存对象,进行更改并尽快将其返回缓存 - 您不希望持有任何类型的长版本运行过程或者你开始看到这些问题。