このMSDNページによると、「Putは、バージョン情報をオプションのパラメーターとして使用することにより、楽観的並行性をサポートします。Putは、置き換えられるオブジェクトが同じバージョンである場合にのみ成功します。」
バージョンが異なる場合の良い解決策は何ですか?キャッシュクライアントはWCFサービスです。
バージョンが異なる場合は、別のクライアントがあなたの前に侵入し、キャッシュされたオブジェクトを更新したことを示しています。DataCacheException
これを検出するには、Putの呼び出しからスローされるものをトラップし、列挙型ErrorCode
に対してをチェックします。これは、テストする特定のエントリです。このエラーをトラップすることは、現在のクライアントが処理しているキャッシュアイテムが古くなっていることを示しています。変更を再試行する前に、クライアントから最新バージョンを取得する必要があります(ユーザーに表示する場合としない場合があります)。 。DataCacheErrorCode
CacheItemVersionMismatch
これが、楽観的同時実行シナリオで、キャッシュされたオブジェクトを取得し、変更を加えてから、できるだけ早くキャッシュに戻す必要がある理由です。つまり、実行時間の長いプロセスでバージョンを保持したくない場合や、あなたはこれらの種類の問題を見始めます。