Dynamics CRM のバックグラウンドジョブである削除サービス(Deletion Service) と インデックス再作成サービス(Re-Index Service) の実行時間をスケジュールする方法を紹介します。
動作確認は、 Windows Server 2003 Enterprise Edition 上にオールインワンで構築した AD 認証(設置型) Dynamics CRM で行っています。
今回スケジュール設定を行うために次のページからダウンロードできるツールScaleGroupJobUpdate.exeを使用します。
- CRM 4 ScaleGroup Job Editor
http://code.msdn.microsoft.com/ScaleGroupJobEditor
1. Deletion Service, Re-Indexing Service のスケジュールを設定する
Dynamis CRM のEntity データは CRMの画面から削除を行ってもすぐに物理削除されません。各BaseテーブルのDeletionStateCode が 0 から非0 の値に設定されます。論理削除されたレコードは削除サービス(Deletion Service) によって削除されます。
Deletion Service が動作するとパフォーマンスが低下する可能性があります。既定では、Deletion Service と Re-Index Service はインストールされた時間の24時間ごとに実行されます。通常はスケジューリングすることはできませんが、本ページの冒頭で紹介した ScaleGroup Job Editor をCRMサーバのインストールされたサーバ上で実行することで、下図のように、Deletion Service と Re-Index Service の実行スケジューリングを設定することができます。
削除サービスは大量にデータを削除していると、パフォーマンス低下の原因となりますので、CRMを使用するユーザに影響のない時間帯に動作するようにスケジュールしたほうがよいでしょう。
AsyncOperationBase テーブルレコードに対する削除サービスの削除処理でパフォーマンスが低下するKBがありましたので、リンクを張っておきます。
- パフォーマンスが低下する、AsyncOperationBase テーブルが Microsoft Dynamics CRM 4.0 では大きすぎる場合(日本語翻訳)
http://support.microsoft.com/kb/968520/ja
- Performance is slow if the AsyncOperationBase table becomes too large in Microsoft Dynamics CRM 4.0
http://support.microsoft.com/kb/968520/en-us
Deletion ServiceとRe-Index サービスのスケジュール設定はどこにあるのかですが、MSCRM_CONFIGデータベースのテーブル dbo.ScaleGroupOrganizationMaintenanceJobs に存在します。レコードの中でOperationType が 14 が削除サービスのスケジュール設定です。15がRe-Indexサービスのスケジューリング設定です。 dbo.ScaleGroupOrganizationMaintenanceJobs のLastRunTIme が最後に非同期サービスによって実行された時間,NextRunTime が次にサービス起動される時間です。起動時間はUTC時間なので注意してください。
2. まとめ
説明は以上です。Deleteion Service と Re-Index Service は起動するとパフォーマンスが低下し、しかもインストールした時間に動作するので、スケジュールを設定する必要性は高いと思います。
誤り、指摘点などがありましたらご連絡ください。
さんのコメント: さんのコメント: