メール キャンペーンを作成する際に、「Save operation for definition could not be completed within specified timeframe」エラー メッセージが記録される場合がある


説明

この問題は、高負荷またはネットワーク接続の問題が原因で発生します。次のエラー メッセージがログ ファイルに記録される可能性があります。

ERROR One or more exceptions occurred while processing the subscribers to the 'item:saved' event.
Exception[1]: System.TimeoutException 
Message[1]: Save operation for definition id:[{4DD03672-8944-44C9-9F26-900C421F49B4}] could not be completed within specified timeframe. It will be re-run in the background. 
Source[1]: Sitecore.Analytics 
   at Sitecore.Analytics.Reporting.DefinitionData.Marketing.Deployment.Processors.Deploy.DeployItem[TDefinition](Item item, Template itemTemplate, ID expectedTemplateId)
   at Sitecore.Analytics.Reporting.DefinitionData.Marketing.Deployment.Processors.Deploy.Process(DeployDefinitionArgs args)
   at (Object , Object[] )
   at Sitecore.Pipelines.CorePipeline.Run(PipelineArgs args)
   at Sitecore.Analytics.Pipelines.DeployDefinition.DeployDefinitionPipeline.<>c__DisplayClass1.<Run>b__0()
   at Sitecore.Marketing.Core.IgnoreRecursiveCalls.Run(ID id, Action action)
   at Sitecore.Analytics.Pipelines.DeployDefinition.DeployDefinitionPipeline.Run(Item item)
   at Sitecore.Analytics.Data.Items.ItemEventHandler.OnItemSaved(Object sender, EventArgs args)
   at Sitecore.Events.Event.EventSubscribers.RaiseEvent(String eventName, Object[] parameters, EventResult result)

上記のエラー メッセージは、マーケティング定義のデプロイに30秒以上かかる場合に記録されます。したがって、そのような状況で、貴社ソリューションで処理に時間がかかると、問題が発生します。

解決策

Sitecore XPバージョン9.1 Initial Release以前の場合、次のページにある影響を受ける製品バージョンと互換性のあるパッチをダウンロードしてインストールします。 
https://github.com/SitecoreSupport/Sitecore.Support.116539

Sitecore XPバージョン9.1 Initial Release以降の場合、マーケティング定義をデプロイする時間は次のように変更できます。

    1. Sitecore.Marketing.xMgmt.Pipelines.DeployDefinition.Deploy」プロセッサの「DeployItemTimeout」設定をセットします。
    2. この設定を「\App_Config\Sitecore\Marketing.Operations.xMgmt\Sitecore.Marketing.config」ファイルに次のように追加します。
<deployDefinition>
<processor type="Sitecore.Marketing.xMgmt.Pipelines.DeployDefinition.Deploy, Sitecore.Marketing.xMgmt" resolve="true">
<DeployItemTimeout>00:01:30</DeployItemTimeout>
</processor>
</deployDefinition>