0

このMSDNページによると、「Putは、バージョン情報をオプションのパラメーターとして使用することにより、楽観的並行性をサポートします。Putは、置き換えられるオブジェクトが同じバージョンである場合にのみ成功します。」

バージョンが異なる場合の良い解決策は何ですか?キャッシュクライアントはWCFサービスです。

4

1 に答える 1

0

バージョンが異なる場合は、別のクライアントがあなたの前に侵入し、キャッシュされたオブジェクトを更新したことを示しています。DataCacheExceptionこれを検出するには、Putの呼び出しからスローされるものをトラップし、列挙型ErrorCodeに対してをチェックします。これは、テストする特定のエントリです。このエラーをトラップすることは、現在のクライアントが処理しているキャッシュアイテムが古くなっていることを示しています。変更を再試行する前に、クライアントから最新バージョンを取得する必要があります(ユーザーに表示する場合としない場合があります)。 。DataCacheErrorCodeCacheItemVersionMismatch

これが、楽観的同時実行シナリオで、キャッシュされたオブジェクトを取得し、変更を加えてから、できるだけ早くキャッ​​シュに戻す必要がある理由です。つまり、実行時間の長いプロセスでバージョンを保持したくない場合や、あなたはこれらの種類の問題を見始めます。

于 2012-07-10T22:17:33.830 に答える