Analytics.ClusterNameが指定されていない場合のAnalyticsデータの保存中のエラー


解説

Analytics.ClusterName設定がSitecore.Analytics.Tracking.configファイルで指定されていない場合、コンテンツ配信サーバーのログ ファイルに次の例外が出力される可能性があります:

ERROR General error when submitting contact.
Exception: System.InvalidOperationException
Message: A contact is locked by another operation.
Source: Sitecore.Analytics.MongoDB
at Sitecore.Analytics.Data.DataAccess.MongoDb.MongoDbContactStorage.LoadContactIdentifier(ID contactId, LeaseOwner leaseOwner)
at Sitecore.Analytics.Data.DataAccess.MongoDb.MongoDbDataAdapterProvider.ObsoleteContact(ID contactId, LeaseOwner leaseOwner, ID successorId)
at Sitecore.Analytics.Data.ContactRepository.SaveContact(Contact contact, ContactSaveOptions options)
at Sitecore.Analytics.Tracking.ContactManager.SubmitContact(Contact contact, ContactSaveOptions options)

解決策

この問題を解決するには、すべてのコンテンツ配信サーバーについて以下の手順に従う必要があります:

  1. /App_Config/Include/Sitecore.Analytics.Tracking.configファイルを開きます。
  2. Analytics.ClusterName設定の値を、サイトのホスト名(単一サーバーのセットアップの場合)、またはクラスターの前にあるロード バランサーのホスト名(クラスター環境の場合)に設定します:
    <setting name="Analytics.ClusterName" value="yoursite.net" />
    ※註: クラスター環境の場合、すべてのコンテンツ管理のSitecoreインスタンスは、認証なし(Cookieベース、ベーシック、フェデレーションなど)でクラスターへのHTTP接続を確立できます。 クラスターがHTTPS接続のみを受け入れる場合、またはすべてのHTTPリクエストを対応するHTTPS接続にリダイレクトする場合は、Analytics.ClusterName設定値にはHTTPSスキーマを含める必要があります:
    <setting name="Analytics.ClusterName" value="https://yoursite.net" />