エントリの平均サイズが大きい場合、Cleanup EventQueueタイムアウトが発生する可能性がある


解説

アイテムの変更頻度が高いことが原因でEventQueueテーブルのサイズが大幅に増加している場合、Indexingサブロールが有効化されたSitecoreインスタンスでリソースの消費量が増大する場合があります。その結果、SitecoreがEventQueueのクリーン アップを試みた際に、タスクがタイムアウトで失敗する可能性があります。

解決策

この問題の影響を緩和するには、以下の手順を実施してください。

  1. 以下のクエリをMaster(またはWeb)データベースのEventQueueテーブルに対して実行します。
    TRUNCATE TABLE [EventQueue]
  2. Master(またはWeb)データベース固有の検索インデックスを再構築します。

将来的にこの問題が発生しないように予防するには、以下の手順を実施してください。

  1. Sitecoreアイテムのフィールドに大きなテキストの値(1MB)を保存しないようにします。
  2. EventQueueCleanUpタスクをより頻繁に実行するように構成して、より直近のイベントのみを保持するようにします。例えば、デフォルトの4時間ではなく毎時実行するなどです。
  3. CMインスタンスのInstanceNameを構成し、インスタンスのある基盤となるマシンの名称が変更されてもSitecoreに影響を及ぼさないようにします。

手順2および3は\App_Config\Include\zzzフォルダーに構成パッチ ファイルを作成することで実施します。例:

<?xml version="1.0" encoding="utf-8"?>
<configuration xmlns:patch="http://www.sitecore.net/xmlconfig/" xmlns:set="http://www.sitecore.net/xmlconfig/set/" xmlns:role="http://www.sitecore.net/xmlconfig/role/">
    <sitecore>
        <settings>
            <setting name="InstanceName" value="CM" role:require="ContentManagement"/>
        </settings>
        <scheduling>
            <agent type="Sitecore.Tasks.CleanupEventQueue, Sitecore.Kernel" set:interval="01:00:00" role:require="ContentManagement">
                <DaysToKeep>
                    <patch:delete/>
                </DaysToKeep>
                <IntervalToKeep>04:00:00</IntervalToKeep>
            </agent>
        </scheduling>
    </sitecore>
</configuration>