非 CMDB テーブルの IRE のデータソースルールの作成
識別および調整エンジン (IRE) を使用する場合、特定のデータソースが特定の非 CMDB テーブルの新しいレコードを挿入しないようにすることができます。レコードの作成では信頼しないが既存のレコードの更新では引き続き信頼するデータソースに対して、IRE のデータソースルールを作成します。
始める前に
このタスクについて
動的調整ルールが有効な場合、IRE データソースルールは影響を与えません。
- 子クラスは、識別ルールと同様に、親クラスから IRE データソースルールを派生させます。
- 子クラスに指定された IRE のデータソースルールは、親クラスから派生したすべての IRE のデータソースルールを上書きします。
IRE が IRE のデータソースルールによって禁止されている挿入操作を処理する場合、挿入操作は失敗します。このエラーは、挿入操作および IRE のデータソースルールの、データソースおよびレコードクラスが一致する場合に発生します。CreateOrUpdateCIEnhanced() が使用されている場合、IRE は失敗したペイロードを将来の使用に備えて CMDB IRE 部分のペイロード [cmdb_ire_partial_payloads] テーブルに格納します。
注:
IRE のデータソースルールによって挿入操作が許可されておらず、createOrUpdateCI() を使用している場合、createOrUpdateCI() は部分的なコミットを許可しないため、IRE ペイロード全体が失敗します。
後で、許可されたデータソースが同じレコードを挿入しようとすると、IRE は部分的ペイロードからの一致するレコードとそのレコードを結合した後に挿入します。続いて IRE は、CMDB IRE 部分のペイロード [cmdb_ire_partial_payloads] テーブルから部分的ペイロードを削除し、ルールで指定されたデータソースによる将来の更新を許可します。
IRE データソースルールはルックアップアイテムおよび関連アイテムには適用されず、クラス/データソースのペアに対して有効にできるルールは 1 つのみです。
手順
タスクの結果
- 挿入操作が失敗し、IRE は次のメッセージをログに記録します。
[xyz] への INSERT_NOT_ALLOWED_FOR_SOURCE の挿入は、IRE のデータソースルールによってデータソース [xyz] に対してブロックされています。
- CreateOrUpdateCIEnhanced() が使用されている場合、IRE はペイロードアイテムを部分的ペイロードとして CMDB IRE 部分のペイロード [cmdb_ire_partial_payloads] テーブルに格納します。
後で、許可されたデータソースが、部分的ペイロードアイテムからのレコードに一致するレコードを正常に挿入した場合:
- 現在のレコードが部分的ペイロードの一致するレコードと結合され、必要に応じて静的調整ルールが適用されます。
- CMDB IRE 部分のペイロード [cmdb_ire_partial_payloads] テーブルの各部分的ペイロードが削除されます。
- 許可されていないデータソースがそれぞれのレコードを更新した後のペイロードは、正常に実行されます。
- IRE を使用すると、以前はレコードの挿入が禁止されていたデータソースが、現在非 CMDB テーブルに存在する同じレコードを更新できます。