コンタクトをxDBに保存する際のエラー


解説

コンタクトをxDBに保存する際に、xConnect ログ ファイルに以下のうちのいずれかのメッセージが出力されることがあります:

ERROR General error when submitting contact.
Exception: Sitecore.XConnect.Operations.FacetOperationException
Message: Operation #0, AlreadyExists, <ContactId>, Classification
Source: Sitecore.Xdb.Common.Web

または

[TIMESTAMP value] [Error] Sitecore.XConnect.Operations.AddContactOperation: Sitecore.XConnect.Operations.EntityOperationException: Operation #0, AlreadyExists, Contact
[TIMESTAMP value] [Error] Sitecore.XConnect.Operations.SetFacetOperation`1[Sitecore.XConnect.Facet]: Sitecore.XConnect.Operations.FacetOperationException: Operation #1, ReferenceNotFound, Contact, Classification
[TIMESTAMP value] [Error] ["XdbContextLoggingPlugin"] XdbContext Batch Execution Exception
Sitecore.XConnect.Operations.EntityOperationException: Operation #0, AlreadyExists, Contact
[TIMESTAMP value] [Error] ["XdbContextLoggingPlugin"] XdbContext Batch Execution Exception
Sitecore.XConnect.Operations.FacetOperationException: Operation #1, ReferenceNotFound, Contact, Classification

解決策

  1. 共有セッションの状態が、この記事に従って構成されているかを確認します(「Session state configuration scenarios」節を参照)。
  2. コンタクトを保存または変更するカスタム コードが存在する場合、この記事に記載されているように、コンタクトをセッションに再読み込みしているかを確認します(「Re-loading contact data」節を参照)。
  3. 該当の製品バージョンと互換性のあるHotfixをダウンロードしてインストールします: Hotfixは特定のSitecore XPバージョン用に作成されたものであるため、他のSitecore XPバージョンにインストールしたり、(互換性があることを確認できるまでは)他のHotfixと組み合わせてインストールしたりしないでください。

    ZIPファイルを解凍し、インストールの手順書や関連ファイルをご確認ください。HotfixはCMインスタンスにインストールしてから、貴社の標準の開発手法で他のインスタンスと同期する必要があります。

    インストール前に:

    1. 次のdllに関連する他のHotfixをインストールしていないことをご確認ください:
      • \bin\Sitecore.Analytics.DataAccess.dll
      • \bin\Sitecore.Analytics.dll
      • \bin\Sitecore.Analytics.OmniChannel.dll
      • \bin\Sitecore.Analytics.XConnect.dll
      • \bin\Sitecore.Xdb.Tracking.Client.dll
      Sitecore XP インスタンスに他のHotfixが既にインストールされている場合は、Sitecore サポートに互換性のチェックをリクエストしてください。
    2. Sitecore.Support.Diagnostics.AlreadyExists」診断ファイルをアンインストールします(存在する場合)。