参照アイテムの多いアイテムを保存する際にSitecoreが応答しなくなる


説明

Sitecore Experience Accelerator(SXA)を使用する際、参照アイテムが多いデータソース アイテムの内容変更を保存すると、Sitecoreが応答しなくなり、エラーがログ レコードに出力される場合があります。

エラー ログの例:

ERROR Failed to save the item. Item ID: {Item ID}, database: master
Exception: System.Threading.ThreadAbortException
Message: Thread was being aborted.
Source: Sitecore.Kernel
at Sitecore.Events.Event.EventSubscribers.RaiseEvent(String eventName, Object[] parameters, EventResult result)
at Sitecore.Events.Event.RaiseEvent(String eventName, Object[] parameters)
at Sitecore.Events.Event.RaiseItemSaved(Object sender, ItemSavedEventArgs args)
at System.EventHandler`1.Invoke(Object sender, TEventArgs e)
at Sitecore.Data.Engines.EngineCommand`2.RaiseEvent[TArgs](EventHandler`1 handlers, Func`2 argsCreator)
at Sitecore.Data.Engines.EngineCommand`2.Execute()
at Sitecore.Data.Engines.DataEngine.SaveItem(Item item)

36296 20:41:08 WARN *** LONG SHEER UI REQUEST *** 36296 20:41:08 WARN Request time: 610,822.39ms 36296 20:41:08 WARN SheerUI time: 19.14ms 36296 20:41:08 WARN Control ID: 36296 20:41:08 WARN Event Source ID: 36296 20:41:08 WARN Event Type: 36296 20:41:08 WARN Parameters: contenteditor:save 36296 20:41:08 WARN URL: 36296 20:41:08 WARN ViewState size: 0 36296 20:41:08 WARN ControlStore size: 0 36296 20:41:08 WARN Control count: 0 36296 20:41:08 ERROR Application error. Exception: System.Web.HttpException Message: Request timed out.

解決策

この問題を解決するには、Sitecore XP 9.3およびSXA 9.3.0の場合、KB1001807に記載されている、Sitecore XP 9.3およびSXA 9.3.0に対応する累積hotfixをダウンロードし、インストールします。
または、Publishing Serviceが使用されていない場合、XA.Foundation.Publishing.FlagPublishingGroupingItems.Enabled設定をfalseに設定することで、エラーを回避することができます。
:\App_Config\Include\zzzフォルダーに設定パッチ ファイルを作成し、この値にパッチを適用する必要があります。
パッチ ファイルの例:

<?xml version="1.0" encoding="utf-8" ?>

<configuration xmlns:patch="http://www.sitecore.net/xmlconfig/" >
  <sitecore>
    <settings>
      <setting name="XA.Foundation.Publishing.FlagPublishingGroupingItems.Enabled" >
        <patch:attribute name="value">false</patch:attribute>
      </setting>
    </settings>
  </sitecore>
</configuration>