ContactLockExceptionエラーの発生原因


説明

ContactLockExceptionエラーは、Sitecore XPの連絡先をロックする際に発生する可能性のある例外です。

Sitecore XPでは、ウェブ クラスタやアウト オブ リクエスト ワーカーが連絡先をロックできます。連絡先データの変更は、ロックのオーナーしか実施できません。ロックは、複数のスレッドが連絡先のデータを同時に変更しようとした際に発生するデータ破損を回避するために導入されました。

※註:Sitecore XP 9.0以降のバージョンでは、連絡先はロックされなくなったため、ContactLockExceptionエラーは発生しなくなりました。

ロックにはタイムアウト設定があります。ウェブ クラスタが連絡先をロックした場合、その連絡先がウェブサイト上でアクティブになっている間は、ウェブ クラスタが時々ロックを延長する必要があります。このロックは、ウェブサイトでの連絡先のセッション終了時に、連絡先がデータベースに保存されるまで残ります。

ContactLockExceptionエラーが発生する可能性のあるシナリオは、以下の通りです:

解決策

これらの例外を回避するには、以下の2つの解決策を推奨いたします。