大量のアーカイブされたアイテムを削除すると時間がかかったり、タイムアウトすると取り消される可能性がある


解説

リソースの消費量を削減し、アプリケーションのパフォーマンスを向上させるために、アイテムの古いバージョンを削除したりアーカイブしたりすることができます。
削除またはアーカイブされたアイテムは、専用のSQLテーブルに保存され、Sitecoreのキャッシュにはロードされなくなります。
しかし、時間が経つにつれてそれらのSQLテーブルのサイズが大きくなるため、古くなった全てのアイテムの完全な削除が必要になる場合があります。
Sitecoreは単一のSQLトランザクションでアーカイブ テーブルをクリーンアップするため、古くなった全てのアイテムを一度に完全に削除しようとすると、タイムアウトが発生する可能性があります。
タイムアウトが発生した場合、進捗全体がロールバックされ、ログに以下のメッセージが記録されます。

Exception: System.Exception
Message: Execution Timeout Expired. The timeout period elapsed prior to completion of the operation or the server is not responding.
Operation cancelled by user.
The statement has been terminated.
Source: Sitecore.Kernel
   at Sitecore.Data.DataProviders.Sql.DataProviderCommand.ExecuteNonQuery()
   at Sitecore.Data.DataProviders.Sql.SqlDataApi.<>c__DisplayClass33_0.<Execute>b__0()
   at Sitecore.Data.DataProviders.NullRetryer.Execute[T](Func`1 action, Action recover)
   at Sitecore.Data.Archiving.SqlArchive.<RemoveEntries>b__16_0()
   at Sitecore.Data.DataProviders.NullRetryer.ExecuteNoResult(Action action, Action recover)
   at Sitecore.Shell.Framework.Commands.Archives.Empty.Run(ClientPipelineArgs args)

この問題が発生するシナリオが2つあります。

解決策

Sitecore XP 10.3の場合、この問題を解決するには、KB1002894に掲載されているプレリリースをダウンロードしてインストールします。