Implementation > Reconciliation

Reconciliation

Reconciliation is the process of identifying and matching entities from different data repositories. The reconciliation engine is responsible for identifying and matching entities from different data collectors and storing them, without duplicating CIs in UCMDB.

Many different data collectors can send CIs to UCMDB. In actuality, each different source might be providing information about the same CI. The reconciliation engine is responsible for identifying and matching entities from different data collectors and storing them, without duplicating CIs in UCMDB.

Three main services provide support for the reconciliation engine:

Data Identification > responsible for comparing input CIs, according to reconciliation rules.

Data In > responsible for inserting data into UCMDB. This service decides whether to merge data into existing CIs in UCMDB or whether to ignore input CIs in the case of multiple matches

Merge > responsible for merging CIs (used in Federation and Data In flows). Merging is done according to the reconciliation priority definitions.

The reconciliation engine contains out-of-the-box identification and match criteria rules for most usable and problematic CITs, such as host, software element, and so on.

Reconciliation Configuration: The reconciliation engine uses XML configuration files that contain identification and match criteria to determine how CIs are identified during federation or data insertion. Configuration files for out-of-the-box CI types are provided when packages are deployed, but you can modify the provided files or create additional files.

What is identification? A method for comparing two (or more) CIs to tell if they are the same.The CIs usually come from different sources, e.g. one from UCMDB and the other is a newly discovered one. During Data-In process, need to identify the incoming CIs to see if an equivalent CI is already present in CMDB.

How to Identify?

For most of the CI types, use Key Attributes. That’s the default for Object. The key attributes are defined by the class model. For special complicated cases we use Reconciliation Rules.

Identification method and identification rules are inherited from parent CI type.

Can override for any CI type, which, of course, implies on its descendants.

To view identification means in UCMDB for a certain CI type, click on CI Type Manager, and then on the Details tab.

Reconciliation Priority: Micro Focus CMS solution is flexible in integrating with other ITSM products. It is recommended to use reconciliation priority to Identify the source of truth for a CI. Once you have an integration point established, reconciliation priority should be set immediately.

Logs to watch for Recon issues:

  • cmdb.reconciliation.audit.log
  • cmdb.reconciliation.log
  • cmdb.reconciliation.datain.ignored.log

The reconciliation logs have a dedicated log count setting in the \conf\log\log4j2_root.yaml log configuation file. In case of a high load the reconciliation logs can quickly get overwritten. Increasing reconciliation.files.backup.count can quickly change how many files will be created. This change requires a service restart.

Reconciliation Internal and External Fuse Settings:

Setting Name Display Name Default Value Refresh Rate Display in UI

Description

reconciliation.data.container.size.fuse Maximal size of Data Container 100000 Minutes False Maximal number of CIs and Links processed by the Data In per bulk
reconciliation.data.container.undo.fuse Maximal undo operations 1000000 Minutes False Maximal number of undo operations on the Data Container
reconciliation.identification.map.entry.fuse Maximal mapped CIs per CI in bulk 5000 Minutes False Maximal number of CIs allowed to be mapped to a single CI
reconciliation.identification.map.fuse Maximal mapped CIs per Data in operation 2000000 Minutes False Maximal CIs allowed to appear in a single Data In operation
reconciliation.internal.data.container.size.fuse reconciliation.internal.data.container.size.fuse.name 200000 Minutes False reconciliation.internal.data.container.size.fuse.desc