スケール環境でPath アナライザー マップを再構築する方法


解説

本記事では、スケールされたSitecore XP環境で Path アナライザー マップを再構築する方法について説明します。

再構築するための準備

  1. Reporting, Shard0, と Shard1(他のShard データベースが存在する場合、そのシャードも) データベースをバックアップする。
  2. 下記のクエリを使用して、収集したすべてのインタラクション(Shard0/ Shard1データベース)が既存のチャネル(例:Shard0)を指すことを確認します:
    SELECT DISTINCT [ChannelId] FROM [Shard0].[xdb_collection].[Interactions]
    WHERE [ChannelId] NOT IN (SELECT [ID] FROM [SitecoreMaster].[dbo].[Items] where [TemplateID] = '{3B4FDE65-16A8-491D-BF15-99CE83CF3506}')
    本クエリが何らかの値(既存のチャンネルではない)を出力した場合、これらのチャンネルは、例えば広く使われているチャンネル「{B418E4F2-1013-4B42-A053-B6D4DCA988BF}」(Shard0など)に置き換えて修正しなければならない:
    UPDATE [Shard0].[xdb_collection].[Interactions] SET [ChannelId] = '{B418E4F2-1013-4B42-A053-B6D4DCA988BF}'
    WHERE [ChannelId] = '上記クエリから取得した値'
    注意: ChannelId 「00000000-0000-0000-0000-000000000000」 も無効な値です。
  3. スタンドアロン(XP Single)、または、Processing  インスタンス のアプリケーション プールの詳細設定では、設定した期間後にインスタンスの動作が停止しないように下記を設定するのが良い:
    • ProcessModel -> Idle Time-out (分) = 0
    • Recycling -> Regular Time Intervals (分) = 0
  4. スタンドアロン・Processing インスタンスで, 一時的に下記の変更を適用します:
    • オン プレミスの SQL サーバーの場合、「Master」と「Reporting」の接続文字列 で「Max Pool Size=1000」パラメーターを追加します。
    • Azure SQLの場合、「Master」と「Reporting」の データベースの価格レベルを上げることを検討します。

    Path アナライザーの再構築プロセスで、これらのデータベースが必要な負荷を処理できない既知の症状は、ログに次のエラーが存在することです。:
    ERROR Exception while processing item Sitecore.Analytics.Core.ItemBatch`1[Sitecore.XConnect.Interaction] in task GUID-of-task-from-table-ProcessingTasks.
    Exception: System.InvalidOperationException
    Message: ExecuteReader requires an open and available Connection. The connection's current state is closed.
    Source: System.Data
    at System.Data.SqlClient.SqlCommand.ValidateCommand(String method, Boolean async)

    at Sitecore.PathAnalyzer.Processing.TreeAggregator.Aggregate(ItemBatch`1 batch)
  5. 未完了のPath アナライザーの再構築タスクを削除します:
    DELETE FROM [Processing.Tasks].[xdb_processing_tasks].[ProcessingTasks]
    WHERE ([Description] = 'Build Map Agent' OR [Description] = 'Rebuild ALL Deployed Maps') AND [Status] < 2 
  6. 必要に応じて、スタンドアロン・Processing インスタンスの \App_Config\Sitecore.config ファイルで、一時的にログ レベルをDEBUG に変更します。本変更で、ログを使用し、Path アナライザーの再構築プロセスをより適切に分析されます:
    <root>
    <priority value="DEBUG" />
    <appender-ref ref="LogFileAppender" />
    </root>

再構築

Sitecore XP スケールで、Processing とReporting ロールが別インスタンスである場合:

  1. 下記のテーブルからのデータを削除します:
    DELETE FROM [Reporting].[dbo].[Trail_Interactions]
    DELETE FROM [Reporting].[dbo].[Trail_PathAnalyzer]
    DELETE FROM [Reporting].[dbo].[TreeDefinitions]
    DELETE FROM [Reporting].[dbo].[Trees]
  2. 30分ほど待つと、インタラクション履歴の再構築が自動的に開始されます。

他のトポロジーの設定の場合:

  1. SQL Server Management Studio と SQL アドミン 資格情報 を使用し、Reporting データベースのユーザー「reportinguser 」に、 一時的に「db_owner 」ロールを追加します。
  2. 下記のテーブルからのデータを削除します :
    DELETE FROM [Reporting].[dbo].[TreeDefinitions]
    DELETE FROM [Reporting].[dbo].[Trees]
  3. スタンドアロン・Processing インスタンスで, 次のページを開きます: /sitecore/admin/pathanalyzer.aspx
  4. ページの一番下にある「Upgrade」を押下します。
  5. ページの一番下にある「Rebuild」を押下します。

再構築の進捗状況の確認

  1. 再構築中は、作成されるツリーの数が定期的に増加されます:
    SELECT COUNT(*) FROM [Reporting].[dbo].[Trees]
  2. 関連する再構築 タスクから詳細を取得することができます:
    SELECT * FROM [Processing.Tasks].[xdb_processing_tasks].[ProcessingTasks]
    WHERE [Description] = 'Build Map Agent' OR [Description] = 'Rebuild ALL Deployed Maps'

    [Status]: 保留 = 0, 処理中= 1, 完了= 2, 失敗 = 3, 期限切れ = 4, キャンセル = 5
    [Progress]: 現在処理中のインタラクション数
    [Total]: 処理されることが予想されるインタラクションの総数

再構築後の手順

  1. スタンドアロン・Processing インスタンスで, Path アナライザー アプリケーションを開き、期待するデータが表示されるかを確認します。
  2. Path アナライザー マップを再構築した後, 一時的の変更を元に戻します。

Path アナライザーの再構築プロセスでは、現在の日付から遡ってマップを作成しますが、「ライブ」Path  アナライザー アクティビティでは、現在の日付から遡って新しいインタラクションのマップを作成されますので、マップの欠落は想定されません 。