リストのインデックス作成のトラブルシューティングについて


説明

リスト マネージャー アプリケーションは、他のアプリケーションおよびモジュール(例えばEmail Experience Manager〔EXM〕など)が使用するリストを作成し、管理します。リスト マネージャーは、データ ソースとしてsitecore_analytics_indexを使用します。処理中、sitecore_analytics_indexがアナリティクス データベースから入力されます。リストのロックにより、リスト内のすべての連絡先がインデックスされ、使用可能な状態になることが保証されます。全ての追加、削除またはクリアの操作後にリストのロックが行われ、特別なエージェントがすべての操作が終了したかどうかを確認してから、リストをアンロックします。

Sitecore XP 8.2 Update-2およびそれ以降のバージョンでは、\App_Config\Include\ListManagement\Sitecore.ListManagement.DisableListLocking.config.disabledファイルを有効にすることで、リストのロックを無効化することができます。

この記事では、リストのインデックス作成をスタックさせる最も一般的な問題の内容、およびインデックスの再作成方法について説明します。また、Sitecoreサポートがリスト マネージャーで問題が発生した際のトラブルシューティングを行う際に必要な情報についても説明します。

※:リストのロックの無効化は、Sitecore XP 8.2で実施できるようになりましたが、Sitecore XP 9.0で非推奨となりました。ただし、リストが同時に編集された際の挙動については、引き続き注意していただく必要があります。詳細については、次の記事を参照してください:リストのロック(英語版)

一般的な推奨事項

シナリオ:リストのインデックス作成が終了しない。

下記の点を確認・修正してください:

上記を確認した後、「影響を受けたリストの再構築を実施する方法」節に従って、リストの再構築を実施してください。再構築を実施しても問題が解決しない場合、または問題が頻繁に発生する場合、「トラブルシューティング」節を参照してください。

影響を受けたリストの再構築を実施する方法

次の手順に従って、リストの再構築を実施します:

  1. 以下のSitecore XPバージョンに該当するパッチをインストールします:
  2. /sitecore/admin/listmanager.aspxページを開きます。
  3. ドロップダウン メニューから影響を受けたリストを選択し、Checkをクリックします。
  4. その結果に応じて、以下のように対応します。
    • インデックスの連絡先の数がアナリティクス データベースの連絡先の数より少ない場合、Re-indexボタンをクリックし、処理が終了するまで待ちます。
    • アナリティクス データベースの連絡先の数がインデックスの連絡先の数より少ない場合、一部の連絡先がアナリティクス データベースから手動で削除されたか、データが変更後に再インデックス化されなかった可能性があります。データがデータベースから手動で削除されていない場合、Remove Obsolete Contactsボタンをクリックします。データが手動で削除されている場合は、レポーティング データベースの再構築を実施してください。
    • アナリティクス データベースの連絡先の数とインデックスの連絡先の数が同じだが、リスト アイテムの数と異なる場合は、/sitecore/system/List Manager/All Lists下にあるリスト アイテムを探し、Recipientsフィールドを正しい値に変更します。多くの場合、15秒後にリストをアンロックされるはずですが、そうでない場合は、リスト マネージャーのダッシュボードから手動でアンロックすることができます。

※註:アナリティクス データベースの連絡先の数がリスト アイテムの連絡先の数と異なる場合、リストに連絡先を追加するコードが誤っている可能性が高いと考えられます。連絡先がアナリティクスAPIによって(連絡先タグを変更することで)リストに追加された場合、Masterデータベースのリスト アイテムのRecipientフィールド値を増分させることが重要です。Masterデータベースが利用できないContent Deliveryサーバでは、このアクションを実施することが困難な場合があります。スケールされた環境の場合、すべての必要な操作を実施するEXM APIを利用する必要があります。

トラブルシューティング データの収集

上記のアクションを実施しても、問題が発生し、再現が可能な場合は、Sitecoreサポートにご連絡いただき、以下の情報を提供してください:

拡張ログの有効化(オプション)

インデックス作成リストのトラブルシューティングを実施する場合、問題の根本的な原因を見つけるために拡張ロギングの有効化が必要になる場合があります。なお、これはオプションであり、担当のエンジニアから依頼されている場合のみ、以下の手順を実施してください:

  1. (XP8.1以降の場合)\App_Config\Sitecore.configファイルまたは(XP8.0の場合)\Web.configファイルの<root>ノードのpriority値をDEBUGに変更します:
    <root>
      <priority value="DEBUG" />
      <appender-ref ref="LogFileAppender" />
    </root>
  2. \App_Config\Include\Sitecore.ContentSearch.configファイルのCrawlingロガーのレベル値をDEBUGに変更します:
    <logger name="Sitecore.Diagnostics.Crawling" additivity="false">
      <level value="DEBUG"/>
      <appender-ref ref="CrawlingLogFileAppender"/>
    </logger>
  3. \App_Config\Include\Sitecore.ContentSearch.VerboseLogging.configファイルを有効にします。