This document contains official content from the BMC Software Knowledge Base. It is automatically updated when the knowledge article is modified.
BMC Atrium CMDB Suite
BMC Atrium CMDB Suite
Troubleshooting Data inconsistencies in CMDB from Discovery
Below are suggested steps to investigate data inconsistencies in the CMDB, when the CMDB is populated from several discovery products. The process is one of investigating examples and tracing the behavior back to what caused the discrepancy.
1. Pick an example to investigate
Select a computer system or two which illustrates a particular kind of data inconsistency. We will want to investigate it to identify the reason for the inconsistency. Understanding the cause will often suggest ways to query to identify the scope of the issue.
2. Check which datasets are listed in AttributeDataSourceList attribute to see which datasets contributed to it
Whenever a CI is merged via Reconciliation, the system attribute named AttributeDataSourceList will be populated indicating which source datasets contributed which values to the target dataset � typically BMC.ASSET. You can query on the form BMC.CORE:BMC_BaseElement to see the AttributeDataSourceList attribute and values.
The value has the format: <DatasetID>: <List of attribute IDs whose value came from this dataset>/<next DatasetID>:(<List of attribute IDs whose value came from that dataset>
The attribute IDs are all integers, so you can skim the value of AttributeDataSourceList to see which datasets provided values.
In many cases, the inconsistency can be traced at this point to a difference in which source dataset provided the data. For example, a value may be populated with different format values depending on the source dataset providing the data. This would be the point to investigate the issue upstream, to understand why that is the case or what can be done to address it.
3. In BMC Remedy User or a browser to Mid-Tier, copy the value of ReconciliationIdentity (as long as the value is not zero, which indicates unidentified) and query to find all the CIs that contributed data to the target dataset.
This will provide the list of CIs which merged to the BMC.ASSET or Target dataset, so you can look at the source data to see if it explains the inconsistency. Looking at the source dataset CIs makes it easier to see the issue if the attribute in question has a value of NULL for one dataset, but a different value for the other dataset.
If the CI is consistently found in both datasets, but the desired value is not merged to BMC.ASSET, you can adjust the attribute precedences in Reconciliation Manager.
If you can trace the issue to the CI sometimes not being found in both datasets, further investigation is required to see whether both discovery datasets find the same CIs or whether processes should be put in place to ensure the CI is always discovered and found by the preferred data provider.
4. Investigate the data provider dataset to see whether the data inconsistency comes from it
Once a discrepancy is identified with a particular discovery data provider, query on that dataset to see whether all similar CIs show the same behavior or it is just a subset. If only a subset are found with the discrepancy, compare how the working/nonworking systems were discovered in the discovery provider product.
5. Investigate whether Normalization should have modified the value.
AtriumCore has a Normalization feature which can be used to normalize software titles, product names, manufacturers and product categorization. If the discrepancy is with one of these attributes, and normalization feature has been implemented, the issue may need to be investigated further as a normalization issue. Normalization functionality modifies the product catalog values provided by the discovery provider dataset, and coverts them to the value specified in a Normalization catalog mapping.
The questions to ask here:
- What values are provided by the discovery provider dataset � for product, manufacturer, and product categorization (category, type, item) ?
- Is there a Normalization catalog mapping to convert these values to another desired value?
- Has normalization been run against the CI?