NOTE: This article does not replace documentation.
For specifics of features not discussed in this article please consult http://docs.bmc.com
Points covered in this article:
1. CMDB-Inline-Normalization
2. What triggers Normalization?
3. Normalization CMDB data in AR Server group
4. Why does Normalization matter?
5. Normalization and Multitenancy
6. "- Global -" Company - What does it mean?
7. Unknown Versions and Patches
8. Normalization of objects acquired from discovery sources
9. Alias Mapping
10. Market Version default values
11. Normalization Defects
12. Exclude the PatchNumber attribute in a specific Class
----------------------------------------------------------------------------------------------------------------------------------------------------------------------
1. CMDB-Inline-Normalization
Let's begin by explaining the CMDB-Inline-Normalization setting in ar.cfg/ar.conf (ARDBC).
NOTE: The CMDB-Inline-Normalization setting must always be set to True (T). Please don't confuse this setting with "Dataset Level Inline Normalization".
This setting only effects manual changes by an end user. Typically someone like an Asset Operator or perhaps even CMDB Administrator that is testing Normalization changes with Dataset Level Inline Normalization: It is used with the setting of "Preserve Manual Edits" in the Normalization configuration.
Setting the "Dataset Level Inline Normalization" is what causes CI's (Configuration Items) to be normalized during a manual update or anytime a CI is created or modified.
Typically normalization is done via batch job or job running in Continuous mode, but it can be used with Dataset Level Inline Normalization. Running batch or continuous jobs will also include normalization of Relationships. You can see BMC documentation for listing of available features.
Changing this Dataset setting to Continuous and the Normalization engine will only normalize the CIs in a scheduled batch job or continuous job.
2. What actually triggers Normalization?
1. Normalization is triggered by saving any changes or adding values into the fields of BMC.CORE forms. These are defined as Configuration Item (CI) records where the CMDB class ID is included in the "Normalization Configuration > Class Configurations" form.
e.g. BMC_Person is not normalized because it is not listed in that form (The CI NE Status will be as "Not suitable for Normalization").
2. The fields "Model" and "ManufacturerName" are required for normalization to pass.
+ These fields (CMDB data Attributes) are as follows:
- Category (Field Id 200000003. Owned by BMC.CORE:BMC_BaseElement class)
- Type (Field Id 200000004. Owned by BMC.CORE:BMC_BaseElement class)
- Item (Field Id 200000005. Owned by BMC.CORE:BMC_BaseElement class)
- Model (Field Id 240001002. Owned by BMC.CORE:BMC_BaseElement class)
- ManufacturerName (Field Id 240001003. Owned by BMC.CORE:BMC_BaseElement class)
- VersionNumber (Field Id 240001005. Owned by BMC.CORE:BMC_BaseElement class)
- PatchNumber (Field Id 260131107. This one has 64 characters and is owned by BMC.CORE:BMC_ApplicationSystem class . Also Field Id 301137300 with 254 characters and owned by BMC.CORE:BMC_Software)
- MarketVersion (Field Id 530062400. Owned by BMC.CORE:BMC_BaseElement class)
- Company (Field ID 1000000001. Owned by BMC.CORE:BMC_BaseElement class)
- AccountId (Field ID 301186800. Owned by BMC.CORE:BMC_BaseElement class)
VERY Important: If Company is specified then AccountId will also be considered.
3. Normalizing CMDB data using NE plugin running in an AR Server group:
Prior to 9.x release the normalization plugin was triggered and could run on any system in the server group without any control. On those versions Normalization could run on the AR Server "closest" to the call that has received a change to an altered CI. By closest we mean that the CI is processed on the server that is currently accessed via Midtier. The actions requested will be performed on the "In use" server.
AR Server Dispatcher Service has no specific instructions to run the Normalization Jobs on a specific server.
Inline settings discussed above will apply in this context. Removing the NORM plugin from configuration can lead to ARERR 8755 "The specified plug-in does not exist" errors.
After the 9.x release: You can view the Normalization Engine ranking from the AR System Service Failover Ranking form. The rank in the AR System Service Failover Ranking form is populated by setting the rank of "Service Failover" in the AR System Server Group Operation Ranking form. The Normalization Engines are assigned Rank 1, Rank 2, and so on, where Rank 1 is the highest.
and the "AR System Service Failover Whiteboard" form:
Please see documentation on AR Server and how to implement Normalization Service using these forms.
ref: https://docs.bmc.com/docs/ac2002/normalization-failover-for-scheduled-batch-jobs-908213765.html
4. What impact is there if CIs are not normalized? Why does normalization of data matter?
Normalization of data makes sure that all records are in a format that every business unit can consume in the same way. It validates approved and normalized products.
"What makes Normalization work?" or "How do I get the 'Normalized and Approved' status?"
- CIs get reconciled by the Reconciliation Engine. CMDB data Reconciliation has a toggle that will only process CIs that are Normalized. This setting is listed as "Process Normalized CIs Only".
- Another impact is on running reports on data where CI's have not been normalized. A product might be imported as "Latitude" or "Dell Latitude" and running a report that looks for: "Dell Latitude" laptop would exclude all "Latitude" CIs even though they are the same product. Product Catalog is very effective when data is normalized to common and matching values.
- Software licensing will use and associate "MarketVersion" with the cost of a software package. This helps with the cost analysis of the production environment.
First, let's begin with the CMDB Class and what you can do to see what fields need to have a value to be Normalized. Each class you want normalized must be listed in the Class Configuration panel of the Normalization console. Each of the fields that have a check in them must have a value to pass normalization.
This screen capture shows an example using the
BMC.CORE:BMC_Product class.
Normalization Configuration Editor:In the
Normalization Configuration Editor screen capture above you can see that
PatchNumber is specified for
BMC_Product class. Using the correct class when looking for reasons for Failed Normalization is important. Below you can see that the
PatchNumber attribute is visible in CI classes that are children of BMC_BaseElement, but not in BaseElement itself.
PatchNumber in Attribute Definitions:This means that looking at data from the BaseElement container will not give you the information you need. If PatchNumber has a value and caused the Product CI to fail, then this is not the view that will give you that.
Please use the class container (form, schema, view) that is closest to the ClassID. For example, use
BMC.CORE:BMC_Product instead of
BMC.CORE:BMC_BaseElement.
PatchNumber,
Version, and
Model can vary in
Associated Company. This is often one that is overlooked by data admins. Please make sure you add this to your investigation of CIs that have failed to normalize. Once you specify one PatchNumber for a Model then all Versions without a Patch will need to have Unknown or BMC_UNKNOWN PatchNumber associated with it. Otherwise, they will fail to normalize.
Again, here the software is doing exactly what it is told. This creates lots of extra work for the CMDB Administrators so please make informed decisions on patch tracking via the CMDB.