0% found this document useful (0 votes)
406 views166 pages

CMDB7.6.04 NormalizationReconciliationGuide

Uploaded by

Harvey ITSM
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
406 views166 pages

CMDB7.6.04 NormalizationReconciliationGuide

Uploaded by

Harvey ITSM
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 166

BMC Atrium CMDB 7.6.

04

Normalization and
Reconciliation Guide

January 2011

www.bmc.com
Contacting BMC Software
You can access the BMC Software website at http://www.bmc.com. From this website, you can obtain information
about the company, its products, corporate offices, special events, and career opportunities.
United States and Canada
Address BMC SOFTWARE INC Telephone 713 918 8800 or Fax 713 918 8000
2101 CITYWEST BLVD 800 841 2031
HOUSTON TX 77042-2827
USA
Outside United States and Canada
Telephone (01) 713 918 8800 Fax (01) 713 918 8000

If you have comments or suggestions about this documentation, contact Information Design and Development by email at
[email protected].

© Copyright 2005–2007, 2009-2011 BMC Software, Inc.


BMC, BMC Software, and the BMC Software logo are the exclusive properties of BMC Software, Inc., are registered with the U.S. Patent
and Trademark Office, and may be registered or pending registration in other countries. All other BMC trademarks, service marks, and
logos may be registered or pending registration in the U.S. or in other countries. All other trademarks or registered trademarks are the
property of their respective owners.
IT Infrastructure Library® is a registered trademark of the Office of Government Commerce and is used here by BMC Software, Inc.,
under license from and with the permission of OGC.
ITIL® is a registered trademark, and a registered community trademark of the Office of Government Commerce, and is registered in the
U.S. Patent and Trademark Office, and is used here by BMC Software, Inc., under license from and with the permission of OGC.
Linux is the registered trademark of Linus Torvalds.
UNIX is the registered trademark of The Open Group in the US and other countries.
Oracle and Java are registered trademarks of Oracle and/or its affiliates. Other names may be trademarks of their respective owners.
BMC Software considers information included in this documentation to be proprietary and confidential. Your use of this information is
subject to the terms and conditions of the applicable End User License Agreement for the product and the proprietary and restricted
rights notices included in this documentation.

Restricted rights legend


U.S. Government Restricted Rights to Computer Software. UNPUBLISHED -- RIGHTS RESERVED UNDER THE COPYRIGHT LAWS OF
THE UNITED STATES. Use, duplication, or disclosure of any data and computer software by the U.S. Government is subject to
restrictions, as applicable, set forth in FAR Section 52.227-14, DFARS 252.227-7013, DFARS 252.227-7014, DFARS 252.227-7015, and
DFARS 252.227-7025, as amended from time to time. Contractor/Manufacturer is BMC Software, Inc., 2101 CityWest Blvd., Houston, TX
77042-2827, USA. Any contract notices should be sent to this address.
Customer Support
You can obtain technical support by using the Support page on the BMC Software website or by contacting Customer
Support by telephone or email. To expedite your inquiry, please see “Before Contacting BMC Software.”

Support website
You can obtain technical support from BMC Software 24 hours a day, 7 days a week at
http://www.bmc.com/support. From this website, you can:
■ Read overviews about support services and programs that BMC Software offers.
■ Find the most current information about BMC Software products.
■ Search a database for problems similar to yours and possible solutions.
■ Order or download product documentation.
■ Report a problem or ask a question.
■ Subscribe to receive email notices when new product versions are released.
■ Find worldwide BMC Software support center locations and contact information, including email addresses, fax
numbers, and telephone numbers.

Support by telephone or email


In the United States and Canada, if you need technical support and do not have access to the Web, call 800 537 1813 or
send an email message to [email protected]. (In the Subject line, enter
SupID:yourSupportContractID, such as SupID:12345.) Outside the United States and Canada, contact your
local support center for assistance.

Before contacting BMC Software


Have the following information available so that Customer Support can begin working on your issue immediately:
■ Product information
— Product name
— Product version (release number)
— License number and password (trial or permanent)
■ Operating system and environment information
— Machine type
— Operating system type, version, and service pack
— System hardware configuration
— Serial numbers
— Related software (database, application, and communication) including type, version, and service pack or
maintenance level
■ Sequence of events leading to the problem
■ Commands and options that you used
■ Messages received (and the time and date that you received them)
— Product error messages
— Messages from the operating system, such as file system full
— Messages from related software
License key and password information
If you have a question about your license key or password, contact Customer Support through one of the following
methods:
■ E-mail [email protected]. (In the Subject line, enter SupID:<yourSupportContractID>,
such as SupID:12345.)
■ In the United States and Canada, call 800 537 1813. Outside the United States and Canada, contact your local support
center for assistance.
■ Submit a new issue at http://www.bmc.com/support.
Contents

BMC Atrium Core documentation 9

Chapter 1 Normalizing data 13


Overview of normalization. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
Normalization and the Product Catalog . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
Normalization process . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
Normalization and software license management . . . . . . . . . . . . . . . . . . . . . . . . . . 19
Normalization and impact relationships . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
Normalization and best-practice relationship names . . . . . . . . . . . . . . . . . . . . . . . 21
Normalization and instance permissions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
Null values for product and manufacturer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
Multitenancy support in the Normalization Engine . . . . . . . . . . . . . . . . . . . . . . . . 23
Normalization status. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
Normalization use cases . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
Example normalization scenario . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
Preparing for normalization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
Assigning Normalization Engine permissions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
Preparing the Product Catalog and planning classes for normalization . . . . . . . 28
Typical normalization setup. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
Configuring datasets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
Configuring classes for normalization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
Simulating normalization. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
Setting up aliases . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
Normalization modes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
Monitoring normalization jobs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
Optional normalization tasks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
Configuring RPC ports and threads . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
Configuring logging . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
Disabling normalization for all datasets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
Exporting and importing normalization configurations . . . . . . . . . . . . . . . . . . . . . 52
Creating rules to set row-level permissions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
Configuring Version Rollup rules. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
Configuring Suite Rollup rules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59

Contents 5
Chapter 2 Reconciling data 65
Overview of reconciliation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
Identify activity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
Merge activity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
Datasets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
Reconciliation console . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
Namespaces and reconciliation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
Reconciliation IDs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
Reconciliation in a server group. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71

Chapter 3 Reconciliation jobs 73


Preparing data for reconciliation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
Creating a standard reconciliation job. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
Determining when to use standard jobs and rules . . . . . . . . . . . . . . . . . . . . . . . . . . 76
Standard identification and merge settings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
Starting and stopping a job . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
Creating a job schedule . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
Creating a continuous job . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
Manually starting a job . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
Using a BMC Atrium CMDB API program . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
Using a Run Process workflow action . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
Dynamic dataset and qualification values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
Pausing and resuming jobs. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
Viewing job status, results, and history . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
Viewing job information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
Event descriptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
Pruning job run records . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
Creating and editing a customized reconciliation job. . . . . . . . . . . . . . . . . . . . . . . . . . . 89

Chapter 4 Identify and Merge activities 93


Using Qualification Sets. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
Building a qualification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
Qualification conventions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
Creating qualifications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
Identifying data across datasets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
Identify activity overview. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
Creating an Identify activity. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
Creating an Identification ruleset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
Relating datasets and Identification rulesets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
Creating datasets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
Manually identifying data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
Identifying a class without including related components . . . . . . . . . . . . . . . . . . 108

6 Normalization and Reconciliation Guide


Merging datasets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
Independent Merge activities and AttributeDataSourceList . . . . . . . . . . . . . . . . 109
Handling NULL values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110
Merge process overview. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
Creating a Merge activity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
Defining a Precedence Association Set. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114
Creating a Precedence set. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115
Creating a Precedence Association . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118

Chapter 5 Additional reconciliation activities 119


Overview of additional activities. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120
Compare activity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120
Rename activity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121
Copy activity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121
Delete activity. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121
Purge activity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121
Execute activity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121
Qualification sets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121
Workflow Execution rulesets. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122
Deleting data. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122
Purging soft-deleted data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124
Comparing datasets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126
Creating a Compare activity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126
Executing workflow against compared instances . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128
Creating a Workflow Execution ruleset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129
Copying datasets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131
Creating a Copy activity. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135
Renaming datasets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137
Executing reconciliation jobs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139

Chapter 6 Reconciliation configuration 141


Server settings. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142
Assigning Reconciliation Engine permissions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142
Configuring Reconciliation Engine system parameters . . . . . . . . . . . . . . . . . . . . . . . . 143
Configuring the deletion of log files for reconciliation jobs . . . . . . . . . . . . . . . . . . . . 145
Configuring threads. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146
Standard identification and merge rules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146
Configuring standard identification rules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147
Configuring standard merge rules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147
Exporting reconciliation definitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148
Importing reconciliation definitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149

Glossary 151

Index 161

Contents 7
8 Normalization and Reconciliation Guide
BMC Atrium Core documentation

This section describes the complete set of BMC Atrium Core documentation,
including manuals, help systems, videos, and so on.
Unless otherwise noted, documentation is available free of charge on the BMC
Atrium Core documentation media (DVD or Electronic Product Download
bundle) and on the BMC Customer Support site, at http://www.bmc.com/support.
To find this documentation on the BMC Customer Support site, choose Product
Documentation > Supported Product A-Z List > BMC Atrium CMDB Enterprise
Manager >7.6.04

Title Description Audience


Atrium Integrator 7.6.04 Information about defining source and target Users who are responsible
User's Guide connections, creating jobs and transformations, for setting up data transfer
editing and monitoring jobs, and other Atrium integrations between
Integrator concepts. external data stores and
BMC Atrium CMDB.
BMC Atrium CMDB 7.6.04 Information about setting permissions, configuring Configuration managers,
Administrator's Guide federation, modifying the data model, configuring application administrators,
an impact model, and other administrative tasks in and asset analysts.
BMC Atrium Configuration Management Database
(BMC Atrium CMDB).
BMC Atrium CMDB 7.6.04 Hierarchical diagram of all classes in the Common Configuration managers,
Common Data Model Data Model (CDM), including unique attributes and application administrators,
Diagram applicable relationships. and asset analysts.
BMC Atrium CMDB Description and details of superclasses, subclasses, Configuration managers,
7.6.04 Data Model Help attributes, and relationship classes for each class. application administrators,
Contains only information about the CDM at first, and asset analysts.
but you can update it to include information about
data model extensions that you install.
Note: This Help is provided in HTML and is available
on the BMC Atrium Core media. It is not available
on the BMC Customer Support site.
BMC Atrium CMDB 7.6.04 Best practices for using the classes that BMC Configuration managers,
Data Modeling Guide provides for BMC Atrium CMDB (both the CDM application administrators,
and extensions) to model complex business entities, and asset analysts.
focusing on the use of multiple related CIs to model
an entity rather than on general information about a
class or attribute.

BMC Atrium Core documentation 9


BMC Atrium CMDB 7.6.04

Title Description Audience


®
BMC Atrium CMDB Information about Oracle Java classes, methods, Application programmers.
7.6.04 Javadoc Help and variables that integrate with BMC Atrium
CMDB.
Note: This Help is provided in HTML and is available
on the BMC Atrium Core media. It is not available
on the BMC Customer Support site.
BMC Atrium CMDB 7.6.04 Information about normalizing data in BMC Atrium Configuration managers,
Normalization and CMDB and reconciling CIs from different data application administrators,
Reconciliation Guide providers into a single production dataset. and asset analysts.
BMC Atrium CMDB Help for using and configuring BMC Atrium CMDB, Configuration managers,
7.6.04 Online Help including Atrium Integrator, BMC Atrium Product application administrators,
Catalog, Reconciliation Engine, Normalization asset analysts, and users
Engine, and so on. that work with CIs and need
to understand the
Note: This Help is provided in HTML and is available
relationships that exist
through the Help links in the BMC Atrium CMDB
within BMC Atrium CMDB.
user interface. It is not available on the BMC
Customer Support site.
BMC Atrium CMDB 7.6.04 Information about using BMC Atrium CMDB, Users that work with CIs
User's Guide including searching for and comparing CIs and and need to understand the
relationships, relating CIs, viewing history, running relationships that exist
impact simulations, and viewing federated data. within BMC Atrium CMDB.
BMC Atrium Core: Taking End-to-end high-level steps for bringing data into Configuration managers,
Your Data Into Production BMC Atrium CMDB from a third-party source and application administrators,
End to End making it available in your production dataset. and asset analysts.
Note: This Flash video is available on the BMC
Atrium Core media. It is not available on the BMC
Customer Support site.
BMC Atrium Core 7.6.04 Information about the BMC Atrium Core Configuration managers,
Compatibility Matrix configurations that are expected to work together application administrators,
based on design, testing, or general understanding and asset analysts.
of the interaction between products.
Note: Download the BMC Atrium Core 7.6.04
Compatibility Matrix from the BMC Customer
Support site at http://www.bmc.com/support/
reg/remedy-compatibility-tables.html?c=n.
BMC Atrium Core 7.6.04 Information about CMDB concepts and high-level Anyone who wants to learn
Concepts and Planning steps for planning and implementing BMC Atrium about and understand BMC
Guide Core. Atrium Core products,
CMDBs in general, and the
functionality of BMC
Atrium CMDB in particular.
IT leaders, configuration
managers, application
administrators, and asset
analysts are some who will
benefit from this
information.

10 Normalization and Reconciliation Guide


Title Description Audience
BMC Atrium Core 7.6.04 Information about creating API programs using C Application administrators
Developer’s Reference Guide API functions and data structures. and programmers.
BMC Atrium Core 7.6.04 Information about installing, upgrading, and Application administrators.
Installation Guide uninstalling BMC Atrium Core features.
BMC Atrium Core 7.6.04 Combined index of all guides. Everyone.
Master Index
BMC Atrium Core 7.6.04 Information about configuring the Product Catalog System administrators, IT
Product Catalog and DML and DML, adding products, and creating aliases for managers, network
Guide products, manufacturers, and categorizations. managers, and other
qualified personnel who are
familiar with their
computing and networking
environment.
BMC Atrium Core 7.6.04 Information about new features, known issues, and Everyone.
Release Notes other late-breaking topics.
BMC Atrium Core 7.6.04 Information about resolving issues with BMC Application administrators,
Troubleshooting Guide Atrium Core components, including API, filter, and programmers, and BMC
console error messages and their solutions. Support personnel.
BMC Atrium Core 7.6.04 Information about using BMC Atrium Core Web Application administrators
Web Services Help Services, including how to publish and find and programmers.
interfaces in the Web Services Registry, set versions,
disambiguate web services, configure security
policies and encryption, and use BMC Atrium Core
Web Services data structures and operations.
Note: This Help is provided in HTML and is available
on the BMC Atrium Core media. It is not available
on the BMC Customer Support site.
BMC Atrium Integration Information about how to build adapters that can Developers who have a
Engine 7.6.04 ADK transfer information between an external data store basic understanding of BMC
Developer's Guide and either BMC Remedy AR System forms or BMC Atrium Integration Engine
Atrium CMDB. and want to build adapters
that can exchange data
between two data sources.
BMC Atrium Integration Help for using and configuring BMC Atrium Users who are responsible
Engine 7.6.04 Online Help Integration Engine. for setting up data transfer
integrations between
Note: This Help is provided in HTML and is available
external data stores and
through the Help links in the BMC Atrium
either BMC Atrium CMDB
Integration Engine user interface. It is not
or BMC Remedy
available on the BMC Customer Support site.
AR System.

BMC Atrium Core documentation 11


BMC Atrium CMDB 7.6.04

Title Description Audience


BMC Atrium Integration Information about creating data exchanges and data Users who are responsible
Engine 7.6.04 User's Guide mappings, defining rules and queries, activating for setting up data transfer
event-driven data exchanges, defining connection integrations between
settings, and other BMC Atrium Integration Engine external data stores and
concepts. either BMC Atrium CMDB
or BMC Remedy
AR System.
Mapping Your Data to Spreadsheet that maps common IT objects to the Configuration managers,
BMC Atrium CMDB 7.6.04 appropriate class, whether part of the CDM or an application administrators,
Classes extension. This spreadsheet also includes and asset analysts.
information about further categorizing instances
using key attributes, and best practices for creating
normalized relationships.

12 Normalization and Reconciliation Guide


Chapter

1 Normalizing data

The process of normalization makes sure that product names and categorization
are consistent across different datasets and from different data providers.
The following topics are provided:
! Overview of normalization (page 14)
! Preparing for normalization (page 28)
! Typical normalization setup (page 30)
! Optional normalization tasks (page 49)

Chapter 1 Normalizing data 13


BMC Atrium CMDB 7.6.04

Overview of normalization
As part of BMC Atrium CMDB, the Normalization Engine provides a centralized,
customizable, and uniform way to overcome data consistency problems.
When multiple sources provide data to the BMC Atrium Configuration
Management Database (BMC Atrium CMDB) product, data consistency problems
such as the following can occur:
! Inconsistent categories and naming
! Duplicate configuration items (CIs)
The Normalization Engine normalizes the following attributes for hardware and
software products:
! Product categorization attributes: Category, Type, and Item (CTI)
! ManufacturerName
! Model (the product name, applicable to software and hardware)
! MarketVersion (Applicable to software)
! VersionNumber (Applicable to software)
! PatchNumber (Applicable to software)
! DictionaryID (the Product Instance ID that points to the Product Catalog
entry)
The Normalization Engine includes Normalization Features that you can enable
on individual datasets. Some features allow you to define rules with conditions,
actions to perform, and the classes to normalize.

NOTE
The DML Based Instance Normalization feature is enabled for all datasets by
default and cannot be configured for individual datasets. This feature normalizes
the Model, ManufacturerName, Categorization, VersionNumber, PatchNumber,
Type, and Item attributes based on a corresponding Product Catalog entry.

! Impact Normalization—With 7.6.03, impact was represented as attributes in a


relationship class, and the BMC_Impact class is deprecated. The impact
attributes are determined by an out-of-the-box rule for the relationship class and
the source and destination classes it relates.
! Relation Name Normalization—For relationships, replaces the existing names
with the BMC-recommended names, based on the CI classes in the relationship.
! Instance-Level Permissions—Sets the row-level permissions on CIs as defined
by the CI classes and additional qualifiers of the Instance attributes.
! Version Normalization—Sets the MarketVersion attribute for instances to a
common value based on default or custom rules. This provides more accurate
information for managing licenses.

14 Normalization and Reconciliation Guide


Overview of normalization

! Suite Rollup Normalization—Allows you to define suites and their products


and to identify instances as a suite, a suite component, or a standalone
application. This allows more accurate management of suite and individual
licenses.
With the Normalization Engine, you can specify what is normalized:
! a specific dataset, such as BMC Topology Import
You can enable or disable normalization for each dataset, as well as other
normalization options.
! a specific class to normalize, such as BMC_Product
You cannot select to normalize specific classes in different datasets. Instead, you
configure classes across all datasets.
You can normalize data before or after it is written to a dataset in BMC Atrium
CMDB.

Normalization and the Product Catalog


As Figure 1-1 on page 16 shows, the Normalization Engine is part of BMC Atrium
CMDB and uses the Product Catalog to normalize data before the Reconciliation
Engine identifies and merges the data. A Product Catalog entry is not a CI but
specifies the normalized attributes for that CI by product, version, and patch.
The Normalization Engine does not consider the Product Catalog CI Type field,
which defines the BMC Atrium CMDB class associated with a product, except to
categorize instances on class (CTI Only mode). When both the Model and
Manufacturer attributes are null and if the Category, Type, and Item (CTI) values
are populated, the Normalization Engine uses CI Type. Otherwise, the CI Type is
never compared against Product Catalog data.
In the Product Catalog, you can set several states for each product. The
Normalization Engine considers the Approved state. By default, all Product
Catalog entries are unapproved, and the Normalization Engine normalizes CIs
with unapproved entries in the Product Catalog. In the Normalization console,
you can disable the Allow Unapproved CI option to normalize only approved
products. The Definitive Media Library (DML) and Definitive Hardware Library
(DHL) are the approved software and hardware products in the Product Catalog.
The other states in Product Catalog (Hide Product, Lifecycle, Blacklisted Product)
do not affect normalization.
For example, a dataset includes an instance of BMC_Product named Financial
Advisor Pro 1.0 that Calbro manufactures, and the Calbro administrator uses the
default to normalize approved and unapproved CIs. The Product Catalog has a
corresponding entry for that CI.
! If the Product Catalog entry for Calbro Financial Advisor Pro 1.0 is approved,
then the Normalization Engine normalizes the CI’s attributes and categorization
based on the Product Catalog entry and updates the CI’s
NormalizationStatus attribute to Normalized and Approved.

Chapter 1 Normalizing data 15


BMC Atrium CMDB 7.6.04

! If the Product Catalog entry for Calbro Financial Advisor Pro 1.0 is not
approved, then the Normalization Engine normalizes the CI and updates the
CI’s NormalizationStatus attribute to Normalized and Unapproved.

Figure 1-1: Normalization process and related components

BMC Atrium Core

BMC Atrium
CMDB

Other
BMC Configuration Management Consumers
Configuration Discovery Production
BMC Atrium dataset

Reconciliation
Normalization
Integration Engine BMC Asset
Management

Engine
Engine
Import Sandbox
Other data providers dataset
datasets

Federated
BMC Foundation Discovery data
and
BMC Topology Discovery

BMC Atrium
Product Catalog

Normalization process
The Normalization Engine normalizes non-normalized and modified CIs by
evaluating the CI using the Product Catalog.
Normalization works in the following ways:
! Normalizes all CIs that have a status of not normalized
! Incrementally normalizes CIs that have been modified after normalization or
after a normalization job is interrupted and resumed
All modes normalize the CIs in the datasets in the following conditions:
! The CIs are not normalized.
! The normalization configuration has changed.
The Normalization Engine normalizes non-normalized and modified CIs by
evaluating CIs using the Product Catalog:
! Signature ID—Stored in the Product Catalog and created by discovery tools for
identifying products. For more information about generating the Signature ID,
see BMC Atrium Core 7.6.04 Product Catalog and DML Guide. This lookup option
is available only with the Normalization API. For more information, see BMC
Atrium CMDB 7.5.00 Developer’s Reference Guide.

16 Normalization and Reconciliation Guide


Overview of normalization

! File name and size—The name and size of the file.This lookup option is available
only with the Normalization API. For more information, see BMC Atrium CMDB
7.5.00 Developer’s Reference Guide.
! Product attributes—The Model, ManufacturerName, and VersionNumber
attributes of the CI.
Figure 1-2 shows the process of normalizing CIs in more detail.

Figure 1-2: Normalization process

No Update the
Is class set up for NormalizationStatus
normalization? attribute and exit
1
Yes

Is there an alias in No Use supplied product


NE:ProductNameAlias and manufacturer
form? names

Yes
Yes

Replace product and Normalize CI and


manufacturer names from Search for the product Yes update the
in the Product Catalog Is there an entry? NormalizationStatus
the NE:ProductNameAlias
form attribute
2 3 4
No

Yes Is there an alias in the No


Product Catalog Alias
Mapping form?

Use mapped Allow New


Product Catalog Yes Create entry in the
values
Entry option Product Catalog
6 enabled?
No 7
No

Search for the Update the


product in the NormalizationStatus
Is there an entry?
Product Catalog attribute and exit

Yes
Get CTI values
and replace them
in the CI

Chapter 1 Normalizing data 17


BMC Atrium CMDB 7.6.04

Step 1 The Normalization Engine checks that the CI class is configured for normalization.

! If the class is configured, the Normalization Engine continues the process.


! If the class is not configured, the Normalization Engine updates the
NormalizationStatus attribute to Normalization Not Applicable and ends the
normalization process for the CI.

Step 2 The Normalization Engine checks the NE:ProductNameAlias form for aliases for
the ManufacturerName and Model attributes.

If it finds a ManufacturerName or Model alias, the Normalization Engine


substitutes it in the corresponding CI attribute.

Step 3 The Normalization Engine searches the Product Catalog for a product that
matches the CI.

If the Product Catalog returns multiple matches, and the Normalization Engine
rejects the CI and reports an error.

Step 4 If the Normalization Engine finds a Product Catalog entry, it normalizes the CI,
including all of the Normalization Features enabled for the dataset.

Normalization of unapproved products depends on whether the Allow


Unapproved CI option is disabled. By default, it is enabled. The Normalization
Engine checks the entry’s IsApproved flag.
! The Normalization Engine updates the CI with the Category, Type, and Item
attribute values from the Product Catalog entry.
! The Normalization Engine updates the NormalizationStatus attribute to
Normalized and Approved or Normalized and Unapproved, and then ends the
normalization process for the CI.

Step 5 If the Normalization Engine finds no Product Catalog entry, it checks the Product
Catalog Alias Mapping form for aliases.

Step 6 If it finds aliases, the Normalization Engine applies them to the CI.

a Using the alias values for product and manufacturer, the Normalization Engine
searches the Product Catalog for a matching product.
b If the Normalization Engine finds no Product Catalog entry, it updates the CI’s
NormalizationStatus attribute as Normalization Failed and ends the
normalization process for the CI.
c If the Normalization Engine finds a Product Catalog entry, it normalizes the CI,
including all of the Normalization Features enabled for the dataset.
! The Normalization Engine updates the CI with the Category, Type, and Item
attribute values from the Product Catalog entry.
! The Normalization Engine updates the NormalizationStatus attribute to
Normalized and Approved or Normalized and Unapproved, and then ends
the normalization process for the CI.

18 Normalization and Reconciliation Guide


Overview of normalization

Step 7 If the Normalization Engine finds no aliases in the Product Catalog Alias Mapping
form, it checks if the Allow new Product Catalog entry option is enabled.

a If enabled, the Normalization Engine applies Normalization Features enabled


for the dataset and allows the Product Catalog to create a product entry based
on the CI data and updates the NormalizationStatus attribute.
b If disabled, the Normalization Engine updates the NormalizationStatus
attribute to Normalization Failed and ends the normalization process for the CI.
After data is normalized, it can be reconciled to the BMC Atrium CMDB
production dataset.

Normalization and software license management


For software license management, BMC Atrium CMDB 7.6.04 adds the
MarketVersion attribute to the BMC_BaseElement class. The VersionNumber
attribute stores a patch update number, such as 5.0.1.12, which can change
frequently with maintenance releases. To manage licenses, the MarketVersion
attribute stores a simpler string version, such as 5.0 or 2007.
The Normalization Engine allows you to set a common MarketVersion with which
the licenses are associated. This provides more accurate version information for
managing licenses. Also, to tracks suite and individual licenses, you can use the
Normalization Engine to create suites and to identify instances as suites, suite
components, or standalone applications.
To use the Normalization Engine for version and suite rollups, you must complete
the following steps.

Step 1 Define the rules for rolling up versions to the specified Market Version. (See
“Configuring Version Rollup rules” on page 55.)

Step 2 Create suites and the rules for identifying CIs as suites or components. (See
“Configuring Suite Rollup rules” on page 59.)

Step 3 For each dataset, enable the Version Rollup and Suite Rollup features. (See
“Configuring datasets” on page 31.)

Normalization and impact relationships


With 7.6.03, the BMC_Impact relationship class was deprecated to help minimize
redundancy in data. The attributes that stored impact information for a
relationship are now mapped to the BMC_BaseRelationship class.
BMC Atrium CMDB allows you to automatically store the impact details for
relationships based on the best-practice impact rules that are shipped with the
product. The best-practice impact normalization rules are listed in the Impact
Normalization tab of the Mapping Your Data to BMC Atrium CMDB 7.6.04 Classes
document.

Chapter 1 Normalizing data 19


BMC Atrium CMDB 7.6.04

The Impact Normalization Feature option in the Normalization Engine is enabled


for all datasets by default. If you do not want to normalize impact relationships for
an individual dataset, you can disable the Impact Normalization Feature option for
that dataset. For more information about how to disable or enable impact
relationship normalization, see “Configuring datasets” on page 31.

NOTE
The Normalization Engine allows you to only disable or enable the normalization
of impact relationships based on the best-practice impact normalization rules that
are provided by BMC. You cannot create additional best-practice impact
normalization rules.

The impact relationship rules are framed using the following guidelines:
! The rules are defined at the relationship class level. The rules defined for the
class are applied to every instance of the relationship class that you create.
! The rules are defined in BMC Atrium CMDB depending upon the source class,
destination class, and the relationship class itself.
For example, for the BMC_HostedSystemComponents relationship class,
BMC_ComputerSystem source class, and BMC_DiskDrive destination class, a
rule is defined to set the HasImpact attribute to Yes and ImpactDirection
attribute to Destination-Source. This rule is defined to indicate non-availability
of a system caused due to a hard drive failure.
! The rules are applicable to all datasets in BMC Atrium CMDB. You cannot
configure a separate rule for each dataset.
! When rules are set for a relationship class at both parent and child class levels,
the child class rule overrides the parent class rule.
! Apart from the regular attributes that are automatically set for a relationship
based on the relationship, source, and destination classes, you can specify
additional qualification string. The qualifier is used to determine whether the
impact attributes should be applied on the CI that is being processed.
! The rules eliminates duplicate impact relationships by merging impact
relationships between any two given endpoints. If the Merge process finds any
matching Impact relationships when the rule is applied on a relationship
instance, the impact relationships are merged. The rules merge those instances
of the BMC_BaseRelationship class that have the same values for the Name,
HasImpact, ImpactPropagationModel, ImpactDirection, and ImpactWeight
attributes.
If you update the values of the HasImpact, ImpactDirection, ImpactWeight and
ImpactPropagationModel impact attributes of a relationship instance and then
run the normalization job, the Normalization Engine retains the modified values
for these attributes by default. However, you can configure the Normalization
Engine to reset the values of these impact attributes based on the best-practice
impact normalization rules, each time you run a normalization job. For
information about configuring the Auto Impact Manual Edit setting, see
“Configuring datasets” on page 31.

20 Normalization and Reconciliation Guide


Overview of normalization

Normalization and best-practice relationship names


BMC Atrium CMDB allows you to normalize relationships along with CIs, based
on the best-practice relationship rules that are shipped with the product. These
rules are listed in the Relationship Normalization tab of the Mapping Your Data to
BMC Atrium CMDB 7.6.04 Classes document. You can use the inline, continuous, or
batch modes of normalization for relationship names.
The Relation Name Normalization Feature option in the Normalization Engine is
enabled for all datasets by default. If you do not want to normalize relationship
classes for an individual dataset, you can disable the Relation Name
Normalization Feature option for that dataset. For more information about how to
disable or enable relationship normalization, see “Configuring datasets” on
page 31. You cannot create additional best-practice relationship rules.

WARNING
Although you can disable the Relation Name Normalization feature in the
Configuration Editor, BMC recommends that you do not disable the normalization
of relationships based on the best-practice relationship rules that are shipped with
the product. Other BMC products that consume the configuration data in BMC
Atrium CMDB reference the best practice relationship rules and disabling the
Relation Name Normalization feature can result in errors in these products.

The best-practice rules for relationship classes are framed using the following
guidelines:
! The rules can modify only the Name attribute for the relationship classes.
! The rules are defined in BMC Atrium CMDB depending upon the source and
destination classes for a relationship.
For example, a rule can be defined to set the Name attribute of the relationship
instance with the value ContainedDomain if the relationship class is
BMC_Component, the source class BMC_AdminDomain, and destination class is
also BMC_AdminDomain.
! The rules are applicable to all datasets in BMC Atrium CMDB. To define a rule
for specific dataset, include the datasetID attribute in the rule qualification.
! When rules are set for a relationship class at both parent and child class levels,
the child class rule overrides the parent class rule.

Chapter 1 Normalizing data 21


BMC Atrium CMDB 7.6.04

Normalization and instance permissions


Prior to 7.6.04, you could set row-level permissions by editing the CI, applying
default class permissions when creating a CI, or creating a custom workflow. You
can now use the Normalization Engine to set these permissions for specified
classes and, with BMC Remedy AR System qualifications, specific instances.
To use the Normalization Engine for instance permissions, you must complete the
following steps.

Step 1 Define the rules for setting the row-level permissions. (See “Creating rules to set
row-level permissions” on page 53.)

Step 2 For each dataset, enable the row-level security feature. (See “Configuring datasets”
on page 31.)

In addition to the CMDB Data View and CMDB Data Change roles, users must also
have row-level access to instances. Each class has two attributes that specify users
with read and write access to the class instances.
! CMDBRowLevelSecurity—Users who are members of a group with row-level
access have permission to view the instance if they also have the CMDB Data
View or CMDB Data Change role.
! CMDBWriteSecurity—Users who are members of a group with write access
have permission to modify the instance if they also have row-level access and
the CMDB Data Viewer role. This permission is useful for giving someone write
access to a specific instance without giving write access to all instances with one
of the CMDB Data Change roles.
You can define groups for the following permissions:
! View—Members of these groups and roles can view the attribute in the class
form, but cannot modify its value.
! Change—Members of these groups and roles can view and modify the attribute
value.
For more information about permissions, see BMC Atrium CMDB 7.6.04
Administrator's Guide.

22 Normalization and Reconciliation Guide


Overview of normalization

Null values for product and manufacturer


The Normalization Engine handles CIs with no values for the Model and
ManufacturerName attributes in the following ways when the Normalization
Type option is set to CTI Only.
For each CI type, such as BMC_Product, BMC_OperatingSystem, and BMC_Patch,
the Product Catalog creates only one product entry with a BMC_UNKNOWN
value in the Model and ManufacturerName attributes.
! If the CI has no values for both Model and ManufacturerName attributes, the
Normalization Engine substitutes the BMC_UNKNOWN value for the
attributes and then sends a search request to the Product Catalog. If the product
does not exist, the Normalization Engine requests the Product Catalog to create
an entry using the BMC_UNKNOWN values and normalizes the CI. The CI
must have values for the Category, Type, and Item attributes, or the product
creation fails.
! If the CI has no values for either the Model or ManufacturerName attribute, you
must create a product categorization mapping before normalizing.
! If a CI has an empty Model attribute, in the Discovery Product Categorization
area of the Catalog Mapping window, type BMC_UNKNOWN as a value for
Product Name.
! If a CI has an empty ManufacturerName attribute, in the Product Catalog
Console, create a new manufacturer named BMC_UNKNOWN. Then, in the
Discovery Product Categorization area of the Catalog Mapping window,
select BMC_UNKNOWN for Manufacturer Name.
! In both cases, for the Mapped Product Categorization area of the Catalog
Mapping window, you can select an existing product or manufacturer name
where available.
For more information, see “Mapping product categorization aliases” on page 41.

Multitenancy support in the Normalization Engine


Multitenancy enables a single Product Catalog shared among multiple companies,
or tenants, to track the approved products for each company.
You cannot set the Normalization Engine to work differently for different tenants:
the same Normalization Engine configuration is used for all tenants.
When normalizing a CI, the Normalization Engine checks for a value of the CI’s
AccountID attribute.
! If the attribute has a value, the Normalization Engine uses it for the Alias
Lookup.
! If it does not, the Normalization Engine assumes that only one company is using
the Product Catalog and that multitenancy does not apply.

Chapter 1 Normalizing data 23


BMC Atrium CMDB 7.6.04

Normalization status
Each CI has a NormalizationStatus attribute to track the CI’s stages of
normalization. Table 1-1 describes the possible values for NormalizationStatus.
Table 1-1: NormalizationStatus values
Status value Description
Not Applicable for The CI is not normalized but did not fail because, for
Normalization some classes, normalization is not applicable. The
Normalization Engine assigns this status to CIs with
classes not configured for normalization. If needed you
can configure the classes or remove them for
normalization.
This status value is set when a CI is created or modified.
Normalization Failed The CI is not normalized because no Product Catalog
entry is found for the CI.
Normalized and Approved The CI is normalized and approved because the
following items are true:
! The CI matched a unique entry in the Product Catalog.
! The matching product is approved.
! The CI did not match a Product Catalog entry and the
Normalization Engine created a new entry for it
Normalized but Not Approved The CI is normalized but not approved because the CI
matched a Product Catalog entry that is not approved
Not Normalized The default status of an instance is always Not
Normalized.
Modified After Last The CI is normalized but has changed since it was
Normalization normalized:
! The CI has been normalized but at least one attribute
that can be normalized has been modified.
! If the CI has been normalized, the status is changed to
Modified After Last Normalization after the CI is
reconciled.
If the dataset is set to inline normalization, you might
not see this status for a CI. This status appears in the
cases of continuous and batch normalization.

Normalization use cases


This section describes different use cases for normalizing data. Each use case has a
context and an overview of the steps for normalizing data that see more detailed
information in other sections.

Initial CI loading with batch normalization


When you initially load CIs from your data providers into BMC Atrium CMDB,
BMC recommends that you use the batch mode rather than inline or continuous
mode.

24 Normalization and Reconciliation Guide


Overview of normalization

Inline and continuous modes can take much longer for normalizing initial CI
loading because these modes process each CI as it is written or after it is written to
a dataset. Batch mode normalizes all of the CIs at one time. You can also schedule
batch normalization to occur when users are least affected.

Step 1 Select the dataset to normalize, or configure system normalization.

See “Configuring datasets” on page 31.

Step 2 Define what classes to normalize.

See “Configuring classes for normalization” on page 36.

Step 3 Add a normalization job, and define when to run it.

See “Creating a normalization job and schedule” on page 47.


After this initial loading of CIs, you can then use the inline or continuous mode to
update CIs that exist in BMC Atrium CMDB but are not normalized.

BMC Remedy ITSM and category normalization


To normalize products for BMC Remedy IT Service Management (BMC Remedy
ITSM) versions earlier than version 7.1, you must specify the CTI Only value for
the normalization type option so that only the categories are normalized and not
the product name.
Use the following guidelines for configuring BMC Remedy ITSM normalization:

Step 1 Select the dataset to normalize for BMC Remedy ITSM.

See “Configuring datasets” on page 31.

Step 2 Create aliases for product and manufacturer names so that the product can be
found in the Product Catalog.

See “Mapping product and manufacturer aliases” on page 40.

Step 3 Set the Normalization type option to CTI Only to normalize only product
categorization.

Step 4 In the BMC Atrium Product Catalog, create a Product Catalog Mapping Alias so
that, if a product is not in the Product Catalog, an entry can be created.

Step 5 From the Catalog Mapping window, create product catalog mapping entries so
that CIs are updated with mapped categorization.

See “Mapping product categorization aliases” on page 41.

Chapter 1 Normalizing data 25


BMC Atrium CMDB 7.6.04

Example normalization scenario


The following common scenario is used to explain normalization features and
processes throughout the normalization documentation. This scenario builds on
the Calbro Services scenario in BMC Atrium Core 7.6.04 Concepts and Planning
Guide.
Calbro has four datasets that must be configured for normalization, each
corresponding to a different data provider, as illustrated in Figure 1-3 on page 26.
To design the Calbro normalization processes, the following Calbro staff are
required:
! Data modeler—To answer questions about data requirements and the data
model, including Calbro customizations and extensions.
! Software distribution engineer—To decide what software is distributed
electronically and to decide what types of discovered products should be added
to the Product Catalog.
! Integration specialist—To lead and design integrations and to make sure
integration architecture can be maintained and work with Calbro’s architecture.
! Process analyst—To make sure that the normalization processes and decisions
support Calbro’s business needs.

Figure 1-3: Calbro’s data providers

BMC
Data for servers, desktops,
Conifguration
laptops, and mobile devices
Discovery

BMC.IMPORT.CONFIG

BMC Atrium
Discovery and Data for network and
Dependency non-e-commerce applications
Mapping

CALBRO.IMPORT.TOPO

Calbro Calbro API and applications


Discovery for e-commerce

CALBRO.DISC

Export of Calbro
Calbro-developed
applications
applications from IT
(via AIE)

CALBRO.APPS

26 Normalization and Reconciliation Guide


Overview of normalization

Calbro’s staff has analyzed the company’s needs and answered the normalization
questions to design its normalization processes.
Table 1-2: Calbro’s normalization analysis
Question Calbro’s answer
Must more than one dataset be Yes—Calbro has four different datasets that must
reconciled to the BMC.ASSET be set up for normalization before they can be
production database? reconciled and added to BMC.ASSET.
Should discovered products that do Yes—Any instances in CALBRO.APPS should be
not exist in the Product Catalog be used to create Product Catalog entries if they do
added automatically? not exist. CALBRO.APPS contains a list of all the
applications that Calbro has developed. Calbro
trusts this data because they created it manually
and consistently.
Should data be normalized as it is Inline—CALBRO.APPS is a list of Calbro
written to the datasets (inline), or as it applications which is updated with new versions
is written to BMC Atrium CMDB and patches. Because this data source have a high
(continuous)? volume of changes, Calbro sets this dataset to
inline normalization so that, if needed, new
Product Catalog entries can be created from these
instances.
Continuous—Calbro initially normalizes the
CALBRO.DISC with a batch job and then sets to
continuous normalization after 20 modifications
or creations. Because of the importance of
maintaining their e-commerce services, Calbro
wants updated and new instances to be
normalized and reconciled as quickly as possible
without a significant impact on other users and
processes.
Batch—Because CALBRO.IMPORT.TOPO and
CALBRO.IMPORT.CONFIG have a large number
of changes, Calbro schedules normalization of
these instances during off hours.
Do any datasets not require No—CALBRO.APPS contains a list of all the
normalization? applications that Calbro has developed. Calbro
trusts this data because they created it manually
and consistently. Calbro uses this dataset to create
Product Catalog entries.

Chapter 1 Normalizing data 27


BMC Atrium CMDB 7.6.04

Preparing for normalization


Before you can set up and run normalization, you must complete the following
tasks:
! Assign Normalization Engine permissions (See page 28)
! Prepare the Product Catalog. (See page 28)

Assigning Normalization Engine permissions


To configure and use the Normalization Engine, you must have the appropriate
assigned permission roles.
For more information assigning BMC Atrium Core permissions, see BMC Atrium
CMDB 7.6.04 Administrator's Guide.
Table 1-3: Normalization Engine permission roles
Name Applications Users with this role can
NE User NEApplication ! Start and cancel jobs.
! View jobs, the Job History, class configurations,
system configurations, Product Catalog alias
mapping, and dataset configurations.
NE Administrator NEApplication ! Start and cancel jobs.
! View, create, and modify jobs.
! Delete Job History data.
! Administer class configurations, system
configurations, Product Catalog alias mapping,
and dataset configurations.

Preparing the Product Catalog and planning classes for normalization


Before you can normalize CIs, you must configure the Product Catalog:

Step 1 Create Product Catalog entries for the class instances to be normalized.

! The Normalization Engine normalizes any BMC.CORE:BMC_BaseElement child


class.
! For classes that do not have Product Catalog entries, you can configure the
product categorization aliases to normalize CTI values.
You can add products for other classes to the Product Catalog in the following
ways:
! Import data from external files—You can import data from an external file or
from staging forms using BMC Remedy User. For more information, see
“Importing Product Catalog data” in the BMC Atrium Core 7.6.04 Product Catalog
and DML Guide.

28 Normalization and Reconciliation Guide


Preparing for normalization

! Use the Normalization Engine to create entries—You can configure the


Normalization Engine to create Product Catalog entries from the dataset. You
must configure this option before normalizing the dataset.
! Create entries manually—From the Product Catalog Console, you can create
new products, versions, and patches and define their status options.
Before you use the Normalization Engine to create Product Catalog entries,
consider the following information to avoid creating duplicate entries for a
product in the Product Catalog and to avoid adding unwanted Product Catalog
entries.
! You can only set this option to create entries for a dataset, not for specific classes
or instances in a dataset.
! To select only specific classes or CIs to use to create Product Catalog entries,
create a dataset containing only those CIs.
! Verify that the CIs in the dataset contain values that you want to apply to all
discovered or imported instances of those classes and products. For example,
make sure that all CIs for a specific product have the same product name,
manufacturer, model, and categorization values.
For more information about creating Product Catalog entries, see “Configuring
datasets” on page 31.

Step 2 Approve the Product Catalog entries to define the Definitive Media Library (DML)
and Definitive Hardware Library (DHL).

For more information about these steps, see theBMC Atrium Core 7.6.04 Product
Catalog and DML Guide.

Step 3 From the Product Catalog Console, use the NE:ProductNameAlias form to create
product and manufacturer aliases.

In BMC Atrium Product Catalog, you can create an alias for the Model or
ManufacturerName attribute for a discovered or imported CI so that the
Normalization Engine can find the product in the Product Catalog and normalize
the CI. In the normalization process, the Normalization Engine always checks for
a Model or ManufacturerName alias. If the CI has a Model or ManufacturerName
alias, the Normalization Engine replaces the CI’s Model or ManufacturerName
attribute value with the alias and searches for an entry in the Product Catalog.
For more information, see BMC Atrium Core 7.6.04 Product Catalog and DML Guide.

Step 4 For software license management, set the Market Version field for each product.

For more information, see BMC Atrium Core 7.6.04 Product Catalog and DML Guide.

Chapter 1 Normalizing data 29


BMC Atrium CMDB 7.6.04

Step 5 Create product categorization aliases for the following reasons.

You can create these aliases from the Catalog Mapping in the Normalization
console. For more information, see “Mapping product categorization aliases” on
page 41.

Step 6 After setting up normalization, run the Normalization Simulation utility to


preview normalization results.

Typical normalization setup


To normalize instances, follow the process outlined in the following steps.

Figure 1-4: Overview of normalization setup

Each step represents a procedure. In the sections that relate to this process, the
graphic is repeated, and the related step is highlighted.
Best Practice
In a server group environment, you do not need to duplicate normalization
configurations for primary and secondary servers, which use the same database.
The normalization configurations are saved to the database. The Normalization
Engine runs on every server in the group but the normalization jobs are scheduled
only on the primary server.
Do not run a batch normalization job simultaneously on the same dataset on the
primary and secondary servers to avoid possible errors.

! To set up normalization
Step 1 Configure each dataset for normalization. See “Configuring datasets” on page 31.

Step 2 Add any custom classes that you have created. See “Configuring classes for
normalization” on page 36.

Step 3 Simulate normalization for selected datasets, and fix any errors. See “Simulating
normalization” on page 37.

Step 4 Select the mode (inline, continuous, and batch) for when to normalize datasets. See
“Normalization modes” on page 42.

Step 5 View normalization job history and details. See “Monitoring normalization jobs”
on page 48.

30 Normalization and Reconciliation Guide


Typical normalization setup

Configuring datasets

A dataset is a collection of CIs and relationships, and each data provider has its
own dataset. You can configure the default normalization settings that are applied
as datasets are created.
You also have the option of applying these defaults to datasets that are already
configured.
These settings include the option of full or incremental normalization. All of the
other default settings can also be defined for each dataset.
You can configure normalization in the following ways:
! Configure default normalization of CIs across all datasets.
These settings are the default normalization settings for all datasets, but these
settings do not override the individual dataset configurations unless you select
Apply Default Settings to all Datasets.
! Customize normalization for each dataset.
The dataset normalization settings override the system defaults.

NOTE
By default, all datasets have Normalization Type set to CTI Only and the DML
Based Instance Normalization, Relation Name Normalization, and Impact
Normalization features enabled. You must create a job to normalize the datasets.
To normalize when CIs are created, enable inline or continuous normalization for
a dataset. Also, create a batch job to normalize the CIs that were created when the
normalization plug-in is stopped, such as during upgrades.

In the Calbro example, the system configuration is set first to the most common
values:
! Both product names and categories are normalized.
! Products are normalized as the datasets are updated (inline mode).
! Products with errors are not updated.
! Discovered products that are not found in the Product Catalog are not created.
Then, the Calbro staff configures the individual datasets that need to be configured
differently from the system configuration. For example, for CFS.APPS, any new
products found there are created in the Product Catalog.

Chapter 1 Normalizing data 31


BMC Atrium CMDB 7.6.04

Table 1-4 describes the settings that you can configure for normalization, either for
individual datasets or as a system default.
Table 1-4: Dataset and system normalization settings
Setting Value Description
Normalization CTI Only (Default) Only the categories for a CI are
Type normalized, but the CI Model and
ManufacturerName attributes are not. For more
information about using CTI Only, see “BMC
Remedy ITSM and category normalization” on
page 25.
If this option is selected, you can map the
categorization of the provider’s data to the
Product Catalog categorization. For more
information, see “Exporting and importing
normalization configurations” on page 52. If there
is no mapping, the Normalization Engine tries to
create an entry with the categories that the data
provider supplies.
Name & CTI The product name, attributes, and categories are
Lookup normalized.
Disabled (System Configuration only) Normalization is
turned off.
Inline Deselected (Default) Normalize data in the continuous mode
Normalization (if enabled) or, if defined, as scheduled.
For more information, see “Configuring inline
normalization” on page 45.
Selected Normalize data as it is created or modified.
For more information, see “Normalization
modes” on page 42.
Allow Unapproved Selected (Default) If the product is unapproved in the
CI Product Catalog, the Normalization Engine
normalizes the CI and sets its
NormalizationStatus attribute to Normalized
and Not Approved.
Deselected If the product is unapproved, the Normalization
Engine does not normalize the CI or, if the Allow
new Product Catalog entry option is enabled, does
not create a Product Catalog entry.

32 Normalization and Reconciliation Guide


Typical normalization setup

Table 1-4: Dataset and system normalization settings (Continued)


Setting Value Description
Allow new Product Selected If no entry for a CI is found in the Product Catalog,
Catalog entry then a new product entry is created in the Product
Catalog, using the attributes of the discovered
product.
The created Product Catalog entry is flagged as
Approved. You can review and change the status
of these entries in the Product Catalog. See the
BMC Product Catalog and DML Guide.
See “Preparing the Product Catalog and planning
classes for normalization” on page 28.
Deselected (Default) If no entry for a CI is found in the
Product Catalog, no entry is created in the Product
Catalog, and NormalizationStatus for the product
is set to Normalization Failed.
Enabled Selected (Default) Normalization is turned on for the
(Dataset dataset to run all Normalization Features enabled
Configuration only) for the dataset.
Deselected Normalization is turned off for the dataset.
Normalize All Selected All instances in datasets with normalization
Instances enabled are normalized, including instances that
(System have been previously normalized.
Configuration only) Deselected (Default) Only new instances in datasets with
normalization enabled are normalized. This is an
incremental normalization.

Chapter 1 Normalizing data 33


BMC Atrium CMDB 7.6.04

Table 1-4: Dataset and system normalization settings (Continued)


Setting Value Description
Normalization Relation Name For relationships, replaces the existing names with
Features Normalization the BMC-recommended names, based on the CI
(Dataset Feature classes in the relationship.
Configuration only) For more information, see “Normalization and
best-practice relationship names” on page 21.
Impact Sets the impact HasImpact and
Normalization ImpactDirection attributes on the relationship
Feature classes based on the defined rules.
For more information, see “Normalization and
impact relationships” on page 19.
Suite Rollup Define suites and their products and identify
Normalization instances as a suite, a suite component, or a
Feature standalone application. This allows more accurate
management of suite and individual licenses.
For more information, see “Normalization and
software license management” on page 19 and
“Configuring Suite Rollup rules” on page 59.
Version Roll product versions (the MarketVersion
Normalization attribute) to the highest version with which the
Feature licenses are associated. This provides more
accurate version information for managing
licenses.
For more information, see “Normalization and
software license management” on page 19 and
“Configuring Version Rollup rules” on page 55.
Instance-level Sets the row-level and attribute-level permissions
Permissions on CIs as you define them.
Feature For more information, see “Normalization and
instance permissions” on page 22 and “Creating
rules to set row-level permissions” on page 53.
Auto Impact Preserve (Default) Retains any manual edits that you have
Manual Edit Manual Edits made to the HasImpact and ImpactDirection
impact attributes of the relationship instances,
instead of reapplying the values that are defined
in the best-practice impact normalization rules.
For more information about the best-practice
relationship instances, see “Normalization and
impact relationships” on page 19.
Apply Rule Overwrites any manual edits that you have made
Always to the HasImpact and ImpactDirection
impact attributes of the relationship instances
with the values that are defined in the best-
practice impact normalization rules.
For more information about the best-practice
relationship instances, see “Normalization and
impact relationships” on page 19.

34 Normalization and Reconciliation Guide


Typical normalization setup

NOTE
The DML Based Instance Normalization feature is enabled for all datasets by
default and cannot be configured for individual datasets. This feature normalizes
the Model, ManufacturerName, Categorization, VersionNumber, PatchNumber,
Type, and Item attributes based on a corresponding Product Catalog entry.

! To configure dataset normalization across all datasets


1 In the Normalization console, click Edit Configuration.
2 In the System Configuration tab, expand Default Dataset Normalization
Settings.
3 Select the values for the normalization settings.
For more information about the settings and values, see Table 1-4 on page 32.
4 To apply the change to all datasets including currently configured datasets, select
Apply Default Settings to all Datasets.
5 Click Save.

! To configure normalization for individual datasets


1 In the Normalization console, click Edit Configuration.
2 In the Dataset Configuration tab, set the normalization settings for each Dataset
ID.
For more information about the settings and values, see Table 1-4 on page 32.

Chapter 1 Normalizing data 35


BMC Atrium CMDB 7.6.04

3 To enable or disable the Normalization Features, click the ... button in the
Normalization Features column.
4 Click Save.

Configuring classes for normalization

You select the classes to normalize. By default, only a subset of class attributes from
the Product Catalog can be used for normalization.
In the Mechanism List, the methods for normalizing the class attributes are
automatically selected.
! DML—Uses the Product Catalog interfaces to find normalized attributes.
! Alias Lookup—Uses the CI name and dataset ID to check the alias lookup table.

NOTE
You cannot set the class normalization for a particular normalization job or dataset
because the settings are global.

NOTE
You can configure normalization for custom classes that use
BMC.CORE:BMC_BaseElement or one of its child classes as its superclass. However,
you cannot select custom attributes for normalization: you must use the standard
normalization attributes. BMC Atrium CMDB must have completed
synchronization for the custom class, and the class status is Active.

In the CALBRO.BANKING namespace, Calbro created a new class


Calbro_ATMSystem for their ATMs, which is based on the BMC_ComputerSystem
class. To normalize instances of Calbro_ATMSystem, Calbro must add the class in
the Class Configuration tab. Also, in the Product Catalog, Calbro must create
product entries for the products and versions and must approve them as needed
so that the CIs can be normalized.

36 Normalization and Reconciliation Guide


Typical normalization setup

! To add classes for normalization


1 In the Normalization console, click Edit Configuration.
2 In the Class Configuration tab, click New.

TIP
You might need to scroll to the bottom of the table to see the New Class
Configuration Area.

3 In the New Class Configuration area, select from the Class Name list.
4 Click Save.

Simulating normalization

You can use the Normalization Simulation utility to preview normalization for a
specific dataset and class.
You can use this utility to improve the number of CIs that are normalized and the
quality of data created in the Product Catalog.
! For CIs that fail to normalize, verify and correct their Model and
ManufacturerName values.
! For new Product Catalog entries, verify that it contains the desired data.
After you execute the utility, you can see the following information:
! The total number of CIs for the specified dataset and class
! Number of CIs that failed normalization
These are CIs that would have a NormalizationStatus value of Normalized
Failed. In the output file, failed CIs can have the following status:
! Failed (Manufacturer is null)—The Manufacturer attribute is null, and the
Normalization Engine could not find a Product Catalog entry.
! Failed (Model is null)—The Model attribute is null, and the Normalization
Engine could not find a Product Catalog entry.
! Failed (No CTI values)—The Normalization Engine cannot even create the
product because the Category, Type, and Item attributes have no values.
! Number of CIs that successfully normalized
Depending on the dataset’s normalization settings, these are CIs that would
have a NormalizationStatus value of Normalized and Approved and
Normalized and Unapproved.

Chapter 1 Normalizing data 37


BMC Atrium CMDB 7.6.04

! Number of new products created in the Product Catalog


If you enabled the Allow new Product Catalog entry option, this number
represents how many new entries the Product Catalog creates from the CIs. In
the output file, new products can have the following status:
! New Product (Name)—A regular product will be created.
! New Product (CTI)—Only categorization attributes are normalized because
both Model and ManufacturerName attributes are null.
The simulation results do not include information for any CIs that would have a
NormalizationStatus value of Normalization Not Applicable, which includes CI
classes that are not configured for normalization.
Before you begin
! Configure the dataset for normalization.
! Update or add class configurations as needed for the dataset.
! Populate the dataset with representative data.
! Verify that the Product Catalog is updated and configured as required for your
business needs.

! To create a batch file for Windows


1 Create a file named nesim.bat, and open it in a text editor.
2 Add following lines:
set java_bin="%ATRIUMCORE_HOME%\BMCAtriumCoreInstallJVM\bin"
set class_path="%ATRIUMCORE_HOME%\cmdb\plugins\ne\neapi7604.jar"
set
class_path=%class_path%;"%ATRIUMCORE_HOME%\cmdb\sdk\bin\arapi7604_
build002.jar"
set
class_path=%class_path%;"%ATRIUMCORE_HOME%\cmdb\sdk\bin\cmdbapi760
4.jar"
set
class_path=%class_path%;"%ATRIUMCORE_HOME%\cmdb\plugins\ne\netools
7604.jar"
%java_bin%\java -classpath %class_path%
com.bmc.ne.tools.SimulateNormalization %*
3 Save the file.

38 Normalization and Reconciliation Guide


Typical normalization setup

! To create a shell script for UNIX® and Linux®


1 Create a file named nesim.sh, and open it in a text editor.
2 Add following lines:
ATRIUM_HOME=BMCAtriumCoreInstallationDirectory
export ATRIUM_HOME
LIBPATH=$ATRIUM_HOME/cmdb/sdk/bin
export LIBPATH
LD_LIBRARY_PATH=$ATRIUM_HOME/cmdb/sdk/bin
export LD_LIBRARY_PATH
SHLIB_PATH=$ATRIUM_HOME/cmdb/sdk/bin
export SHLIB_PATH
CLASSPATH=$ATRIUM_HOME/cmdb/plugins/ne/neapi7604.jar:$ATRIUM_HOME/
cmdb/plugins/ne/netools7604.jar:$ATRIUM_HOME/cmdb/sdk/bin/
arapi7604_build002.jar:$ATRIUM_HOME/cmdb/sdk/bin/cmdbapi7604.jar
export CLASSPATH
java -classpath $CLASSPATH com.bmc.ne.tools.SimulateNormalization
$*
3 Save the file.
4 Change the permissions to execute this file.
chmod +x nesim.sh

! To run the simulation


1 In a command window on the BMC Atrium CMDB server, change to the directory
where you saved the utility batch file or shell script.
2 Run the batch file or shell script with the following syntax:
scriptBatchFileName hostname portNumber username password datasetID
[className classID] chunksize
Example: nesim.bat w3k-labtest-vm1 1190 AndyAdmin andyPwd
Calbro.disc BMC_Product BMC_PRODUCT 200
The arguments in brackets [ ] are optional. If you specify className you must to
specify classID. If you do not specify a class, the utility simulates for all configured
classes in the dataset. If username does not have the password, then specify 0 for
password. For portNumber, specify the BMC Remedy AR System server port
number or 0 for no port number.
3 From the command window, check the simulation results.
4 Run the utility for each class in the dataset.

Chapter 1 Normalizing data 39


BMC Atrium CMDB 7.6.04

! To view the simulation results


For each simulation, the utility produces a text file with more detailed results. The
file is named className_datasetID_NESimulation.txt.
1 In the location where you ran the script or batch file, open the text file.
To import the file into a spreadsheet application, use the | character as a field
delimiter.
2 In the Status column, look for CIs marked as Failed.
Check that the Model and ManufacturerName attributes have values. The
Normalization Engine uses these attributes to find Product Catalog entries. If they
have values, you might need to create aliases. For more information, see “Mapping
product and manufacturer aliases” on page 40.
3 In the Status column, look for CIs marked as New Product.
Review the attribute values that the new product entry will have. You can modify
the CIs, or you might need to modify the Category, Type, and Item values. For
more information, see “Working with normalization modes and options” on
page 44.
After you have corrected the issues, you can set up a normalization job for the
dataset.

Setting up aliases

After simulating normalization, you can reduce failures by creating product and
manufacturer aliases or mapping product categorizations.

Mapping product and manufacturer aliases


In BMC Atrium Product Catalog, you can create an alias for the Model or
ManufacturerName attribute for a discovered or imported CI so that the
Normalization Engine can find the product in the Product Catalog and normalize
the CI.
In the normalization process, the Normalization Engine always checks for a Model
or ManufacturerName alias. If the CI has a Model or ManufacturerName alias, the
Normalization Engine replaces the CI’s Model or ManufacturerName attribute
value with the alias and searches for an entry in the Product Catalog.
For more information, see BMC Atrium Core 7.6.04 Product Catalog and DML Guide.

40 Normalization and Reconciliation Guide


Typical normalization setup

Mapping product categorization aliases


From the Product Catalog Alias Mapping form, you can map incoming CI
categorizations for a discovered or imported CI to preferred categorizations for
different reasons.
First, the product categorization aliases provide the correct categorizations either
when the CI’s Category, Type, and Item attributes have no values or when they
do not match those in the corresponding Product Catalog entry.

NOTE
To create aliases for the Model or ManufacturerName attributes, use the
Normalization Product Name Alias form in the Product Catalog, even though the
Catalog Mapping window allows you to map aliases in the Product Name and
Manufacturer Name fields. The Normalization Engine always checks the
Normalization Product Name Alias form in the first step in the normalization
process.

Unlike with the product and manufacturer aliases, the Normalization Engine does
not always check for product categorization aliases. Instead, it checks the
categorization aliases for any of the following conditions:
! If the combination of the values of Product Category, Product Type, Product
Item, Product Name, and Manufacturer/Vendor is not in the Product Catalog
data.
! If the combination of values is in the Product Catalog but is not related to the
company for whom the CI is being submitted.
For example, if you specify Desktop in the Category field in the Discovery Product
Categorization area and Hardware in the Category field in the Mapped Product
Categorization area, any incoming CI that has a value of Desktop for the Category
attribute is saved as Hardware for Category.
Second, you should also create product categorization aliases for CIs where the
Model or ManufacturerName attribute has no value. For more information, see
“Null values for product and manufacturer” on page 23.
Third, when the Allow new Product Catalog entry option is enabled, the
Normalization Engine uses the product categorization aliases to create a Product
Catalog entry when it does not find one for the CI.

! To map discovery categorization to product categorization


1 In the BMC Atrium Core Console, click Application Launcher > Applications >
Normalization.
2 In the Normalization console, click Catalog Mapping.
3 From the CI Class list, select the class for which you want to create the product
alias mapping.
4 In the Discovery Product Categorization section, select the categorization values
of discovered products for the CI class you selected.

Chapter 1 Normalizing data 41


BMC Atrium CMDB 7.6.04

5 Specify a name for the product in the Product Name field.


6 In the Mapped Product Categorization section, select the categorization values
that are applied to the discovered product when it is normalized.
7 Click Save.

Normalization modes

You can normalize using these different modes: inline, continuous, and batch.
! Inline (realtime)—CIs are normalized any time that they are created or
modified in BMC Atrium CMDB. In this mode, CIs are normalized before they
are saved in BMC Atrium CMDB. If a CI cannot be normalized, you can define
how to handle inline errors:
! Reject and do not save the CI to BMC Atrium CMDB.
! Save the CI to BMC Atrium CMDB but flag it as not normalized.
For more information, see “Configuring inline normalization” on page 45.
! Continuous—In this mode, CIs are normalized after they are saved in BMC
Atrium CMDB based on changes to the CIs, not to the dataset. When CIs are
added or changed, BMC Atrium CMDB notifies the Normalization Engine
which then checks and normalizes the modified CIs.
You must configure both of the following conditions for continuous
normalization, which starts when one of the conditions is met.
! When a specified number of creation and modification events occurs
! After a specified interval of time
For more information, see “Configuring continuous normalization” on page 45.
! Batch (scheduled)—In this mode, CIs are normalized after they are saved in
BMC Atrium CMDB based on a schedule for a dataset, unlike the Continuous
mode which is based on individual CIs. For more information, see “Initial CI
loading with batch normalization” on page 24.

IMPORTANT
When normalizing a large amount of data, use the batch mode, and schedule it to
run outside of heavy use hours to minimize the impact on users. You can use the
continuous mode for dataset updates.

Do not run more than one BMC Atrium Integration Engine, Normalization Engine,
or Reconciliation Engine job at the same time because they might query or update
the same data.

42 Normalization and Reconciliation Guide


Typical normalization setup

Batch normalization normalizes product attributes, including categories,


regardless of the normalization type setting for CIs with a status of not Normalized
and Not Approved.
You define a schedule when you create a normalization job. See “Creating a
normalization job and schedule” on page 47.
If a normalization job in batch mode is interrupted, the Normalization Engine
tracks the classes that were normalized before the interruption and resumes with
the class that was being normalized. If a class that was normalized before the
interruption has a changed or new CI, the Normalization Engine does not scan for
changes. Instead, the next job normalizes the changes.
Figure 1-5 shows an example of an interrupted normalization job. Classes 1A and
2B were completed before the interruption. Normalization resumes with class 3C,
and the normalization job is not aware of new or modified CIs in the completed
classes.

Figure 1-5: Interrupted normalization


Normalization Normalization Normalization Normalization
job 1 starts job 1 interrupted job 1 restarts job 1 completes

Class 1A Class 2B Class 2B has Class 3C


completes completes new CI completes
normalization normalization normalization

Figure 1-6 on page 44 shows the difference between inline and continuous
normalization. With inline normalization, CIs are normalized before they are
written to BMC Atrium CMDB datasets. With continuous normalization, CIs are
written to a dataset before they are normalized.
In this example, Calbro uses inline normalization on CALBRO.APPS because it is
not frequently updated. Normalizing CIs one at a time would have minimal
performance impact on users. Calbro uses continuous normalization on the
CALBRO.DISC dataset for specific reasons. First, Calbro completed a bulk
normalization with a batch job. Second, because the discovery tool typically adds
or changes few CIs in the dataset, Calbro sets this to continuous mode. Calbro staff
also sets normalization to start when 10 CIs are changed or created or when five
minutes have elapsed since the previous normalization.

Chapter 1 Normalizing data 43


BMC Atrium CMDB 7.6.04

Figure 1-6: Inline and continuous normalization

AIE exchange
Inline of Calbro
applications

CALBRO.APPS Normalization

Calbro
Continuous Discovery

CALBRO.DISC

Working with normalization modes and options


The normalization batch (scheduled) mode is enabled by default, and it can be
scheduled or started manually from the Normalization console. Inline and
Continuous modes are disabled by default. To enable them, you must enable the
system and dataset configuration options.
The normalization options listed in Table 1-1 on page 24 vary depending on the
normalization mode.The batch mode normalizes all supported attributes,
including categorization attributes, regardless of the normalization type setting.
Normalization modes
Normalization mode Off setting Everything On setting CTI Only setting
Inline Off Everything On CTI Only
Continuous Off Everything On CTI Only
Batch Everything On Everything On Everything On

44 Normalization and Reconciliation Guide


Typical normalization setup

Configuring inline normalization

Use the following procedure to select inline normalization, which does not require
creating a normalization job. Normalization for the selected dataset starts when
instances are created or modified.

! To configure inline normalization for a dataset


1 In the Normalization console, click Edit Configuration.
2 In the Dataset Configuration tab, click Inline Normalization for the desired
dataset.
To set inline as the default normalization mode for all datasets, see “Configuring
datasets” on page 31.
3 Click Save.

Configuring continuous normalization


Use the following procedure to create a normalization job and to define the
condition for starting it. The possible conditions are the following:
! When a specified number of events occurs
! After a specified interval of time
The Normalization Engine checks both conditions and, when either condition is
met, normalizes CIs saved in BMC Atrium CMDB that have been created or
modified since the previous normalization. These conditions are defined globally
and cannot be defined for specific datasets. To enable or disable continuous mode,
set it in the normalization job.
After you start a continuous job, two job runs are created:
! One job normalizes the newly created or modified CIs of the configured dataset
immediately.
! Another job continues to run and normalize the CIs as they are created based on
the event and time conditions. You can stop this job at any time from the
Normalization console.
A dataset that is configured for continuous mode can also be configured for inline
mode.

NOTE
The inline normalization mode always takes precedence over the continuous mode
or a schedule.

Chapter 1 Normalizing data 45


BMC Atrium CMDB 7.6.04

Before you begin


! If you are using the continuous mode, define the conditions. See “Configuring
continuous normalization” on page 45.
! Check that the dataset specified in the normalization job has normalization
enabled in the Dataset Configuration. By default, only CTI is normalized. See
“Configuring datasets” on page 31.

! To define continuous normalization settings


1 In the Normalization console, click Edit Configuration.
2 In the System Configuration tab, expand Continuous Mode Settings to define the
following settings.

Events Threshold The number of events that must occur continuous


normalization starts. An event is when a CI is
updated or created.
The default is 10.
Time Threshold (Sec) The number of seconds that define the interval
when continuous normalization starts.
The default is 180.

3 Click Save and then Close.

! To create a continuous normalization job


1 In the Normalization console, click Create Job.
2 Enter a unique name for the job.
3 From the Dataset ID list, select the dataset to normalize.
4 Click Continuous Job.
! Enabled—Normalize CI instances in BMC Atrium CMDB with one of the
following statuses based on time or on defined number of events.
! Normalization Failed
! Modified After Last Normalization
! Not Applicable for Normalization
! Not Normalized
To define the time and event settings, see “Configuring continuous
normalization” on page 45.
! Disabled—Uses the system normalization mode. See “Configuring datasets” on
page 31.

46 Normalization and Reconciliation Guide


Typical normalization setup

5 Click Save.
6 In the Normalization console, select the continuous job, and click Start Job.
When started, a continuous job continues to run until you stop the job.

Creating a normalization job and schedule


To set up batch normalization, you must create a normalization job. For more
information about batch normalization, see “Normalization modes” on page 42.
Best practice
Do not run more than one BMC Atrium Integration Engine, Normalization Engine,
or Reconciliation Engine job at the same time because they might query or update
the same data. Avoid overlapping the importing, normalizing, and reconciling of
CIs. Reconciling related CIs, such as a system and its components, can cause errors
if all the related CIs and relationships do not exist when reconciliation starts.
Before you begin
Check that the dataset specified in the normalization job has normalization
enabled in the Dataset Configuration. By default, only CTI is normalized. See
“Configuring datasets” on page 31.

! To create a batch normalization job


1 In the Normalization console, click Create Job.
2 Enter a unique name for the job.
3 From the Dataset ID list, select the dataset to normalize.
4 Specify values for the following settings.

Start Time Select a time of day that the job starts.


Recurrence Type Select the interval at which the job executes.
Recurrence Details For Monthly and Weekly intervals, select the days
of the week or of the month. You can select more
than one day.

5 Click Save.
After you create a batch job, you do not need to start the job. It runs automatically
at the scheduled time. However, when you need a job to run immediately, you can
select the job in Normalization console and click Start Job.

Chapter 1 Normalizing data 47


BMC Atrium CMDB 7.6.04

Monitoring normalization jobs

The History tab displays the job run information for batch and continuous
normalization.
You can also display jobs with a specific status or jobs that executed within a range
of dates.
! Name—The name assigned to the job when it was created. You can click the
name of a job to view all of its past and current executions. For each job run, you
can view its details, including processed CIs and classes, logging information,
and the reason for an aborted run.
! Status—One of the following states:
! Started—The job is currently in progress.
! Completed—The job finished successfully.
! Failed—The job could not finish and error messages were logged.
! Start time—Job start time.
! End time—Job end time.
You can expand each job history entry to view its details.
! Job Run ID
! Status
! Start time
! End time
! Is full run
! Reason for abort
! Number of classes processed
! Total number of classes
! Total number of CI processed
! Current class being processed
! Total number of CIs processed in current class
! Total number of CIs in current class
! Log file name

48 Normalization and Reconciliation Guide


Optional normalization tasks

Optional normalization tasks


You can configure system parameters for the Normalization Engine to improve
performance and to configure logging information.
! “Configuring RPC ports and threads” on page 49
! “Configuring logging” on page 50
! “Disabling normalization for all datasets” on page 52
! “Exporting and importing normalization configurations” on page 52
! “Creating rules to set row-level permissions” on page 53
! “Configuring Version Rollup rules” on page 55
! “Configuring Suite Rollup rules” on page 59

Configuring RPC ports and threads


Because the Normalization Engine is multithreaded, you can configure it to
improve performance.
The number of threads available to the Normalization Engine is determined by
settings for the BMC Remedy AR System server where it is installed. The
Normalization Engine maintains a pool of connections to the BMC Remedy
AR System server so that it can reuse the existing connections.

! To set RPC ports and threads


1 In the Normalization console, click Edit Configuration.
2 In the System Configuration tab, expand RPC Queue to define the following
parameters.

AR RPC Queue RPC queue for BMC Remedy AR System API calls
back to BMC Remedy AR System.
Select from any of the possible values: 390600,
390621-390634, 390636-390669, and 390680-390694.
The default is 0.
CMDB RPC Queue RPC queue for BMC Atrium CMDB API calls back
to BMC Remedy AR System server.
The possible values are 390698 or 390699. The
default is 0.

Chapter 1 Normalizing data 49


BMC Atrium CMDB 7.6.04

3 Expand Threads and Connections to define the following parameters.

Threads in Batch Pool Maximum number of threads in the thread pool for
batch jobs.
The Normalization Engine checks whether batch
jobs need to be started. If so, a new thread is
spawned from the batch normalization thread pool
for normalization
If a batch job is normalizing a dataset and a new job
requests to run the batch for that dataset again, that
request is aborted.
The default is 4.
Threads in Continuous Maximum number of threads in the thread pool for
Pool continuous mode.
The continuous threads check whether the
continuous normalization needs to be started. If so,
a new thread is spawned from the continuous
normalization thread pool. When the threads in the
pool have been exhausted, the Normalization
Engine queues any further requests to wait for an
available thread
The default is 4.

4 Click Save and then Close.

Configuring logging
The Normalization Engine provides logging information in different areas.
All types have different contexts and can occur simultaneously. For example, BMC
Atrium CMDB has three datasets configured for normalization. Dataset A is
normalized once a week as a batch job so its logging information is saved to
NE.datasetA.nnn.log. DatasetB is normalized in continuous mode, and its
logging data is saved to necont.log.
! Batch normalization jobs—The log file is automatically generated as
AtriumCore_install\cmdb\server\logs\neJob.dataSetId.jobID.log. It
captures information for batch and inline normalization jobs. The job ID is
available in the Normalization console. By default, the logging level for
normalization is set to Information.
! Continuous normalization—The log file
AtriumCore_install\cmdb\server\logs\neContinuous.log is
automatically generated to capture information for continuous normalization.
By default, the logging level for continuous normalization is set to Warning.

50 Normalization and Reconciliation Guide


Optional normalization tasks

! Normalization API—The default log file name and location is


AtriumCore_install\cmdb\server\logs\neapi.log. By default, the logging
level for normalization API functions is set to Information. If discovery products
use normalization APIs, use this log file to diagnose problems. Dataset C is
configured for a weekly batch normalization using the Normalization API, so it
has more detailed logging information about the API events in neapi.log. This
log file contains information for inline normalization.
Table 1-5 describes the logging levels.
Table 1-5: Log levels
Level Description
Off Logging is disabled.
Error This is the least verbose mode, logging only the
names of events that have errors.
Warning This is a less verbose mode, logging the names of
events that have warnings.
Information This mode produces the names of events and calls
and their results.
This is the default level for all types of logging.
Debug This is the most verbose mode and produces input
and output values for each event and call.

! To configure logging
1 In the Normalization console, click Edit Configuration.
2 In the System Configuration tab, for each type of logging (Batch, API, and
Continuous), modify the following settings:

Log file location This defines the path on the server where the log
file is saved.
Maximum size for the log When the log file reaches the file size limit, it is
file renamed and a new log file is created. The older
files are not automatically deleted. For example, if
the log file is named neJob.BMC.ASSET.0001.log,
the older files are named
neJob.BMC.ASSET.0001.log.1 and
neJob.BMC.ASSET.0001.log.2.
Log level This option defines what type of information is
saved in the log file. For more information about
the levels, see Table 1-5 on page 51.

3 Click Save and then Close.


The modified settings are not applied to current normalization jobs, but future jobs
use the modified values.

Chapter 1 Normalizing data 51


BMC Atrium CMDB 7.6.04

Disabling normalization for all datasets


You can disable normalization by default for all datasets.
For each dataset, you can enable normalization. See “Configuring datasets” on
page 31.

! To disable normalization globally


1 In the Normalization console, click Edit Configuration.
2 In the System Configuration tab for Normalization Type, select Disabled.
3 To apply the change to all datasets including currently configured datasets, select
Apply Default Settings to all Datasets.
4 Click Save.

Exporting and importing normalization configurations


When migrating (for example, from a development to production environment),
you can export and import the following normalization settings:
! Dataset normalization settings
! BMC Atrium CMDB class settings
! Job schedules
! Product Catalog alias mapping
The settings for Normalization System Configuration are not exported, including
logging, RPC Queue, and Threads and Connections settings.

NOTE
Do not save the file using Microsoft Notepad because it does not save the carriage
returns and line feeds (CR+LF) properly. Use a plain text editor that retains
CR+LF. Otherwise, importing the definitions fails.

The normalization configuration is saved as XML to your computer’s clipboard,


which you can then paste into a file.
Table 1-6: Import options for duplicate entries
import option Description
Discard Duplicate Entries Any configuration settings in the imported data
that match existing settings are not imported. All
other imported settings overwrite existing ones.
If settings are the same in the imported and
existing configurations, the existing settings are
used.
Replace Duplicate Entries If settings are the same in the imported and
existing configurations, the imported settings are
used.

52 Normalization and Reconciliation Guide


Optional normalization tasks

! To export settings
1 In the Normalization console, click Export Configuration.
2 In Select Export Options, click options to exclude or include in the XML.
The XML is automatically generated.
3 Click Save to copy the XML configuration information to your system clipboard.
4 Open or create a file in a text editor, and paste the copied XML data.

! To import settings
1 From a saved file or from the Export Normalization Configuration dialog box,
copy the XML configuration data.
2 In the Normalization console, click Import Configuration.
3 In XML input for Import, paste the XML data.
4 Click Import.
5 When the import message appears, click Close.

Creating rules to set row-level permissions


Use Row Level Security rules to set the instance permissions.
For more information, see “Normalization and instance permissions” on page 22.
Before You Begin
In the Dataset Configuration, you must enable the Instance-Level Permissions
feature so that the Normalization Engine can apply the row-level permission rules
to the selected datasets. For more information, see “Configuring datasets” on
page 31.

Chapter 1 Normalizing data 53


BMC Atrium CMDB 7.6.04

! To create rules for row-level permissions


1 In the Normalization console, click Normalization Features.
2 In the Row Level Security tab, click Create New Rule.

3 In the Row Level Security Rule dialog box, configure the following parameters.
! Active—Click to activate the rule so that the Normalization Engine can apply
the rule on datasets.
! Class Type—Select whether rule applies to CIs or Relationships. For
relationships, click Details to create the required qualifications.
In the Relationship Details, configure the following parameters.
! Source Class—Select the parent class in the relationship.
! Destination Class—Select the child class in the relationship.
! Qualifier—Use BMC Remedy AR System qualifications to define the CIs in
the source or destination class that the rule applies to.
! Class Name—Select the class to create a rule for.
! Rule Name—Enter a descriptive name for the rule.
! Precedence—Enter a value to determine the rule’s execution order. The value
can be 0 to 1000, inclusive, with higher numbers determining a higher priority.
If more than one rule applies to an instance, the Normalization Engine applies
the rules sequentially from the highest precedence value to the lowest.

54 Normalization and Reconciliation Guide


Optional normalization tasks

! Qualifier—Use BMC Remedy AR System qualifications to define what CIs or


relationships the rule applies to.

4 In the Row Permission table, for each group, click to the View and Change check
boxes enable or disable read and write permissions.
5 Click OK.
The rule is available for normalization.

Configuring Version Rollup rules


Use Version Rollup rules to define a value to assign to the MarketVersion
attribute and a BMC Remedy AR System qualification to select the instances that
are assigned the new value. The purpose is to allow you to normalize multiple
MarketVersion strings to a common value.
You can configure whether a Version Rollup rule or the Product Catalog entry has
priority in normalizing the MarketVersion value. By default, the Product Catalog
has priority over the Version Rollup rules. In this case, the Normalization Engine
checks the applicable and activated Version Rollup rules only if the MarketVersion
value is not set in the Product Catalog. For information about assigning higher
priority to the Version Rollup rules, see “To assign Version Rollup rules a higher
priority than the Product Catalog” on page 59

Chapter 1 Normalizing data 55


BMC Atrium CMDB 7.6.04

Although the Normalization Engine uses the Market Version field from the
Product Catalog to update the CI’s MarketVersion attribute, the Version Rollup
rules are useful for several reasons:
! If a CI has no corresponding Product Catalog entry, then the Market Version
value is used if the Allow new Product Catalog entry option is enabled. For
example, instead of creating a product with the version 5.2.013.1, the
Normalization Engine uses 5.2 as defined in a rule.
! If a CI has a corresponding Product Catalog entry, the product might not have
a Market Version value.
For example, Calbro Services has multiple service packs and versions for Microsoft
Excel: 11.0.5614.0, 11.0.6355.0, 11.0.7969.0, and 11.0.8173.0. However, Calbro
Services wants to track all of these products with a MarketVersion of 2003. To do
this, Andy Admin creates the following rule in the Version Rollup tab of the
Configuration Editor:
Name=" Microsoft Excel" AND ManufacturerName="Microsoft Corporation" AND
VersionNumber=11.0.%
By default, the Version Rollup feature is not enabled for datasets. If you enable the
Version Normalization feature for an individual dataset, all active Version Rollup
rules are checked. You cannot select particular rules to apply to individual
datasets. The MarketVersion value for a Product Catalog entry takes precedence
over Version Rollup rules.
The Normalization Engine has Version Rollup rules for Microsoft, Oracle, and
Adobe products. You must create rules for other products. Also, if the
Normalization Engine finds no specific rule for a product, it uses a default rule to
set the MarketVersion to use the VersionNumber value.

56 Normalization and Reconciliation Guide


Optional normalization tasks

! To create a Version Rollup rule


1 In the Normalization console, click Normalization Features.
2 In the Version Rollup tab, click Create New Rule.

3 In the New Rule for Version Rollup dialog box, configure the following
parameters.
! Active—Select Yes to activate the rule so that the Normalization Engine applies
the rule on datasets.
! Rule Name—Define a descriptive name for the rule.
! Class Name—Select the name of the class for which the qualification will return
instances.
! Precedence—Enter a value to determine the rule’s execution order. The value
can be 0 to 1000, inclusive, with higher numbers determining a higher priority.
If more than one rule applies to an instance, the Normalization Engine applies
the rules sequentially from the highest precedence value to the lowest.
! Qualifier—Type your qualification or click Qualification Builder to build the
qualification interactively.
For example, Andy Admin specifies the following qualification to create a
Version Rollup rule for instances of Microsoft Excel version 11.0.xx:
(‘Name’="Microsoft Excel" AND ‘ManufacturerName’="Microsoft
Corporation") AND (‘VersionNumber’LIKE 11.0.%)
! Manufacturer Name—Specify a string to apply to the ManufacturerName
attribute.
! Product Name —Specify a string to apply to the Model attribute.

Chapter 1 Normalizing data 57


BMC Atrium CMDB 7.6.04

! Market Version—Specify a value to apply to the MarketVersion attribute of the


instances that match your qualification. You can specify either an exact value,
such as 2003, or an expression that generates the Market Version value.
The following are a few examples of the expressions that you can specify in the
Market Version field:
! MAJOR($VersionNumber$)—This expression extracts the major version from
the VersionNumber attribute of the qualified instances and applies that value
to the MarketVersion attribute. For example, if the VersionNumber attribute
value is 11.5 or 11.7, this expression populates 11 as the value of the
MarketVersion attribute.
! ($VersionNumber$)—This expression applies the VersionNumber attribute
value of the qualified instances to the MarketVersion attribute. For example,
if the VersionNumber attribute value is 10.20.01, this expression populates
10.20.01 as the value of the the MarketVersion attribute.

4 Click OK.

! To enable or disable version rollup for a dataset


1 In the Normalization console, click Edit Configuration.
2 In the Normalization Features column on the Dataset Configuration tab, click the
... button.
3 In the Configure Normalization Features dialog box, click the check box to enable
or disable Version Normalization feature.

NOTE
Only rules that are active are executed.

58 Normalization and Reconciliation Guide


Optional normalization tasks

4 Click OK.
5 In the Configuration Editor, click Save.

! To assign Version Rollup rules a higher priority than the Product Catalog
1 In the AtriumCore_install\cmdb\plugins\ne\ directory on the BMC Atrium
Core server, open the com_bmc_ne_feature_VersionRollupFeature file in a text
editor.
2 Change the RulePriority property to True.
3 Save the file.
4 Restart the BMC Remedy AR System server.
The MarketVersion value in the Version Rollup rules take precedence over the
value in the Product Catalog.

Configuring Suite Rollup rules


Use Suite Rollup rules to create a new suite in the Product Catalog, to set the
products that are members of a suite, and to set the ProductType attribute for
instances:
! If the Normalization Engine identifies an instance as part of a suite, it sets that
CI’s ProductType attribute to Component.
! If the Normalization Engine identifies an instance as a suite, it sets that CI’s
ProductType attribute to Composite Product.
The instances for which the ProductType attribute is not set to Composite Product
or Component are considered to be standalone products.
The Normalization Engine includes example Suite Rollup rules for Microsoft and
Adobe products. You must create rules for other suites.

NOTE
You cannot define composite suites that contain other suites.

You can use Suite Rollup with batch and continuous normalization jobs: it does not
work with inline normalization.

NOTE
If you enable the continuous normalization mode and then create a new Suite
Rollup rule, that rule is applied only to new or updated product CIs related to the
systems that are pushed to BMC Atrium CMDB. To apply the new Suite Rollup
rule to the previously normalized data, you must rerun the continuous
normalization job with the Normalize All Instances option selected.

By default, the Suite Rollup feature is not enabled for datasets. If you enable the
Suite Rollup Normalization Feature option for an individual dataset, the
Normalization Engine checks all active Suite Rollup rules. You cannot select
particular rules to apply to individual datasets.

Chapter 1 Normalizing data 59


BMC Atrium CMDB 7.6.04

NOTE
Suite Rollup rules do not run if the MarketVersion, Product, and Manufacturer
attributes are not normalized.

When you select products as part of a suite, the suite rule applies only if all the
required components are found with a relationship to the same system. If they are
not, the rule does not apply.
For example, Calbro Services must manage its licenses for a suite of graphic and
web tools called Cre8ive Design, which includes the following products:
! Cre8 HTML
! Cre8 Studio
! Cre8 Photo
! Anim8 Studio
Andy Admin first creates the Product Catalog entries for these products, then
creates a company entry for Cre8ive Solutions in the Product Catalog, and finally
creates a new suite in the Suite Rollup tab:
! Suite Name: Cre8ive Design
! Manufacturer: Cre8ive Solutions
! Market Version: 2010
! Tier 1: Software
! Product List: Cre8 HTML, Cre8 Studio, Cre8 Photo (all required)
! Precedence: 50
! Active: Yes
When the datasets are normalized with the Suite Rollup feature enabled,
installations of the Cre8ive Design suite are identified, and Calbro Services can
accurately track their software licenses. The rule is not applied if any one of the
products defined for the Cre8ive Design suite does not exist.
Best Practices
! If you have created the Suite Rollup rules, you can enable the Version Rollup
Normalization and Suite Rollup Normalization features and create one batch
job to normalize the CI instances. However, if you have not yet created the Suite
Rollup rules, you can create one batch job to normalize the Name,
ManufacturerName, and MarketVersion attributes and to apply the Suite
Rollup rules but you need to run the batch job twice. During the first run, the job
normalizes the instances; during the second run, the job applies the Suite Rollup
rules. Before you run the batch job for the second time, you must enable the
Normalize all Instances option.
! BMC recommends that you create and enable the Suite Rollup rules based on
the Product Catalog data before you enable the continuous normalization mode.

60 Normalization and Reconciliation Guide


Optional normalization tasks

Before You Begin


! Normalize the Name, ManufacturerName, and MarketVersion attributes using
the Version Normalization Feature. The DML Based Instance Normalization
feature is enabled by default for all datasets. The Suite Rollup rules apply only
to normalized instances.
! Know what values to use for the suite name, manufacturer, market version,
category, type, and item.
! Products must already exist in the Product Catalog. You cannot define new
products in the Suite Rollup rule.

! To create a Suite Rollup rule


1 In the Normalization console, click Normalization Features.
2 In the Suite Rollup tab, click Create New Rule.

3 In the Suite Information screen, define the suite to create in the Product Catalog,
and click Next.
! Suite Name—Enter the name of the suite to create in Product Catalog.
! Manufacturer—Select from a list of manufacturers that are defined in the
Product Catalog. If needed, you can create a new company in the Product
Catalog. For more information, see BMC Atrium Core 7.6.04 Product Catalog and
DML Guide.
! Market Version—Select from a list of manufacturers that are defined in the
Product Catalog. If needed, you can create a Market Version by typing the value.
! Model/Version—Enter the VersionNumber attribute value for the suite.
! Tier 1 (Category)—Enter the Category attribute value for the suite.

Chapter 1 Normalizing data 61


BMC Atrium CMDB 7.6.04

! Tier 2 (Type)—Enter the Type attribute value for the suite.


! Tier 3 (Item)—Enter the Item attribute value for the suite.

4 In the Product List screen, select the products to include in the suite, and click
Next.
a Search for products by the following methods. You can include the % wildcard.
! by product name—Click Product, and enter a value for Name.
! by manufacturer and version—Click Product, and enter values for
Manufacturer and Version.
! by products in existing suites—Click Suite, and enter a suite name for Search.

NOTE
Searches are case sensitive.

b To add a product to the suite, select it from the Product Catalog list, and click
the > button.
c To designate a required product in the suite, in the Product List, click the Reqd
check box.

62 Normalization and Reconciliation Guide


Optional normalization tasks

5 In the Suite Summary screen, review the suite definition and set the following
options, and click Next.
! Active—Click to activate the rule so that the Normalization Engine applies the
rule on datasets.
! Precedence—Enter a value to determine the rule’s execution order. The value
can be 0 to 1000, inclusive, with higher numbers determining a higher priority.
If more than one rule applies to an instance, the Normalization Engine applies
the rules sequentially from the highest precedence value to the lowest.
The Create New Suite Wizard adds a new suite in the Product Catalog with the
defined Suite Name, Manufacturer, Version and Product List information. It also
creates a NE Suite Rule with the give Suite Id, Active and Precedence values.
6 In the Finish screen, review for errors.
! If the wizard successfully creates the new suite, click Finish.
! If the wizard encountered errors, click Back to review and make changes.
The new suite appears in the Current Suites list of Version Rollup tab.

! To enable or disable suite rollup for a dataset


1 In the Normalization console, click Edit Configuration.
2 In the Normalization Features column on the Dataset Configuration tab, click the
... button.
3 In the Configure Normalization Features dialog box, click the check box to enable
or disable Suite Normalization feature.

NOTE
Only rules that are active are executed.

4 Click OK.
5 In the Configuration Editor, click Save.

Using the Suite Rollup feature to identify suites that are


uninstalled or upgraded
If you upgrade a suite to a different version or edition or uninstall a required suite
component on a system, the Suite Rollup feature identifies the change and sets the
appropriate values for the ProductType attribute.
Identifying suites that are uninstalled on a system
If you uninstall a product from a system, the discovery tool sets the value of the
MarkAsDeleted attribute of that product to “Yes”. If the product that you have
uninstalled is defined as a required component of a suite, the Suite Rollup feature
sets the ProductType attribute of that suite and the other products that are part of
the suite to Standard Product.

Chapter 1 Normalizing data 63


BMC Atrium CMDB 7.6.04

For example, Calbro Services creates a Suite Rollup rule in which the following
products are defined as required components of the Cre8ive Design suite:
! Cre8 HTML
! Cre8 Studio
! Cre8 Photo
If you uninstall Cre8 HTML from a system, the discovery tool sets the
ProductType attribute for that Cre8 HTML product CI instance to Standard
Product. When the discovered data is loaded into BMC Atrium CMDB, the Suite
Rollup feature sets the ProductType attribute of the Cre8ive Design suite CI
instances and the Cre8 Studio and Cre8 Photo product CI instances to Standard
Product.
Identifying suites that are upgraded on a system
If you upgrade a suite on a system to a different version or edition, you must
! create a new suite rule for the upgraded version or edition of the suite
! set the precedence of the suite rule for the upgraded version or edition as higher
than the precedence of suite rule for the original version or edition
When the discovery tool loads the system with the upgraded suite components
into BMC Atrium CMDB, the Suite Rollup feature initially applies the suite rules
that have a higher precedence. The Normalization Engine creates a new suite CI
for the upgraded version or edition and marks the component products as part of
the upgraded suite. When the suite rule for the original version is applied, the
value of the ProductType attribute of that suite CI is set to Standard Product.
For example, Calbro Services upgrades Microsoft Office 2007 Standard Edition on
the systems in the production environment to Microsoft Office 2007 Professional
Edition. Andy Admin creates a new suite rule for Microsoft Office 2007
Professional Edition and adds the Microsoft Outlook product as a required
component along with the Microsoft Word, Microsoft Excel, and Microsoft
PowerPoint products. Andy Admin also sets the precedence for the Microsoft
Office 2007 Professional Edition as higher than the Microsoft Office 2007 Standard
Edition.
When the system CIs on which the upgraded Microsoft Office 2007 Professional
suite is installed are loaded into BMC Atrium CMDB, the new suite rule marks the
Microsoft Outlook, Microsoft Word, Microsoft Excel, and Microsoft PowerPoint as
components of the Microsoft Office 2007 Professional Edition and creates a new
Microsoft Office 2007 Professional Edition suite CI. The Normalization Engine also
sets the value of the ProductType attribute of the Microsoft Office 2007 Standard
Edition suite CI to Standard Product.

64 Normalization and Reconciliation Guide


Chapter

2 Reconciling data

This section introduces functionality available through the Reconciliation Engine,


a component of the BMC Atrium CMDB that reconciles data from multiple sources
and performs other maintenance functions on datasets.
The following topics are provided:
! Overview of reconciliation (page 66)
! Datasets (page 68)
! Reconciliation console (page 68)
! Namespaces and reconciliation (page 70)
! Reconciliation IDs (page 70)
! Reconciliation in a server group (page 71)

Chapter 2 Reconciling data 65


BMC Atrium CMDB 7.6.04

Overview of reconciliation
When multiple data providers load data into multiple datasets of BMC Atrium
CMDB, you need a reconciliation process to enable you to compare data from
different data sources and to create one complete and correct production dataset.
The Reconciliation Engine is a component of BMC Atrium CMDB that performs
the following important reconciliation activities:
! Identifies class instances are the same entity in two or more datasets
! Merges CI attributes from a dataset to a production dataset
The reconciliation job is a container for reconciliation activities, which themselves
can have different components. The primary activities are Identify and Merge. A
reconciliation job can have one or more activities, each of which defines one or
more datasets and rules for that activity. In addition, you can use a Qualification
Set to restrict the instances participating in a reconciliation activity.
You can choose several methods for starting a reconciliation job, including
manually, scheduled jobs, a continuous job, BMC Atrium API, or a Run Process
Workflow.

Figure 2-1: Structure of a reconciliation job

Reconciliation Job Precedence Association Set


Precedence Dataset
Identify Merge
Precedence Dataset
Identification
Ruleset Precedence Dataset

Rules

Qualification Set
Qualifications

Jobs can use standard or customized rules. Standard rules use defaults for Identify
and Merge activities and automate the creation of reconciliation jobs. You can also
create custom jobs that include all of the different activities and for which you can
modify the default settings.

NOTE
BMC recommends reconciling only CIs that have been normalized or that do not
require normalization. To reconcile the appropriate CIs, enable the Process
normalized CIs only option in the Job Editor.

A reconciliation job can include activities other than Identify and Merge. For more
information, see “Additional reconciliation activities” on page 119.

66 Normalization and Reconciliation Guide


Overview of reconciliation

Identify activity
Before you can merge different versions of instances, you must determine that they
represent the same entity. Identification accomplishes this matching by applying
rules against instances of the same class in two or more datasets.
For example, a rule intended to identify computer system instances might specify
that the IP addresses of both instances be equal. When the rules find a match, both
instances are tagged with the same reconciliation identity, an extra attribute
showing that they each represent the same item in their respective datasets.
You can also manually identify instances that failed to be identified by the rules in
an Identify activity.

NOTE
An instance must be identified before it can be compared or merged.

Merge activity
Merging takes two or more datasets and creates a composite dataset according to
precedence values specified at the dataset, class, and attribute levels.
Merging is essential for producing a single valid configuration when different
discovery applications provide overlapping data about the same items, or when
you need to commit changes that were made in your sandbox dataset as a test. To
take advantage of the areas of strength in each dataset, you create precedence values
that favor those strengths. This gives you one CI instance with the best of all
discovered data.
You give an overall precedence value to each dataset, but you can override that
value for particular classes and attributes in each dataset. Whichever dataset has
the highest precedence value for a given attribute has its value for that attribute
placed in the target dataset. A precedence value for a class also applies to its
subclasses unless the subclasses have their own precedence values.
When an instance is added or updated in a dataset, BMC Atrium CMDB sets the
ReconciliationMergeStatus attribute of that instance to Ready to Merge. The
Merge activity considers only those instances that have been given an identity and
for which the ReconciliationMergeStatus attribute is set to Ready to Merge.
After merging a CI, the Reconciliation Engine updates the value of the
ReconciliationMergeStatus attribute from Ready To Merge to Merge Done.

Chapter 2 Reconciling data 67


BMC Atrium CMDB 7.6.04

Datasets
Creating datasets in BMC Atrium CMDB to store data provided by different data
providers is the first step when importing data.
A dataset is a logical grouping of data. It can represent data from a particular
source, a snapshot from a particular date, or other purpose.
Make sure that each data provider has its own import dataset.
You should also note what dataset is your production, or golden, dataset so that you
can plan your normalization and reconciliation jobs. By default, the BMC.ASSET
dataset is the production dataset. In reconciliation, the production dataset is used
in different ways. First, it is used as a master dataset to identify duplicate CIs,
matching attributes for the CI in the production dataset with the CIs in the
imported datasets. Second, it can be the target dataset in a merge activity so that
the CIs are updated to keep the production dataset current and accurate. Also, do
not normalize the production dataset because you should normalize CIs before
identifying and merging them.
In cases where you need to merge more than one dataset at time, you might want
to create an intermediate dataset for merging. For better performance and to
minimize impact on users of the production dataset, BMC recommends that you
merge one import or discovered dataset at a time with the production dataset. You
might want to merge multiple source datasets in separate jobs to an intermediate
dataset and then merge the intermediate dataset with the production dataset.
For more information about datasets, see BMC Atrium Core 7.6.04 Concepts and
Planning Guide. For more information about creating datasets, see “Creating
datasets” on page 105.

Reconciliation console
You can manage the reconciliation of data between datasets from the
Reconciliation console in the BMC Atrium Core Console.
From this console, you can create, view, modify, and delete jobs, rulesets, and
other reconciliation definitions.
Table 2-1 provides instructions for the tasks that you can perform related to
reconciliation.
Table 2-1: Reconciliation tasks
Task Instruction
Create a standard Click Create Standard Identification & Merge Job.
reconciliation job. For detailed instructions, see “Creating a standard
reconciliation job” on page 74.
Create a customized Click Create Job.
reconciliation job. For detailed instructions, see “Creating and editing a
customized reconciliation job” on page 89.

68 Normalization and Reconciliation Guide


Reconciliation console

Table 2-1: Reconciliation tasks (Continued)


Task Instruction
Edit a reconciliation job. Select a reconciliation job, and click Edit Job.
For detailed instructions, see “Creating and editing a
customized reconciliation job” on page 89.
Manually start or stop a Select a reconciliation job, and click Start Job or Stop Job.
reconciliation job.
Permanently remove a Select a reconciliation job, and click Delete Job.
reconciliation job. If you delete a custom job, all its activities are also deleted. If
you delete a a standard job, all its activities and identification
and merge rulesets are also deleted.
View a job’s progress by Click Show Job Details, and click the Activities & Schedule
activity (Identify, Merge, tab.
Compare, Copy, Delete, For detailed instructions, see “Viewing job status, results, and
Rename, and Purge). history” on page 86.
View when a job is Click Show Job Details, and click the Activities & Schedule
scheduled to execute. tab.
For detailed instructions, see “Viewing job status, results, and
history” on page 86.
View a job’s past and Click Show Job Details, and click the Job History tab.
current executions (by For detailed instructions, see “Viewing job status, results, and
status or date). history” on page 86.
Create a dataset. Click Create Dataset to define the dataset.
For detailed instructions, see “Creating datasets” on
page 105.
Modify the polling Click Edit Server Configuration to modify the settings.
interval, RPC socket, For detailed instructions, see “Configuring Reconciliation
logging for the Engine system parameters” on page 143.
Reconciliation Engine.
Manually identify an Click Manual Identification.
instance that cannot be Select an unidentified instance, an identified instance to
identified with a provide the identity for the unidentified instance, and then
reconciliation job. click Apply Identity.
For detailed instructions, see “Manually identifying data” on
page 107.
Export reconciliation jobs Click Export.
and settings to import to Select a reconciliation job or dataset, and click Save to
another server. Clipboard.
For detailed instructions, see “Exporting reconciliation
definitions” on page 148.
Modify standard rules for Click Standard Rules Editor.
Identification and Merge For Identification, define the attribute and priority.
Activities.
For merge, define the precedence for a class or attribute.
For detailed instructions, see “Standard identification and
merge rules” on page 146.

Chapter 2 Reconciling data 69


BMC Atrium CMDB 7.6.04

Namespaces and reconciliation


Almost all reconciliation definitions operate only on classes within a particular
namespace. Even if an instance matches the qualifications that you specify (see
“Using Qualification Sets” on page 94), if its class is not in the specified namespace
it cannot participate in reconciliation.
When you customize activities, you can specify multiple namespaces or even
choose an option that lets a definition operate in all namespaces. This gives you
maximum flexibility when working in a CMDB that has several data model
extensions installed, each using its own namespace. You can reconcile only CDM
classes, only the classes from a particular extension, or any combination thereof.

WARNING
Inheritance of reconciliation definitions by a subclass happens only within the
namespaces specified for the definition. This can be important if you use BMC
Atrium Core with other BMC Software products that extend the CDM.

For example, in a Precedence set, you might set an attribute precedence on the
MarkAsDeleted attribute of BMC.CORE:BMC_BaseElement because it is the base
class from which all others inherit so you can change the precedence value of
MarkAsDeleted for all classes with one definition. If you define this attribute
precedence for the BMC.CORE namespace, it does not apply to subclasses of
BMC_BaseElement that were created by other BMC Software products with a
different namespace, and Merge activities that use this precedence set will have
unpredictable results.

Reconciliation IDs
The Identify activity can review all incoming data, determine similar CIs across
more than one dataset, and mark where these dataset instances see the same CI.
The Reconciliation Engine marks CI and relationship instances with Reconciliation
IDs that are unique to individual CIs within a dataset.
This initial marking step is critical to enabling the compare and Merge activities
without causing conflicts from overlapping data that could potentially corrupt
your CMDB with unreliable CI data. After identification has occurred, you can
move to the next step and determine how to interpret and combine this data.

IMPORTANT
Do not change the value for unidentified and identified CIs or relationships. The
Reconciliation Engine looks for a value of 0 for unidentified CIs. Changing this
value to NULL or some other character causes identification to fail.

The Reconciliation ID is stored in the ReconciliationIdentity attribute of


BMC_BaseElement and BMC_BaseRelationship.

70 Normalization and Reconciliation Guide


Reconciliation in a server group

You can use the following settings to modify the Reconciliation ID:
! Generate IDs (in Additional Parameters)—When the source dataset does not
already have an identity, you can assign an automatically generated identity to
instances in the dataset in the Identification set. See “Creating an Identify
activity” on page 98.
! Generate IDs (in Dataset Configuration)—If this option is enabled, the
Reconciliation Engine searches for CIs in the production dataset that have a
Reconciliation ID of 0 and sets the ID to a nonzero value that is unique across all
datasets. See “Creating an Identify activity” on page 98.

Reconciliation in a server group


The Reconciliation Engine automatically executes reconciliation jobs on a primary
or secondary server in a server group in response to server status changes. A server
group is two or more servers that share the same database that provide failover
operations.
The BMC Remedy AR System server notifies the Reconciliation Engine of a status
change. If the primary server has a suspended status, the Reconciliation Engine
stops reconciliation jobs on the primary server and resumes them on another
server from the point where they stopped on the primary server. If the primary
server status changes to running, reconciliation jobs on secondary servers are
paused and resumed on the primary server.
With BMC Atrium Core 7.6.03, the Reconciliation Engine assigns the SGPPaused
status when a job is paused while the job switches from one server to another in
the server group. For example, when a job is running on one server (server 2) and
higher ranking server (server 1) comes up, the Reconciliation Engine pauses the job
on server 2 and updates the job run status to SGPaused.
Prior to BMC Atrium Core 7.6.00, the Reconciliation Engine did not transfer jobs
among servers based on server group ranking. For example, a server group
includes server A with the Reconciliation Engine configured and with other
applications on server B. Before 7.6.00, when server A was stopped, server B never
automatically picked up and completed any running reconciliation jobs.

NOTE
If you do not want jobs automatically changing servers in a server group, remove
or comment the arrecond.exe entry from armonitor.cfg, and do not configure
the Reconciliation Engine entry for the server in the AR System Group Operation
Ranking form.

The BMC Remedy AR System server transfers control from one server to another
depending on the Rank value specified in the AR System Group Operation
Ranking form. The Reconciliation Engine takes three iterations of 60 seconds (180
sec) to transfer a job from one server to another so that the first server properly
pauses the running job(s) and the second server resumes the. job(s). This process
avoids running the same job on both servers simultaneously.

Chapter 2 Reconciling data 71


BMC Atrium CMDB 7.6.04

For more information about installing BMC Atrium Core in a server group, see
BMC Atrium Core 7.6.04 Installation Guide.
For more information about BMC Remedy AR System and server groups, see BMC
Remedy Action Request System 7.6.04 Configuration Guide.

72 Normalization and Reconciliation Guide


Chapter

3 Reconciliation jobs

This section explains how to create and manage reconciliation jobs.


The following topics are provided:
! Preparing data for reconciliation (page 74)
! Creating a standard reconciliation job (page 74)
! Starting and stopping a job (page 79)
! Viewing job status, results, and history (page 86)
! Creating and editing a customized reconciliation job (page 89)

Chapter 3 Reconciliation jobs 73


BMC Atrium CMDB 7.6.04

Preparing data for reconciliation


Before running reconciliation jobs, you should observe the following guidelines to
prepare data for successful identify and merge.
! Make sure that each data provider has its own import dataset. For more
information about datasets, see “Datasets” on page 68.
! Verify that CI attributes used for identification have unique values and are
populated consistently. If you use a standard job or the standard identification
rules, you can look at the classes and identifying attributes in the Standard Rules
Editor.
For example, the Name attribute is used to identify instances of most classes. For
some classes, the rules include other attributes. For example, the standard rules
identify instances of BMC_Product based on Name and VersionNumber.

NOTE
Do not populate the TokenID attribute unless you know the formulas that BMC
discovery products use to populate it. Some BMC discovery applications use
TokenID.

Creating a standard reconciliation job


For most reconciliation jobs, the Standard Identification & Merge Job uses default
settings to simplify creating jobs.
The standard job contains the most common reconciliation activities:
! Identifying class instances that are the same entity in two or more datasets.
! Merging class instances from one dataset (such as discovery) to another dataset
(by default, the production BMC.ASSET dataset).
All the identification and merge settings use automated values, which you can
modify from the Job Editor.

NOTE
By default, a standard job identifies and merges CIs that have not been normalized.
To reconcile only CIs that have been normalized, enable the Process normalized
CIs only option in the Job Editor.

Best practices
! To get the most use out of discovered data, reconcile it into your production
dataset immediately after your discovery application loads data into BMC
Atrium CMDB.
! Do not create jobs that simultaneously identify the same dataset or merge data
into the same target dataset. Simultaneous reconciliation can either overwrite
data you wanted to keep from the other job or create duplicate CI instances.

74 Normalization and Reconciliation Guide


Creating a standard reconciliation job

If you need to create multiple jobs to merge data into the same production
dataset, use the Execute activity to run the jobs sequentially or set the jobs as
continuous and run them in parallel with the Look Into Other Datasets for
Parallel Continuous Jobs option selected. For information about configuring
Look Into Other Datasets for Parallel Continuous Jobs option, see “Configuring
Reconciliation Engine system parameters” on page 143.
! Do not run more than one BMC Atrium Integration Engine, Normalization
Engine, or Reconciliation Engine job at the same time because they might query
or update the same data.
! For a large amount of data, such as an initial load, run separate identify and
merge jobs to allow for better diagnostics.
! For incremental updates, run identify and merge activities in one job. For new
CIs, the identify and merge activities are run. For modified CIs, the identify
activity runs quickly because the CIs have reconciliation IDs, and the merge
activity runs.
! Consider indexing attributes used in identification rules. Consult your DBA to
determine what indexes would help you.
Before you begin
Verify that the default identification and merge settings for a standard job. See
“Standard identification and merge rules” on page 146.

! To create a standard reconciliation job


1 In the Reconciliation console, click Create Standard Identification & Merge Job.
2 For Name, type a short unique name for the job.
The name must be unique, and cannot contain any characters that are not allowed
in filenames for the operating system of your server. For example, on a Windows
server your job name cannot contain the following characters: \ / : * ? “ < > |
3 Select the Source Dataset from which data is copied and merged with the
production dataset.
4 Click Save.

Chapter 3 Reconciliation jobs 75


BMC Atrium CMDB 7.6.04

Determining when to use standard jobs and rules


In most cases, you can use a standard job or the standard rules to identify and
merge your data.
BMC recommends that you start with a Standard Identification & Merge Job and
customize the job or rules as needed. Unless you need different identification or
merge rules, you can use a Standard Identification & Merge Job and modify the
activity options while using the standard rules.
! If you have custom classes or attributes, you can modify the standard identify
and precedence rules, and use a Standard Identification & Merge Job.
! You can create and modify a Standard Identification & Merge Job that uses the
standard rules for the following customizations:
! If you need to change the production dataset in an identify activity
! If you need to change the Generate IDs or Exclude Subclasses option in an
identify activity
! If you need to change the source and target datasets in a merge activity
! If you need to change the Include Unchanged CIs option or the Merge order
option in a merge activity
! If you have one dataset that needs to have different identify or precedence rules,
first, see if you can modify the standard identify or merge rules without
affecting the existing rules. If you cannot, then you might have to create a
custom job, disable the standard rules, and create custom identify or merge
rules.
With merges, you can set a precedence value for a dataset, or, if needed, you can
assign a precedence value to a particular class or attribute in a specific dataset.
For example, Calbro wants to keep the default precedence value of 800 for
BMC_Product in the BMC Configuration Import dataset, but they want to assign
a higher precedence value to BMC_Product in the Calbro.Apps dataset because
it is an import of software products that they consider more accurate.
For identification, you cannot specify a rule for a particular dataset, but you can
check if adding an attribute at a lower priority can address the needs of a specific
dataset. For example, if Calbro knows that for the Calbro.Apps dataset, the
TokenID, Name, and SerialNumber attributes are not sufficient to identify some
instances. Calbro can add the custom CalbroID attribute that identifies those
instances in that dataset. By setting it to a priority of 3, the default rules work for
most datasets, but for Calbro.Apps, after the priority 1 and 2 attributes fail to
identify instances, the Reconciliation Engine uses the CalbroID attribute.

76 Normalization and Reconciliation Guide


Creating a standard reconciliation job

Standard identification and merge settings


The standard reconciliation job is configured by default.
You can modify these settings as needed. Table 3-1 describes the default settings
for identification in the standard job.
Table 3-1: Default identification settings
Setting Description Default value
Status Defines whether the Identify Active
activity can execute (Active or
Inactive).
Continue on Error Specifies whether the Identify No
activity continues to run if an
Note: This is automatically set to
error occurs in this activity.
Yes if Continuous is selected.
Production Dataset Specifies the dataset with BMC.ASSET
instances used to identify
matching instances in other
datasets.
Note: The production dataset is
typically the same as the
target dataset in a Merge
activity.
Generate IDs For CIs in the production No
dataset that have a
Reconciliation ID of 0, specifies
whether to assign an ID.
Exclude Subclasses Defines whether to use explicit No
identification rulesets for each
class.
! Yes—Requires that an
identification ruleset be
specified for every class and
subclass.
! No—Applies the
identification ruleset for a
class to all of its subclasses.
You can still specify
individual rulesets for any
class.
Source Dataset Specifies the dataset with Defined by the user during job
instances compared to those in creation
the production dataset.
Qualification Set Specifies the qualifications that Empty
restricts the instances
participating in a reconciliation
activity. An instance that meets
one or more of the qualifications
in the set participates in an
activity where that set is used.

Chapter 3 Reconciliation jobs 77


BMC Atrium CMDB 7.6.04

Table 3-2 describes the default settings for merging in the standard job.
Table 3-2: Default merge settings
Setting Description Default value
Status Defines whether the Merge Active
activity can execute (Active or
Inactive).
Continue on Error Specifies whether the Merge No
activity continues to run if an
error occurs in this activity.
Precedence Defines the precedence values Generated
Association for classes and attributes.
Include Unchanged Defines whether to perform an No
CIs incremental merge on
attributes.
! Yes—Merges all attributes
even if their value has not
changed in the source dataset
since the last time this Merge
activity ran.
! No—Merges only the
attributes that changed value
in the source dataset since the
last run and instances that
were created in the source
dataset since the last run. To
improve performance, select
this option.
Target Dataset Specifies the dataset into which BMC.ASSET
data is updated from the source
dataset in a Merge activity.
Note: The target dataset is
typically the same as the
production dataset in an
Identify activity.
Dataset Specifies the dataset from Defined by the user during job
which data is used to update creation
the target dataset in a Merge
activity.
Qualification Set Specifies the qualifications that Empty
restricts the instances
participating in a reconciliation
activity. An instance that meets
one or more of the
qualifications in the set
participates in an activity where
that set is used.

78 Normalization and Reconciliation Guide


Starting and stopping a job

Table 3-2: Default merge settings (Continued)


Setting Description Default value
Defer if Null Determines whether a NULL Yes
value in the highest-precedence
source dataset is merged to the
target dataset.
See “Creating an Identify
activity” on page 98.
Append To Lists Specifies whether the list values No
from the source dataset
overwrite the list in the target
dataset.
Dataset Precedence Specifies the overall precedence Defined in standard rules.
Value assigned to a dataset.
Require Explicit Specifies whether to require No
Precedences explicit Precedence entries for
attributes or to apply the class
precedence to attributes that
have no assigned precedence.
Precedence Value Specifies a precedence for a Defined in standard rules.
particular class or attribute.

Starting and stopping a job


You use different methods to start reconciliation jobs, and you can use more than
one method with the same job.
! “Creating a job schedule” on page 79
! “Creating a continuous job” on page 80
! “Manually starting a job” on page 81
! “Using a BMC Atrium CMDB API program” on page 81
! “Using a Run Process workflow action” on page 82
! “Pausing and resuming jobs” on page 86

Creating a job schedule


Use job schedules to run a job at regular intervals.
You select a time and days of the week for the job to run. One job can have multiple
schedules.
Best practice
When reconciling a large amount of data, create a job schedule to run outside of
heavy use hours to minimize the impact on users. You can use the continuous
mode for dataset updates.

Chapter 3 Reconciliation jobs 79


BMC Atrium CMDB 7.6.04

! To create a job schedule


1 In the Reconciliation console, select a job and click Edit Job.
2 In the Schedule area of the Job Editor, click New.
3 In the time field, define the time of day to execute the job.
4 Select the days of the week to execute the job.
5 In the Schedule area, click Save, and then click Close.
6 In the Job Editor, click Save, and then click Close.

Creating a continuous job


You can configure reconciliation jobs to execute after a specified interval. If you
specify the interval as 5 minutes, the job executes after 5 minutes. If a job takes 8
minutes to finish, then the next job starts immediately after the preceding job ends.
For more information about setting the interval, see “Configuring Reconciliation
Engine system parameters” on page 143.
You can set any job as continuous and multiple jobs can be in the continuous mode
at a given time. If the continuous jobs are running in parallel on the same
production dataset, you must configure the continuous jobs to run the identify
activity on all the source datasets in addition to the production dataset. For more
information, see “Configuring Reconciliation Engine system parameters” on
page 143.
Best practices
! When reconciling a large amount of data, create a job schedule to run outside of
heavy use hours to minimize the impact on users. You can use the continuous
mode for dataset updates.
! In a standard reconciliation job, the identify and merge activities are run
sequentially. Because of this, the instances start being merged into the target
dataset only after all instances are identified. For a large amount of data, you can
create separate identify and merge jobs and configure the merge job to run in a
continuous mode. When the continuous merge job runs at the specified interval,
all identified instances with the ReconciliationMergeStatus attribute set to
Ready to Merge are merged into the target dataset.

! To create a continuous job


1 In the Reconciliation console, select a job and click Edit Job.
2 In the Schedule area of the Job Editor, click Continuous
3 In the Job Editor, click Save, and then click Close.

80 Normalization and Reconciliation Guide


Starting and stopping a job

The BMC Default Continuous job


Included with the Reconciliation Engine installation, the BMC Default Continuous
job executes other reconciliation jobs and allows data providers to create
reconciliation jobs.
It also adds activities to execute them in the BMC Default Continuous job. By
default, the BMC Default Continuous job has no activities.
For example, when you install BMC Atrium Discovery and Dependency Mapping,
the installer adds jobs with Identify and Merge activities for each BMC ADDM
server and adds an Execute activity for each job in the BMC Default Continuous
job.
You can also execute custom or standard reconciliation jobs from this default job.

IMPORTANT
Do not delete this job because other BMC applications that add reconciliation jobs
during installation use the BMC Default Continuous job.

The purpose of the BMC Default Continuous job is to reconcile a small but critical
set of data that needs to be updated frequently. For large updates or initial loads,
create a scheduled job to minimize the impact on users.
The activities in the BMC Default Continuous job do not run in parallel or
simultaneously but run sequentially.

Manually starting a job


You can start a job at any time, even if it is scheduled.

! To run a job manually


1 In the Reconciliation console, select a job.
2 Click Start Job.
The job status changes to Started.

Using a BMC Atrium CMDB API program


The BMC Atrium CMDB APIs have functions for starting and canceling job runs.
This is one method of performing event-driven reconciliation.
For information about using these functions, see the BMC Atrium CMDB 7.5.00
Developer’s Reference Guide. You can use these functions to dynamically substitute
datasets or qualifications as described in “Dynamic dataset and qualification
values” on page 83.

Chapter 3 Reconciliation jobs 81


BMC Atrium CMDB 7.6.04

NOTE
When you start a job using a BMC Atrium CMDB API program, the Last Activity
Time is neither read nor updated. This means that you cannot use this method to
perform an incremental merge. Also, all Qualification Sets defined within the job
are ignored, even if you did not dynamically specify qualifications.

Using a Run Process workflow action


You can use a Run Process action with an active link, filter, or escalation. This is
one method of performing event-driven reconciliation.
The Application-Command Reconciliation command enables you to run jobs from
the command line.
You can use the command parameters to dynamically substitute datasets or
qualifications as described in “Dynamic dataset and qualification values” on
page 83.
Use the following syntax:
Application-Command Reconciliation action -o "job_name" -l "-c classID -q
qualification";[...];"-w workingDatasetName -d definedDatasetName";[...];

The action initiated by the command can be:


! Trigger-Job—Starts the specified job.
! Cancel-Job—Cancels the specified job if it is running.
! Pause-Job—Pauses the specified job if it is running.
! Resume-Job—Resumes the specified job if it is paused.
Table 3-3 describes the parameters used with the Application-Command
Reconciliation command.
Table 3-3: Application-Command Reconciliation command parameters
Parameter Description
-o Name of the job to start, cancel, create, pause, or resume. This option is
required.
-l Marks the beginning of any inputs for the command, as specified by the
remaining parameters.
-c ID of a specific class for the job.
-q Qualification that limits the scope of the job.
-w Source dataset name. Pair this parameter with the -d parameter.
-d Target dataset name. Pair this parameter with the -w parameter.

For example, to start a job named Merge Datasets, use the following command:
Application-Command Reconciliation Trigger-Job -o "Merge Datasets"

82 Normalization and Reconciliation Guide


Starting and stopping a job

You can enter multiple class-qualification pairs and dataset pairs. For example, if
the Merge Datasets job is defined to merge the BMC Configuration Import dataset
into the BMC Asset dataset but you want to run it using the TestSource and
TestTarget datasets, respectively, you would use the following command:
Application-Command Reconciliation Trigger-Job -o "Merge Datasets" -l "-w
TestSource -d BMC Configuration Import";"-w TestTarget -d BMC Asset"

Qualifications must be specified in BMC Remedy AR System internal


representation. To convert a qualification string into an internal representation,
you can use the Application-Parse-Qual-L Run Process command.
For more information about dynamic dataset or qualification substitution, see
“Dynamic dataset and qualification values” on page 83. For more information
about Run Process commands, see BMC Remedy Action Request System 7.6.04
Workflow Objects Guide.

NOTE
When you start a job using a Run Process action, the Last Activity Time is neither
read nor updated. This means that you cannot use this method to perform an
incremental merge. Also, all Qualification Sets defined within the job are ignored,
even if you did not dynamically specify qualifications.

Dynamic dataset and qualification values


When you execute a reconciliation job from either a BMC Atrium API program or
a Run Process workflow action you have the option of dynamically specifying
datasets, class qualifications, or both for the job.

Substituting datasets
Substituting datasets works for any reconciliation activity type, and for any dataset
specified in the activity. You specify pairs of dataset IDs, where one represents the
defined dataset that is saved in the activities in the job and the other represents the
working dataset to use in place of the defined dataset during this run. You can
specify as many dataset pairs as you want for a job run.
For example, you have a job that includes an Identify activity identifying Dataset
1 against Dataset 2 and Dataset 3, and a Merge activity that merges Dataset 1 and
Dataset 2 into Dataset 3. On certain occasions, you want to use the Identification
rules and Precedence sets defined in these activities to identify and merge source
datasets 4 and 5 into the same target, or you want to merge the original sources into
a different target. Figure 3-1 on page 84 illustrates these scenarios.
Best practice
Consider using this feature when working with overlay datasets. For example, you
can use it to test the reconciliation of several different test states, merging from a
different overlay source dataset into a different overlay target dataset for each job
run.

Chapter 3 Reconciliation jobs 83


BMC Atrium CMDB 7.6.04

Figure 3-1: Dynamic dataset substitution

Defined job

Activity Datasets
Identification Dataset 1, Dataset 2, Dataset 3
Activity Source datasets Target dataset
Merge Dataset 1, Dataset 2 Dataset 3

Called with
dataset pairs
Dataset Working Dataset Dataset Working Dataset
Dataset 1 Dataset 4 Dataset 3 Dataset 6
Dataset 2 Dataset 5

Runs with
Activity Datasets Activity Datasets
Identification Dataset 4, Dataset 5, Dataset 3 Identification Dataset 1, Dataset 2, Dataset 6
Activity Source datasets Target dataset Activity Source datasets Target dataset
Merge Dataset 4, Dataset 5 Dataset 3 Merge Dataset 1, Dataset 2 Dataset 6

NOTE
If you use dynamic dataset substitution on a job containing a Merge activity, the
dataset ID stored in the AttributeDataSourceList attribute is that of the defined
dataset, not the working dataset. For more information about
AttributeDataSourceList, see “Merging datasets” on page 109.

WARNING
Any dataset pair you supply when executing a job must be valid for every activity
in the job. If you supply a pair with a defined dataset that is not used in one or more
activities, the entire job run fails.

If you have jobs that contain several different datasets, consider breaking them up
into multiple jobs to avoid the requirement that a defined dataset must exist in
every activity. When you need to use dynamic dataset substitution, you can then
call the jobs separately and pass appropriate dataset pairs. When you do not need
this flexibility, schedule an umbrella job that calls each piece with an Execute
activity.
For instructions for using this feature with workflow, see “Executing workflow
against compared instances” on page 128. For instructions for using this feature
with an API program, see the Developer’s Reference Guide.

Substituting qualifications
When you substitute a qualification, it replaces all Qualification Sets used in the
job. This allows you to run a job against a different subset of data each time. You
specify each substitute qualification for a particular class, and can specify as many
as you want for a job run.

84 Normalization and Reconciliation Guide


Starting and stopping a job

Best practice
Consider using this feature when you’ve created or modified a small number of
instances in a provider dataset. After creating or modifying the data, you can run
your usual reconciliation job that identifies and merges the dataset, but substitute
qualifications that restrict the job to only the data you just worked with.
For example, you have a job that identifies and merges all active CIs in two
datasets, then copies some of that data to a third dataset. You’ve just discovered
several new computer systems and printers, or perhaps just computer systems,
and want to reconcile them the same way. Figure 3-2 on page 85 illustrates
qualification substitution for both scenarios.

Figure 3-2: Dynamic qualification substitution

Defined job

Activity Qualifications
Identification 'MarkAsDeleted' = $NULL$
Merge 'MarkAsDeleted' = $NULL$
Copy 'AccountID' = "Acme"

Called with class/


qualification pairs
Class Qualification Class Qualification
BMC_ComputerSystem 'CreateDate' > BMC_ComputerSystem 'CreateDate' >
( $TIMESTAMP$ - 86400) ( $TIMESTAMP$ - 86400)
BMC_Printer 'CreateDate' >
( $TIMESTAMP$ - 86400)

Runs with
Activity Qualification set Activity Qualification set
Identification ('ClassId' = "BMC_ComputerSystem" AND Identification 'ClassId' = "BMC_ComputerSystem" AND
'CreateDate' > ($TIMESTAMP$ - 86400)) 'CreateDate' > ($TIMESTAMP$ - 86400)
OR ('ClassId' = "BMC_Printer" AND Merge 'ClassId' = "BMC_ComputerSystem" AND
'CreateDate' > ($TIMESTAMP$ - 86400)) 'CreateDate' > ($TIMESTAMP$ - 86400)
Merge ('ClassId' = "BMC_ComputerSystem" AND Copy 'ClassId' = "BMC_ComputerSystem" AND
'CreateDate' > ($TIMESTAMP$ - 86400)) 'CreateDate' > ($TIMESTAMP$ - 86400)
OR ('ClassId' = "BMC_Printer" AND
'CreateDate' > ($TIMESTAMP$ - 86400))
Copy (ClassId = "BMC_ComputerSystem" AND
'CreateDate' > ($TIMESTAMP$ - 86400))
OR ('ClassId' = "BMC_Printer" AND
'CreateDate' > ($TIMESTAMP$ - 86400))

Chapter 3 Reconciliation jobs 85


BMC Atrium CMDB 7.6.04

Pausing and resuming jobs


You can pause and resume reconciliation jobs, including jobs that were interrupted
or that stopped responding.
The Reconciliation Engine tracks the status of each job as Current Activity, such as
Identification and Merge. When a job is paused or interrupted, the job’s status is
the activity in which it was engaged.
When the job is resumed, the Reconciliation Engine starts the job at the point at
which it was interrupted. For example, if a job was interrupted during the
Identification activity, it does not restart with the Purge activity but continues with
the Identification tasks.
Table 3-4 shows an example of how resuming a paused job works during different
activities.
Table 3-4: Resuming reconciliation jobs

When the job is paused Where Reconciliation Engine resumes the job
In Purge The Reconciliation Engine starts the job with the Purge activity
as if a new job is started. It completes the Purge, Identification,
and Merge activities.
In Identification The Reconciliation Engine restarts identification from the
beginning. If you added new records while the job was paused,
all of those records are identified and merged. The
Reconciliation Engine does not perform the Purge activity.
In Merge After merging a CI, the Reconciliation Engine updates the
value of the ReconciliationMergeStatus attribute from
Ready To Merge to Merge Done. The Reconciliation Engine
only considers the CIs for which the
ReconciliationMergeStatus attribute value was Ready
to Merge when the job was paused. It does not perform Purge
and Identification activities.

Viewing job status, results, and history


You can view the status of reconciliation, as well as statistics about the processing
of instances.
Job runs include the following information, which you can view from the History
tab:
! Start time—Job start time
! End time—Job end time
! Status—One of the following values:
! Queued—The job is waiting to start.
! Started—The job is currently in progress.
! Canceled—A user canceled the job before it could finish.

86 Normalization and Reconciliation Guide


Viewing job status, results, and history

! Aborted—The Reconciliation Engine process was stopped while the job was
running.
! Successful—The job finished successfully.
! Warning—The job finished, but some activities were not successful.
! Error—The job could not finish and error messages were logged.
! Paused—The job has been paused and can be resumed.
When you select a job, the following progress information is displayed:
! Total Instances—Total number of items that the current job reconciles.
! Processed Instances—Number of items that the current job has successfully
reconciled.
! Failed Instances—Number of items that the current job could not reconcile.
You can check the Statistics updated on field to verify whether the Reconciliation
Engine is running.If the Reconciliation Engine is not responding for whatever
reason, this field might not get updated indicating some problem.
Each job run can also accumulate events, which are listed when you view job run
information. Types of events include:
! Error—Error events generated by an activity contain details about how to solve
the problem. These events can include information about datasets or objects
causing the error.
! Warning—Warning events generated by an activity contain details about
something that might be a problem, for example, the need to manually identify
an object.
! Information—Informational events announce milestones, statistics, or results,
such as the number of records found or created. These events might include
attachments, for example, a Compare activity might create an Information event
with a comparison report attached.
Events include the following information:
! Event Name—Name of event
! Event Type—Information, warning, or an error
! Event Description—Detailed description of the event. For information about
interpreting descriptions, see “Event descriptions” on page 88.
! Attachment—Attached files, like a comparison report
! Timestamp—Time the event occurred

Chapter 3 Reconciliation jobs 87


BMC Atrium CMDB 7.6.04

Viewing job information


You can view the details for a selected job in the Administrative Information tab.
! Job ID
! Modification information
! Creation information
! Activities in the job, including name, type, status and sequence
! Job schedule

Event descriptions
Each run of an Identify, Merge, Copy, Compare, Delete, or Purge activity creates
an Information event to provide statistical results. Each job run also creates an
event. This section explains how to interpret those results.

Activity statistics
Events pertaining to an activity can contain these headings.
! Number of records found: number—The number of instances found for
reconciliation. This is usually fewer than the total number of instances in the
dataset against which the activity operated, because certain options restrict the
number of instances processed. For example, setting Include Unchanged CIs to
No for a Merge activity or setting Identity Required to Yes for a Copy activity
reduces the number of instances processed by the activity.
For a Merge, Copy, or Compare activity, this number reflects instances in both
the source and target datasets. If an instance exists only in the source dataset
before the activity run, it adds 1 to the number of records found. If it exists with
the same reconciliation ID in both datasets, it adds 2 to this number.

NOTE
The number of records found includes both CI and relationship instances.

! Records created: number—The number of instances created in the target dataset


by a Merge or Copy activity.
! Records modified: number—The number of instances modified in the target
dataset by a Merge or Copy activity.
! Duplicate records not copied: number—The number of instances that were not
copied by a Copy activity because the Collision Resolution option is set to
Display Error.
! Number of instances deleted: number—The number of instances that were
deleted by a Delete or Purge activity.
! Comparison Report— The report generated by a Compare activity that has no
attached Workflow Execution ruleset. For more information, see “Comparing
datasets” on page 126.

88 Normalization and Reconciliation Guide


Creating and editing a customized reconciliation job

Job statistics
Each job run creates an event with these headings.
! Number of log files created: number—The number of log files written for the
job. When the amount of data logged for a job run exceeds the maximum log file
size you specify, another log file is created. For example, if your maximum log
file size is 20 KB and you run a job that logs 50 KB of data, three log files are
written.
! Log File Path—The absolute path to the directory on the BMC Atrium CMDB
server where the log files were written.
! <First>/<Last> Log File Name—The name of the first or last log file written for
the job run. Files are named for the job with a numerical suffix. For example, the
first run of My Job might write the log files My Job_1.log and My Job_2.log, and
a later run writes My Job_3.log.

Pruning job run records


After your reconciliation jobs have run many times, you might not want to view
the results of older runs in the History tab any longer.
You can delete these records so that they no longer appear in the History tab.

! To delete job run records


1 With BMC Remedy User, log in to your BMC Atrium server.
2 Open the Reconciliation Job Events form in Search mode, and click Search to find
all records in the form.
3 In the results pane, select the event with records you want to delete.
4 Choose Actions > Delete, and then click OK in the confirmation dialog box.

Creating and editing a customized


reconciliation job
After you have created a job and defined its schedule, you must create activities
and relate them to the job. These activities run when the job runs. After the job
runs, you can view its history.
Best practices
! If you are going to include Identify and Merge activities in a job, create a
standard job with the automated defaults. You can then edit and customize the
standard job.

Chapter 3 Reconciliation jobs 89


BMC Atrium CMDB 7.6.04

! Create small jobs, containing the fewest number of activities that must always
run together in a given order. This allows you the flexibility of reusing jobs in
different combinations using any of the methods described in “Starting and
stopping a job” on page 79.
! Do not create jobs that simultaneously identify the same dataset or merge data
into the same target dataset. Simultaneous reconciliation can either overwrite
data you wanted to keep from the other job or create duplicate CI instances.
If you need to create multiple jobs to merge data into the same production
dataset, use the Execute activity to run the jobs sequentially or set the jobs as
continuous and run them in parallel with the Look Into Other Datasets for
Parallel Continuous Jobs option selected. For information about configuring
Look Into Other Datasets for Parallel Continuous Jobs option, see “Configuring
Reconciliation Engine system parameters” on page 143.
! Do not run more than one BMC Atrium Integration Engine, Normalization
Engine, or Reconciliation Engine job at the same time because they might query
or update the same data.
! For a large amount of data, such as an initial load, run separate identify and
merge jobs to allow for better diagnostics.
! For incremental updates, run identify and merge activities in one job. For new
CIs, the identify and merge activities are run. For modified CIs, the identify
activity runs quickly because the CIs have reconciliation IDs, and the merge
activity runs.
! In a standard reconciliation job, the identify and merge activities are run
sequentially. Because of this, the instances start being merged into the target
dataset only after all instances are identified. For a large amount of data, you can
create separate identify and merge jobs and configure the merge job to run in a
continuous mode. When the continuous merge job runs at the specified interval,
all identified instances with the ReconciliationMergeStatus attribute set to
Ready to Merge are merged into the target dataset. This ensures that identified
instances can start being merged into the target dataset while the Identify
activity is still running on the remaining unidentified instances.

! To create a customized reconciliation job


1 In the Reconciliation console, click Create Job.
To open an existing job, select it and then click Edit Job.
2 For Name, type a short unique name for the job.
The name must be unique, and cannot contain any characters that are not allowed
in filenames for the operating system of your server. For example, on a Windows
server your job name cannot contain the following characters: \ / : * ? “ < > |
3 From the Job Status list, select Active. You can later disable the activity by
changing this setting to Inactive.

90 Normalization and Reconciliation Guide


Creating and editing a customized reconciliation job

4 To use the standard identification and merge rules, select Use standard rules for
participating datasets.
For more information, see “Standard identification and merge settings” on
page 77.
5 To identify and merge only CIs that have been successfully normalized, enable
Process normalized CIs only.
The Reconciliation Engine processes CIs with the follow status:
! Normalized and Approved
! Not Applicable For Normalization
! Normalized and Not Approved
For more information, see “Normalization status” on page 24.
6 Create activities for the job.

NOTE
Activities cannot be reused between jobs. If you delete a job, all its activities are
also deleted. Also, when you remove an activity from a job, it is deleted and cannot
be used in other jobs.

See the appropriate procedures:


! “Identifying data across datasets” on page 97
! “Merging datasets” on page 109
! “Deleting data” on page 122
! “Purging soft-deleted data” on page 124
! “Comparing datasets” on page 126
! “Copying datasets” on page 131
! “Renaming datasets” on page 137
! “Executing workflow against compared instances” on page 128
7 Create a schedule for the job, or start the job as needed.
See “Starting and stopping a job” on page 79.
8 Click Save, and then click Close.

Chapter 3 Reconciliation jobs 91


BMC Atrium CMDB 7.6.04

92 Normalization and Reconciliation Guide


Chapter

4 Identify and Merge activities

Each reconciliation job must have at least one activity. Each activity has
components that must be defined.
The following topics are provided:
! Using Qualification Sets (page 94)
! Building a qualification (page 95)
! Identifying data across datasets (page 97)
! Merging datasets (page 109)

Chapter 4 Identify and Merge activities 93


BMC Atrium CMDB 7.6.04

Using Qualification Sets


In each type of activity, you have the option of using a Qualification Set, which is
a set of qualifications that restrict the instances participating in a reconciliation
activity.
An instance that meets one or more of the qualifications in the set participates in
an activity where that set is used.
Multiple activities can use the same Qualification Set.
Best practice
To validate reconciliation jobs with a small amount of data, use qualifications to
restrict the CIs that are used in the activity.
For example, in the BMC.IMPORT.CONFIG dataset, Calbro has thousands of CIs,
but they do not want to reconcile all of them to validate their reconciliation jobs.
Instead, Calbro restricts the CIs to a instances of different classes.
! For BMC_ComputerSystem, Calbro administrator staff uses the Qualification
Builder to restrict the CIs to those with the VirtualSytemType attribute set to
VMware. Because they are tracking virtual machines for the first time, they want
to include these CIs in testing reconciliation.
! To test dependencies, the Calbro staff also includes qualified instances of
BMC_SoftwareServer, where the Model attribute is Weblogic, because some
instances of Weblogic are installed on VMWare virtual machines.

! To create or modify a Qualification Set


1 From the Activities area in the Job Editor, click New, or select an existing activity
and click Edit Activity.
2 Clear the Use all classes and instances check box in the Qualification area.
3 Click New/Edit Qualification Set.
4 Enter the following required information:
a In the Set field, enter the name of the Qualification Set.
b From the Namespace list, select a namespace.
For more information, see “Dynamic dataset and qualification values” on
page 83.
5 In the Qualifications area, click Add Rule, or select an existing set and click Edit
Rule.
6 For Name, enter the name of the qualification.
7 For Description, optionally enter a description of the qualification.
8 From the Status list, select Active.
You can later disable the activity by changing this to Inactive.

94 Normalization and Reconciliation Guide


Building a qualification

9 From the Class list, select the name of the class for which the qualification will
return instances.
10 If you want the qualification to return CIs based on attribute values in related child
CIs, select a class name from the Related Child Class list.
When you select a related child class, the qualification uses the attributes of a child
CI to return a source CI. For example, if your Class Name is BMC_ComputerSystem,
you might specify BMC_DiskDrive in the Related Child Class field. This enables
you to match computer systems based not on their own attributes, but on the size
of their disk drives.
A referring class qualification only matches when the instance of the class in the
Related Child Class field is the child member of a relationship to the instance of the
Class field. It does not match when the Related Child Class instance is the source.
11 In the Qualification field, type your qualification or click Build Qualification to
build it interactively.
For more information, see “Building a qualification” on page 95.
12 Click Done, and then click Save.

! To use an existing Qualification Set


1 From the Activities area in the Job Editor, click New, or select an existing activity
and click Edit Activity.
2 Clear the Use all classes and instances check box in the Qualification area.
3 From the Qualification Set list, select an existing Qualification Set.
4 Click Done, and then click Save.

Building a qualification
You can use the Qualification Builder to build qualifications interactively instead
of typing them. It is accessible from any window in the Reconciliation console that
has a Qualification field and works similarly to the Advanced Search Bar in BMC
Remedy User.

Qualification conventions
When building qualifications, the easiest way is to select the fields, keywords, and
values from the Qualification Builder. You can also create the qualification
manually. If you choose this option, observe the following conventions.
For more information about keyword definitions, relational operators, and
advanced search bar conventions, see the BMC Remedy Action Request System 7.6.04
Mid Tier Guide.
! Enclose attribute names in single quotation marks.

Chapter 4 Identify and Merge activities 95


BMC Atrium CMDB 7.6.04

! Enclose nonnumeric values (including time, selection, and currency values) in


double quotation marks.
Example: $VirtualSystemType$ = "VMWare"
In the current (source) dataset, this qualification finds all instances of
BMC_ComputerSystem where the VirtualSystemType attribute has a value of
VMWare.
! For currency fields, you must enclose one of the following items in single
quotation marks:
! The name or ID of the currency field.
Example: ‘Currency Field’ = $NULL$
! The name of the currency field, followed by a period, followed by a specific
portion of the currency field’s value.
Example: ‘Currency Field.VALUE’ < 5000
! Use keywords anywhere that you can enter character values. The most
commonly used keywords are $DATE$, $NULL$, $TIME$, $TIMESTAMP$, $USER$,
and $WEEKDAY$.

NOTE
Keywords are case-sensitive. Use only UPPERCASE.

Creating qualifications
You can create a qualification to limit instances that a reconciliation activity
processes.

! To create a qualification
1 From the Activities area in the Job Editor, click New, or select an existing activity
and click Edit Activity.
2 Clear the Use all classes and instances check box in the Qualification area.
3 Click New/Edit Qualification Set.
4 In the Qualifications area, click Add Rule, or select an existing set and click Edit
Rule.
5 From the New/Edit Rule area, click Build Qualification.
6 In the Attribute list, select a class attribute, and click From Current Dataset.
7 To add an operator, place your cursor in the expression, and click the appropriate
operator.
8 To select a value to use, select an attribute from the Attribute list, and click From
Target Dataset.
9 To add a keyword, double-click the appropriate item in the Keyword list.
10 To change the qualification manually, click Allow Manual Edit, and modify the
expression.

96 Normalization and Reconciliation Guide


Identifying data across datasets

11 To verify that your expression is valid, click Validate.


12 Click Save.

Identifying data across datasets


You create an Identify activity to establish a common identity for instances in two
or more datasets, confirming that they are the same real-life configuration item
(CI).
The identity is stored as the ReconciliationIdentity attribute in each instance.
The identity of an instance in the production dataset for that activity is copied to
matching instances in the other datasets. The production dataset is typically the
same dataset that is the target of your Merge activities. If you plan to use
independent Merge activities to merge each of your source datasets into the target,
also use independent Identify activities, each of which identifies one dataset
against that target.
An Identify activity assigns identity to an instance according to one of the
following scenarios:
! If one or more instances match an instance in the production dataset that already
has an identity, that identity is applied to the other instances.
! If one or more instances match an instance in the production dataset that does
not already have an identity, the Reconciliation Engine automatically generates
an identity and applies it to the matching instances in the other datasets, and can
optionally also apply it to the instance in the production dataset.
! If an instance does not match any instance in the production dataset and its own
dataset is marked for automatic identification, the Reconciliation Engine
automatically generates an identity for the instance.
! If an instance does not match any instance in the production dataset and its own
dataset is not marked for automatic identification, the instance remains
unidentified.
Unidentified instances cannot participate in Merge or Compare activities, so you
should manually identify them. For information and procedures, see “Manually
identifying data” on page 107.

Chapter 4 Identify and Merge activities 97


BMC Atrium CMDB 7.6.04

Identify activity overview


To add an Identify activity to a reconciliation job, follow the process outlined in the
following steps.
Each step represents a procedure. In the sections that relate to this process, the
graphic is repeated, and the related step is highlighted.

Step 1 Create a job to hold the Identify activity, if no job exists. See “Creating and editing
a customized reconciliation job” on page 89.

Step 2 Create an Identify activity which stores the rules and datasets for identification.
See “Creating an Identify activity.”

NOTE
Activities cannot be reused between jobs. If you delete a custom job, all its activities
are also deleted. If you delete a a standard job, all its activities and identification
and merge rulesets are also deleted.

Step 3 Create Identification rulesets, each of which has rules that match instances
between two datasets. See “Creating an Identification ruleset” on page 101.

Step 4 Select the datasets to identify. See “Relating datasets and Identification rulesets”
on page 104.

Step 5 Optionally, select or create a Qualification set to define which instances participate
in the activity. See “Using Qualification Sets” on page 94.

Creating an Identify activity


An Identify activity identifies CIs in one or more datasets based on the
Identification rulesets contained in it.
Identify activities connect an Identification ruleset with an import dataset. This
enables the qualified CIs to be identified by searching for matching attribute values
in the dataset defined in each identification rule.
Best practices
! Consider indexing attributes used in identification rules. Consult your DBA to
determine what indexes would help you.
! After your initial data load into BMC.ASSET, perform an Identify activity on the
data, selecting the Generate IDs option to assign unique Reconciliation IDs to
production dataset instances with an ID of 0. This makes sure that your
production data has an identity the first time it is identified against another
dataset.

98 Normalization and Reconciliation Guide


Identifying data across datasets

Before you begin


! Check whether you can use a Standard Job.
! Make sure identifying attributes are defined as keys so the database can find CIs
quickly in the Identify activity.
! Make sure all Identification attributes are non-null and unique as much as
possible before running a reconciliation job.

! To create an Identify activity


1 In the Reconciliation console, click Create Job or open an existing reconciliation
job.
See “Creating and editing a customized reconciliation job” on page 89.
2 In the Activities area, click New to define a new Identify activity.
3 For Type, select Identify.
4 Complete the following fields:

Name Type a unique name.


The name cannot contain any characters that are
not allowed in file names for the operating system
of your server. For example, on a Windows server,
your job name cannot contain the following
characters: \ / : * ? “ < > |
Namespace Select a namespace using the controls with the
Namespace field. Only classes in the selected
namespaces can participate in the activity.
For more information, see “Dynamic dataset and
qualification values” on page 83.
Status Select Active. You can later disable the activity by
changing this to Inactive.
Continue on Error Define whether the job continues if the activity has
an error.
Checked—A job containing this activity continues
to run if an error occurs in this activity.
Unchecked—A job containing this activity
terminates if an error occurs in this activity
Sequence Specify in what order you want this activity to run
relative to other activities in a job. For example, if
this activity has a value of 2 it runs before an
activity with a value of 3. The sequence can be 0 to
1000, inclusive.

Chapter 4 Identify and Merge activities 99


BMC Atrium CMDB 7.6.04

Use all classes and Select to run an unqualified Identify activity so that
instances all classes and instances are included.
To restrict the classes and instances, remove the
check.
Qualification Set Select a qualification that restricts the classes and
instances used in the activity.
If the Use all classes and instances is unchecked,
select from the Qualification Set. list
To create a Qualification Set, click New. For more
information, see “Using Qualification Sets” on
page 94.
Production Dataset Select the dataset to use with the Generate IDs
feature.
This setting does not affect the Identify Against
dataset selected in the Identification rules.
Generate IDs For the selected Production Dataset, define how to
handle any instances that have not been identified
(or have a Reconciliation ID of 0).
Checked— Unidentified instances in the selected
Product Dataset are assigned a nonzero
Reconciliation ID.
Unchecked— Unidentified instances in the
selected Product Dataset are not assigned a
nonzero Reconciliation ID. These instances retain a
Reconciliation ID of 0.
Exclude Subclasses Defines whether to use explicit Identification
rulesets for each class.
Yes—Requires that an Identification ruleset be
specified for every class and subclass.
No—Applies the Identification ruleset for a class to
all of its subclasses. You can still specify individual
rulesets for any class.

5 If you did not select Use standard rules for participating datasets for the job, create
an Identification ruleset.
To create a ruleset, see “Creating an Identification ruleset” on page 101.
6 If you selected Use standard rules for participating datasets, you do not need to
create an Identification ruleset.
For more information, see “Standard identification and merge rules” on page 146.

100 Normalization and Reconciliation Guide


Identifying data across datasets

7 To select a source dataset and, if applicable, relate it to an Identification ruleset,


click Add Dataset Identification Group Association.
For more information, see “Relating datasets and Identification rulesets” on
page 104.
8 To save the activity, click Done.

Creating an Identification ruleset


An Identification ruleset is a set of prioritized rules that define how CI instances in
different datasets are identified as the same entity, such as comparing serial
numbers and product names.
Each Identification ruleset applies its rules to specific classes. Unless an activity
using the ruleset has its Exclude Subclasses selected, the ruleset also applies to
subclasses of the specified class, so you can use inheritance to minimize the
number of Identification rulesets you create.
The rules are executed according to an Execution value, where the lowest
execution-order rule is processed first. After an instance is identified, the
remaining rules in the ruleset are not processed.
An Identification ruleset is paired with a particular dataset in an Identify activity.
It uses a sequence of rules to identify instances from that dataset against those from
other datasets in a particular order.

NOTE
In an Identify activity, each participating dataset except the production dataset
must be paired with an Identification ruleset. If the activity involves three or more
datasets, including the master dataset, each dataset's Identification ruleset must
include Identification rules comparing it to all the other datasets. For instance, in
an Identify activity involving datasets A, B, and C where C is the master, the
Identification ruleset paired with dataset A must have a rule that identifies its
instances against B and a rule that identifies its instances against C, and the ruleset
paired with B must have a rule identifying against A and a rule identifying against
C. Without these rules, a job that includes this activity will not run.

Best practices
! Use the highest class level possible to take advantage of inheritance and to use
the Identification ruleset with multiple classes.
! Always put the most specific identification rules first in the Identification ruleset
execution order, so the best match is identified first.
! After the production dataset is initially populated, set Generate IDs to No in the
dataset and Identification ruleset entry. This helps prevent duplicate records by
requiring a BMC Atrium CMDB administrator to manually identify new
configuration items.
! You can use multiple Identification rulesets in an Identify activity to identify
multiple classes in one reconciliation job.

Chapter 4 Identify and Merge activities 101


BMC Atrium CMDB 7.6.04

! Regularly review your identification rules to make sure they are still
appropriate for your environment and spot check instances to confirm that they
are being identified properly.
! Consider indexing attributes used in identification rules. Consult your DBA to
determine what indexes would help you.
! The standard identification rules use the following guidelines for identifying
physical and virtual servers. If you create identification rules, consider these
attributes to distinguish between physical and virtual servers and to uniquely
identify each. You can use the standard rules as a guide to creating custom
identification rules for servers.
! For physical servers, BMC recommends that data providers populate the
TokenID attribute with a concatenation of the host name and domain name.
! For virtual servers, BMC recommends that data providers set the following
attributes:
Set Name to the name of the virtual machine.
Set isVirtual to Yes.
Set TokenID to prefix:uniqueID, which is a concatenation of the virtual
machine prefix and unique ID.
Typically, virtual machines have a unique identifier, which does not change
when the virtual machine is moved to a new host. For example, the TokenID
for a VMware virtual machine is VI-UUID:123456789.
Before you begin
! Plan how many rules are needed in what order.
! Know what dataset to use as reference in each rule.
! To create an Identification ruleset, clear the Use standard rules for participating
datasets option for the job. Otherwise, your Identify activity uses the standard
rules. See “Standard identification and merge settings” on page 77.

102 Normalization and Reconciliation Guide


Identifying data across datasets

! To create an Identification ruleset


1 In the New Activity area, click Create Identification Ruleset to define
identification rules.
If you selected Use standard rules for participating datasets for the job, Create
Identification Ruleset is not available.
2 Enter the following required information.

Set The name of the ruleset.


Class From the appropriate namespace, select the
namespace and class to identify.
Namespace The namespace is selected with the class. Only
classes in the selected namespaces can participate
in the activity.
For more information, see “Dynamic dataset and
qualification values” on page 83.

3 Click Add Rule.


You need one Identification Rule for each dataset against which you want to
identify the dataset this ruleset is paired with.
4 Enter the following required information:

Identify Against Select the dataset where you want to find a match.
This is often the production dataset, such as
BMC.ASSET.
Execution Select or type a number to identify this rule's
position in the ruleset execution order (0 to 1000).
All rules in the ruleset are processed according to
this order.
Namespace Use the same Namespace that you specified for the
Identification ruleset.

Chapter 4 Identify and Merge activities 103


BMC Atrium CMDB 7.6.04

Class Use the same class that you specified for the
Identification ruleset.
Qualification Type the criteria that match the class between
datasets, or click Build Qualification to create the
criteria with a tool.
Use dollar signs ($) to enclose attribute names from
the dataset that is paired with this Identification
ruleset in an Identify activity, and use single quotes
(') to enclose attribute names from the dataset in the
Find in Dataset field.
Example: 'IP Address' = $IP Address$,
The example qualification identifies instances of
the class when they share the same IP address.

5 Click OK.
6 In the Set Editor, click Save.

Relating datasets and Identification rulesets


After you define how to identify instances with identification rules, you must
select the dataset to identify.

! To assign an Identification ruleset to a dataset


1 In the New Activity area, click Add Dataset Identification Group Association to
relate a dataset with an Identification ruleset.
2 From the Dataset list, select a dataset to identify.
This is a source dataset that has CI instances that need to be identified against a
master, or production dataset. If the desired dataset is not available, see “Creating
datasets” on page 105.
3 From the Identification Ruleset list, select the Identification ruleset that contains
the rules for identifying the dataset’s data.
The Identification rulesets are listed by the class that was selected when the ruleset
was created.
4 If you want instances from the dataset paired with the ruleset to be assigned an
automatically generated identity when the source dataset does not already have an
identity, select the Generate IDs check box.
For example, if you set Generate IDs to No on an Identification ruleset defined for
BMC_ComputerSystem, BMC_DiskDrive CIs and other component CIs that are
destinations of a weak relationship with the computer system do not get
automatically generated identities.
5 Click Save.
You have added an Identify activity to a reconciliation job, which you can now run
and monitor.

104 Normalization and Reconciliation Guide


Identifying data across datasets

! For more information about starting jobs, see “Starting and stopping a job” on
page 79.
! For more information about monitoring jobs, see “Viewing job status, results,
and history” on page 86.

Creating datasets
You can create datasets from the Reconciliation console.
When you create a dataset, you give it both a name and an ID. The naming
convention for dataset IDs is as follows, and should be written using all capital
letters:
VENDOR_NAME.PURPOSE[.VENDOR _PECIFIC_PRODUCT]

! VENDOR_NAME= is the name of the company whose product provides or consumes


data from the dataset. If it is a site-specific dataset, it should have a vendor name
of SITE.
! PURPOSE is the purpose of the dataset, for example, ASSET, IMPORT, or
ARCHIVE.
! VENDOR_SPECIFIC_PRODUCT is the product or functionality area within a purpose.
These are some of the dataset names and IDs used by BMC Software products:
Table 4-1: Dataset names and IDs

Dataset name Dataset ID


BMC Asset BMC.ASSET
BMC Topology Import BMC.IMPORT.TOPO
BMC Configuration Import BMC.IMPORT.CONFIG

NOTE
Use datasets primarily to represent different data providers, but you can use
datasets to represent other types or groupings of data, such as test data, obsolete
data, or data for different companies or organizations for multitenancy.

Best practice
Typically, you should create a regular dataset. Do not create an overlay dataset for
for a data provider. For more information about overlay datasets, see the BMC
Atrium Core 7.6.04 Concepts and Planning Guide.

Chapter 4 Identify and Merge activities 105


BMC Atrium CMDB 7.6.04

! To create a dataset
1 Create a dataset from different places in the console.
! From the Identify activity, click Add Dataset Identification Group Association,
and then click Create Dataset.
! In the Reconciliation console., click Create Dataset.
2 Complete the following fields.

Name Type a unique name.


The name cannot contain any characters that are
not allowed in file names for the operating system
of your server. For example, on a Windows server,
your job name cannot contain the following
characters: \ / : * ? “ < > |
ID Type a unique ID string for the dataset.
The Dataset ID cannot contain a slash (/),
semicolon (;), or comma (,). If you do not provide
an ID, the system generates a GUID to use for this
ID.
The Dataset Name and Dataset ID cannot be
changed from this window after you have created
the dataset. However, you can rename a dataset
with a Rename activity. For information about this,
see “Renaming datasets” on page 137.
Accessibility Select the whether instances can be created,
modified, and deleted in the dataset.
Writable—Any process can write to the dataset
Read-Only—No process can write to the dataset;
its data can only be viewed
Writable by client only—Only the client processes
specified in the ClientTypeList field can write to
the dataset
In most cases, choose Writable.

106 Normalization and Reconciliation Guide


Identifying data across datasets

Client Type List If you selected Writable by client only, type the
client IDs of each BMC Atrium client that can write
to this dataset in the ClientTypeList field.
To allow all clients to write to this dataset, leave
this field blank. If you enter any IDs here, only
those clients can create, modify, or delete instances
in the dataset.
Client IDs are integer values and must be delimited
by semicolons. The allowable client values are the
following IDs:
BMC Impact Publishing Server: 28
BMC Impact Service Model Editor: 29
Reconciliation Engine: 32
Type Select Regular or Overlay.
For information about overlay datasets, see the
BMC Atrium Core 7.6.04 Concepts and Planning
Guide.
Source Dataset ID If you selected Overlay, type the SourceDatasetId
for this new dataset.
This is the Dataset ID of the existing regular dataset
that your new dataset overlays.

3 Click Save.

Manually identifying data


You can manually identify instances if the Reconciliation Engine cannot find a
match for an object instance after applying all the identification rules, or if the
instance is part of an Identification ruleset that you did not specify to be auto-
identified.

! To manually identify instances


1 In the Reconciliation console, click Manual Identification.
2 In the Unidentified Instances table, select the instance you want to identify.
3 In the Identified Instances table, select the instance to supply an identity for the
unidentified instance.
If you need to view attribute details about either instance, click View.
4 Click Apply Identification.

Chapter 4 Identify and Merge activities 107


BMC Atrium CMDB 7.6.04

Identifying a class without including related components


Identifying CIs in a class with weak relationship class and component classes
results in identifying the weak-related CIs.
For example, you want to identify only BMC_ComputerSystem without identifying
related components such as BMC_DiskDrive and BMC_Processor. To avoid
identifying the related components, you can identify against a superclass, such as
BMC_BaseElement, that has no weak relationships. You can then use a
Qualification set to restrict the identification to only CIs in BMC_ComputerSystem.

Step 1 Define an Identification Rule that uses BMC_BaseElement.

For example, create the following identification rule:


! Find in Dataset: BMC.ASSET
! Execution: 1
! Namespace: BMC.CORE
! Class Name: BMC_BaseElement
! Qualification: 'Name' = $Name$

Step 2 Define a Qualification set that restricts identification to specified classes,. and
associate the Qualification set with the Identify activity.

For example, create the following qualification:


! Name: ComputersOnly
! Status: Active
! Namespace: BMC.CORE
! ClassName: BMC_BaseElement
! Qualification: 'ClassID' = "BMC_COMPUTERSYSTEM"

NOTE
With the previous qualification, your job identifies computer systems, not
subclasses such as BMC_Mainframe. You can update the qualification as needed.

108 Normalization and Reconciliation Guide


Merging datasets

Merging datasets
After you have identified your data, you can merge it from one or more source
datasets into one target dataset to create a reconciled view of that data.
Using the standard or custom precedence rules, you set a precedence value for
each dataset that participates in the merge, including the target, and then create
individual values for any classes or attributes in those datasets that should be
higher or lower. These precedence values determine which dataset, including the
target if needed, supplies the data that is written to the target dataset for each class
and attribute.
Only instances that have reconciliation identities and for which the
ReconciliationMergeStatus attribute is set to Ready to Merge can participate in
a merge. For more information about identification, see “Identifying data across
datasets” on page 97. After an instance is merged into the target dataset, the
ReconciliationMergeStatus attribute is set to Merge Done.

Independent Merge activities and AttributeDataSourceList


Though you can merge multiple datasets at once, you also have the flexibility of
using separate Merge activities to achieve a merge between multiple datasets.
Each Merge activity writes an extra attribute named AttributeDataSourceList to
each instance in the target dataset. This attribute lists each other attribute of the
class and the source dataset that supplied its value.
The next Merge activity that uses the same target dataset compares its source
dataset with the highest precedence value for an attribute against the dataset that
provided the value currently in the target dataset. If the latter’s precedence value
is higher, no value is written for that attribute.
This allows several vendors to separately install reconciliation definitions for their
products, such as discovery applications, that provide data to the BMC Atrium
CMDB. None of them need to know which other products are present or create a
Merge activity that includes them all. Each Precedence Association set and Merge
activity can operate independently, because their precedence value for any given
attribute is weighed against the highest precedence value that supplied data to the
target dataset. For a comparison of using one Merge activity versus independent
Merge activities, see the BMC Atrium Core 7.6.04 Concepts and Planning Guide.

NOTE
When a Merge activity compares the precedence value for an attribute in a source
dataset against the precedence value for the dataset that last supplied the attribute
to the target dataset, that target precedence value is taken from the Precedence
Association set selected for the Merge activity. Whichever Precedence Association
is paired with the “stored” source dataset in that Precedence Association set
supplies the precedence value for the attribute.

Chapter 4 Identify and Merge activities 109


BMC Atrium CMDB 7.6.04

Handling NULL values


The Defer if Null option, which you can set both for a Precedence Association set
and for class and attribute precedences within that set, determines whether a NULL
value in the highest-precedence source dataset should be merged to the target
dataset.
Both settings for this option have benefits and pitfalls.

Defer if Null = “Yes”


This means a NULL value is ignored and the Reconciliation Engine uses the highest-
precedence non-NULL value it finds for that attribute. This ensures that even if only
one of your discovery applications finds a particular value, that value is merged to
your target dataset regardless of the precedence value of the source that provided
it.
On the negative side, it prevents you from intentionally setting values to NULL in
the target dataset, which is necessary for the MarkAsDeleted attribute. BMC
Software products set MarkAsDeleted to either “Yes” or NULL. Therefore, after an
instance has been marked as deleted in your target dataset, any source dataset with
Defer if Null set to “Yes” cannot unmark it as deleted in the target. Their NULL value
is ignored by a Merge activity.

NOTE
Though you cannot merge a NULL value, you can work around this in character
attributes by using blanks. This visually clears an existing value from an attribute,
but can cause confusion if you are using that attribute in Identification rules or
performing Compare activities. Blanks also cannot be used in the MarkAsDeleted
attribute because it is a selection, not character, attribute.

Defer if Null = “No”


This means the source dataset with the highest precedence value for an attribute
merges its attribute value to the target dataset, even if that value is NULL. This
allows you to intentionally set a NULL value in the target dataset, and therefore is
useful with the MarkAsDeleted attribute.
On the negative side, if your highest-precedence dataset has this option, any NULL
values created by that dataset can never be overwritten, which can cause valuable
data to sit in other source datasets unseen while your target dataset has the same
instances populated with NULL values. This is the case with the
BMC.ASSET.SANDBOX dataset that ships with BMC Remedy Asset Management.
It has a precedence value higher than the datasets for other BMC products to allow
changes made in the BMC Remedy Asset Management interface to be merged to
the BMC Asset dataset. But if someone manually creates a CI using BMC Remedy
Asset Management and leaves most fields empty, then after reconciliation merges
the CI to BMC Asset before non-NULL values are available for it in another dataset,
those NULL values can only be removed from BMC Asset by manually editing the
CI again.

110 Normalization and Reconciliation Guide


Merging datasets

Merge process overview


To add a Merge activity to a reconciliation job, follow the process outlined in the
following steps.
Each step represents a procedure. In the sections that relate to this process, the
graphic is repeated, and the related step is highlighted.

Step 1 Create a Merge activity and select source and production sets to merge. See
“Creating a Merge activity” on page 111.

NOTE
Activities cannot be reused between jobs. If you delete a job, all its activities are
also deleted.

Step 2 Create Precedence Association Sets, which have the following parts.

! Define precedence values for a dataset and its classes and attributes. See
“Creating a Precedence set” on page 115.
! Assign a Precedence set to each dataset participating in the Merge activity. See
“Creating a Precedence Association” on page 118.

Step 3 Optionally, create a Qualification set to define which instances participate in the
Merge activity. See “Using Qualification Sets” on page 94.

Creating a Merge activity


A Merge activity merges identified CIs in a source datasets into a single set of CI
data, typically the production dataset or an intermediate dataset.

IMPORTANT
Do not merge one source dataset into more than one target dataset. To merge to
two target datasets, create two merge activities—one to merge the source dataset
to an intermediate target dataset and then a second job to merge the first target
dataset into another target dataset, such as BMC.ASSET.

Best practices
! To avoid redundant processing, make all Merge activities incremental by
clearing the Include Unchanged CIs option.
! Use only one source dataset for each Merge activity, and pair the Identify and
Merge activities for each source dataset in the job. For example, identify and
merge dataset 1, then identify and merge dataset 2, and so on. This ensures that
attributes required for Identify activities are merged into the target dataset in the
right order.
! Instead of merging multiple discovery sources directly into your production
dataset, merge them into a “consolidated discovery” dataset first. You can
compare this against your production dataset, and use the results to generate
change requests or exception reports for any discrepancies.

Chapter 4 Identify and Merge activities 111


BMC Atrium CMDB 7.6.04

! If your reconciliation job runs in a batch processing window and performance is


a concern, set Merge Order to By class in separate transactions, which is the
fastest processing option. If the job must run during production hours, use the
Related CIs in separate transactions option, which commits things like systems
and their components in one atomic transaction. This is slower but safer for
production systems.
Before you begin
! Check whether you can use a Standard Job.
! Make sure the Production Dataset has no orphan components, such as
BMC_Processor CIs all named CPU0 with no host computer system to qualify
them. Otherwise, the reconciliation job has poor performance because the
orphan components are returned in one query result when trying to identify
each component CI.

! To create a Merge activity


1 In the Reconciliation console, click Create Job or open an existing reconciliation
job.

TIP
Create and edit a Standard Job so that you can take advantage of the standard rules
as much as possible. For more about Standard Jobs and their defaults, see
“Standard identification and merge rules” on page 146.

See “Creating and editing a customized reconciliation job” on page 89.


2 In the Activities area, click New to define a new Merge activity.
3 For Type, select Merge.
4 Complete the following fields:

Name Type a unique name.


The name cannot contain any characters that are
not allowed in file names for the operating system
of your server. For example, on a Windows server,
your job name cannot contain the following
characters: \ / : * ? “ < > |
Namespace Select a namespace using the controls with the
Namespace field. Only classes in the selected
namespaces can participate in the activity.
For more information, see “Dynamic dataset and
qualification values” on page 83.
Status Select Active. You can later disable the activity by
changing this to Inactive.

112 Normalization and Reconciliation Guide


Merging datasets

Continue on Error Define whether the job continues if the activity has
an error.
Checked—A job containing this activity continues
to run if an error occurs in this activity.
Unchecked—A job containing this activity
terminates if an error occurs in this activity.
Sequence Specify in what order you want this activity to run
relative to other activities in a job. For example, if
this activity has a value of 2 it runs before an
activity with a value of 3. The sequence can be 0 to
1000, inclusive.
Qualification Select a qualification that restricts the classes and
instances used in the activity.
If the Use all classes and instances is unchecked,
select from the Qualification Set. list
To create a Qualification Set, click New/Edit
Qualification Set. For more information, see
“Using Qualification Sets” on page 94.
Name Type a unique name.
The name cannot contain any characters that are
not allowed in file names for the operating system
of your server. For example, on a Windows server,
your job name cannot contain the following
characters: \ / : * ? “ < > |

5 Define the datasets that are part of the data merge.


a From the Dataset list of the New Activity, select a source dataset for the merge.
b From the Target Dataset list, select the dataset into which to merge the data.
6 If you did not select Use standard rules for participating datasets for the job, select
a Precedence Association Set.
To create a set, see “Defining a Precedence Association Set” on page 114
If you use the Standard Rules, you do not need to create a Precedence Association
Set. For more information, see “Standard identification and merge rules” on
page 146.
7 In the Additional Parameter area, select the status for Include Unchanged CIs.
! Checked—Merge all attributes even if their value has not changed in the source
dataset since the last time this Merge activity ran.
! Unchecked—Merge only the attributes that changed value in the source dataset
since the last run and instances that were created in the source dataset since the
last run. To improve performance, you should usually select this option. It is
also known as incremental merge.

Chapter 4 Identify and Merge activities 113


BMC Atrium CMDB 7.6.04

8 From the Merge Order list, select one of the following options:

By class in separate Merges only the instances specified by the attached


transactions Qualification Set (default option).
Related CIs in separate Merges instances specified by the attached
transactions Qualification Set, destination CIs in weak
relationships with those instances, and the
relationships themselves.
This option treats composite objects as one entity.
For example, if your Qualification set selects a
computer system instance, it and its components
would all be merged. The individual CIs and
relationships are merged in separate database
transactions.
Related CIs in one Merges composite objects as one database
transaction transaction. If an error occurs with any instance in
a composite object, all instances in that object are
rolled back.
This option provides maximum data integrity in
the event of an error, but takes much longer to
complete than Related CIs in separate transactions.

9 Save the activity.


10 Save the job.
When you have added activities to a job, you can execute the job manually or with
a schedule. See “Starting and stopping a job” on page 79.

Defining a Precedence Association Set


To merge instances that have been identified as matches, you must use a
Precedence Association set.
A Precedence Association set has the following parts:
! Precedence Set—Defines precedence values at the dataset, class, and attribute
levels. Precedence Sets can be used with multiple datasets. For more
information, see “Creating a Precedence set” on page 115.
! Precedence Association—Links a source dataset with a Precedence Set. For
more information, see “Creating a Precedence Association” on page 118.

114 Normalization and Reconciliation Guide


Merging datasets

Creating a Precedence set


A Precedence set defines the precedence value for a dataset in a Merge activity.
Each source dataset is paired with one, and that Precedence set serves as the
default precedence value for all classes and attributes in that dataset. The highest
value among all source datasets determines the data that is written to the target
dataset.
Within a Precedence Set, you can specify individual Precedences for either a class
or an attribute, assigning them a precedence value higher or lower than that of the
dataset. This prevents one source dataset from providing all the data in a merge.
Class-level Precedences apply to all attributes of the class.
When the Merge activity is run, the precedence value specified at the most
granular level is used for a given attribute.

WARNING
If used incorrectly, the Defer if Null option can cause instances that cannot be
deleted. For information about this, see “Handling NULL values” on page 110.

Best practices
! Use the highest class level possible to take advantage of inheritance.
! A Precedence set does not have to be used exclusively with one dataset. It can
be paired with different datasets in different activities. Likewise, a given dataset
can be paired with different Precedence Association Sets in different activities.
Therefore, design your Precedence Association Sets for flexibility. You need
fewer of them.

Chapter 4 Identify and Merge activities 115


BMC Atrium CMDB 7.6.04

Before you begin


Check that you cannot use the standard rules for merge precedence. See “Standard
identification and merge rules” on page 146.

! To create a Precedence Set


1 In the Precedence area for a Merge activity, click the ... button.
2 In the Precedence Association Set Editor, click Create Precedence Set.
3 In the New/Edit Precedence Set area, enter the following required Precedence set
information.

Set Type a unique name for the Precedence Set.


The name cannot contain any characters that are
not allowed in file names for the operating system
of your server. For example, on a Windows server,
your job name cannot contain the following
characters: \ / : * ? “ < > |
Namespace Select a namespace using the controls with the
Namespace field. Only classes in the selected
namespaces can participate in the activity.
For more information, see “Dynamic dataset and
qualification values” on page 83.
Defer If Null Define how to handle empty, or NULL, attributes in
the dataset associated with the Precedence Set.
The Defer if Null setting at the Precedence set level
is overridden by the same setting in any
Precedences defined for the set.
Checked—If the value of an attribute in this dataset
is NULL and this precedence value is the highest,
defer to the dataset with the next highest
precedence value. Do not write NULL to the
production dataset.
Unchecked—Apply the precedence value for this
dataset regardless of whether an attribute value is
NULL.

116 Normalization and Reconciliation Guide


Merging datasets

Append to Lists Set whether list values from all source datasets are
appended to list-formatted Character attributes in
the production dataset. Duplicate entries are not
appended to the list.
A list-formatted attribute is a Character attribute
that is intended to hold a list of values according to
a specified format.
The Append to Lists setting at the Precedence set
level is overridden by the same setting in any
Precedences defined for the set.
Checked—If this Precedence set has the highest
precedence value for a list-formatted Character
attribute in a Merge activity, the list values from all
source datasets are appended to the list in the
target dataset. If some other set has the highest
precedence value for the attribute, the Append To
Lists option for that set determines whether values
are appended.
Unchecked—If this Precedence set has the highest
precedence value for a list-formatted Character
attribute in a Merge activity, the list values from
the source dataset paired with this set overwrite
the list in the production dataset.
Precedence Value Enter or select a value for the dataset that uses this
Precedence Set. The weight is 0 to 1000, inclusive,
with higher numbers meaning a higher priority.
The Precedence Value is overridden by the value in
any Precedences defined for the set.
Require Explicit Define whether to define precedences for all
Precedences classes or attributes.
Select to require explicit Precedence entries for
classes and attributes. You must add precedence
rules for the classes and attributes.
Deselect to apply this Precedence set to all classes
and attributes for which a Precedence is not
defined.

4 Click Add Rule.


5 Enter the following required Precedence rule information:

Status Select Active. You can later disable the activity by


changing this to Inactive.
Class Select the class to which this Precedence applies.

Chapter 4 Identify and Merge activities 117


BMC Atrium CMDB 7.6.04

Namespace Select a namespace using the controls with the


Namespace field. Only classes in the selected
namespaces can participate in the activity.
For more information, see “Dynamic dataset and
qualification values” on page 83.
Attribute If the Precedence is for an attribute, select it from
the Attribute list.
Precedence Type or select a value from 0 to 1000, inclusive.
Data with higher numbers have a higher priority.

6 Click OK to add the rule.


7 Click Save to save the Precedence Set, and then click Close.
You can now relate the Precedence set to a dataset by creating a Precedence
Association.

Creating a Precedence Association


A Precedence Association links a dataset with a Precedence set and is reusable
among Merge activities.
Each Merge activity is linked to one Precedence Association that determines the
precedence for each dataset that participates in the activity.

! To create a Precedence Association


1 In the Precedence area of the Merge activity, click the ... button.
2 In the Precedence Association Editor, enter a name for the association.
3 Click Add Precedence Association.
4 From the Dataset list, select a source dataset.
5 From the Precedence Set list, select an existing Precedence Set.
6 Type or select an Order for this pairing within the set.
If there is a tie for the highest precedence value on any attribute between
Precedence Sets, the dataset and set with the higher Order take precedence in
merges.
7 Click Save.
Repeat step 4 through step 7 for each dataset and Precedence set that you want to
pair together in this set.
8 In the Precedence Association Editor, click Save, and then click Close.

118 Normalization and Reconciliation Guide


Chapter

5 Additional reconciliation
activities

Each reconciliation job must have at least one activity. Each activity has
components that must be defined.
The following topics are provided:
! Overview of additional activities (page 120)
! Deleting data (page 122)
! Purging soft-deleted data (page 124)
! Comparing datasets (page 126)
! Executing workflow against compared instances (page 128)
! Copying datasets (page 131)
! Renaming datasets (page 137)
! Executing reconciliation jobs (page 139)

Chapter 5 Additional reconciliation activities 119


BMC Atrium CMDB 7.6.04

Overview of additional activities


Most reconciliation jobs use only Identify and Merge activities. However, you can
include other activities in a reconciliation job.

Figure 5-1: Reconciliation job with additional activities

Reconciliation Job

Identify Compare

Identification Workflow
Ruleset Execution Ruleset

Rules Rules

Qualification Set
Qualifications

Copy Purge

Precedence Association Set


Rename Delete Precedence Dataset

Precedence Dataset

Execute Merge Precedence Dataset

Compare activity
The Compare activity operates against instances in two datasets and either
produces a report or executes workflow based on the comparison results.
The report shows those instances that appear in only one of the datasets and details
the differences between instances that appear in both.
The Compare activity lets you compare an expected configuration against an
actual one, which you could use for more than one purpose. You might use
comparison to alert you that something has changed in a configuration that you
expected to remain static. Alternatively, if you have a change request in progress,
you might use comparison to verify that the configuration reaches its expected
new state.
Only instances that have been given an identity can be compared, and they are
compared only against other instances with the same identity. If you choose to
execute workflow as a result of the comparison instead of creating a report, that
workflow can execute against instances from either dataset but not both.

120 Normalization and Reconciliation Guide


Overview of additional activities

For more information, see “Workflow Execution rulesets” on page 122.

NOTE
An instance must be identified before it can be compared or merged.

Rename activity
You use the Rename activity to rename a dataset. Renaming a dataset does not
change the DatasetId, so all reconciliation definitions that include the dataset still
work with the new name.

Copy activity
You use the Copy activity to copy instances from one dataset to another. You can
set options to determine which relationships and related CIs are copied along with
the selected instances.

Delete activity
You use the Delete activity to delete instances from one or more datasets. This
activity does not delete the dataset itself.

Purge activity
You use the Purge activity to delete instances that have been marked as deleted
from one or more datasets. You can opt to have it verify that each instance has also
been marked as deleted in another dataset before deleting it. This option is useful
when you are purging data from a discovery dataset but only want to purge
instances that are marked as deleted in your production dataset.

Execute activity
You use the Execute activity to execute a reconciliation job. This activity is useful
when you want to execute one reconciliation job immediately before or after
another.

Qualification sets
For most reconciliation activities, you can specify a qualification set for the
purpose of restricting the instances that participate in an activity. Qualification
sets, which are reusable between activities, are qualification rules that each select
certain attribute values. Any instance that matches at least one qualification in a set
can participate in an activity that specifies the qualification set.
For example, you might create a qualification set that selects instances that were
discovered within the last 24 hours and have the domain “Frankfurt” if your
company just opened a Frankfurt office and you are reconciling its discovered CIs
for the first time.

Chapter 5 Additional reconciliation activities 121


BMC Atrium CMDB 7.6.04

Workflow Execution rulesets


You can use the results of a Compare activity to trigger an BMC Remedy
AR System workflow against the instances being compared instead of generating
a comparison report.
For a given Compare activity, you can specify a Workflow Execution ruleset that
can contain multiple Workflow Execution rules. Each rule operates against only
one BMC Atrium class and contains a qualification specifying criteria that executes
an action.
The qualification can compare attributes from both datasets. When the Compare
activity runs and the qualification is met, a code that you created for the rule is
written to the CompareActionCode attribute in the instance that you specify.

Deleting data
You can delete instances from one or more datasets using a Delete activity. The
Delete activity performs a physical delete, not a soft delete, and deletes instances
regardless of whether they are soft deleted.
You optionally restrict the instances to be deleted by using a Qualification Set. You
can also choose to delete only identified instances.
The Delete activity is similar to the Purge activity. For information about the Purge
activity, see “Purging soft-deleted data” on page 124.

! To create a Delete activity


1 In the Reconciliation console, click Create Job or open an exist reconciliation job.
See “Creating and editing a customized reconciliation job” on page 89.
2 In the Activities area, click New to define a new activity.
3 For Type, select Delete.
4 Complete the following fields:

Table 5-1: Delete activity parameters


Parameter Description
Name Type a unique name.
The name cannot contain any characters that are not allowed in file
names for the operating system of your server. For example, on a
Windows server, your job name cannot contain the following
characters: \ / : * ? “ < > |
Namespace Select a namespace using the controls with the Namespace field.
Only classes in the selected namespaces can participate in the
activity.
For more information, see “Dynamic dataset and qualification
values” on page 83.

122 Normalization and Reconciliation Guide


Deleting data

Table 5-1: Delete activity parameters (Continued)


Parameter Description
Status Select Active. You can later disable the activity by changing this to
Inactive.
Continue on Error Define whether the job continues if the activity has an error.
! Checked—A job containing this activity continues to run if an
error occurs in this activity.
! Unchecked—A job containing this activity terminates if an error
occurs in this activity.
Sequence Specify in what order you want this activity to run relative to other
activities in a job. For example, if this activity has a value of 2 it runs
before an activity with a value of 3. The sequence can be 0 to 1000,
inclusive.

5 From the Dataset list, select the datasets from which you want to delete data.
6 In the Additional Parameters area, select one of the following options.
! Identified & Unidentified—Both identified and unidentified instances are
deleted.
! Identified—Only identified instances are deleted.
! Unidentified—Only unidentified instances are deleted.
7 In the Qualification area, define which classes and instances to compare.
a For Use all classes and instances, select to enable or disable.
! Checked—Compares all classes and instances without restrictions.
! Unchecked—Allows you to restrict the Compare activity using a qualification
set.
b From the Qualification Set list, select a qualification set.
c To create a qualification set, click New/Edit Qualification Set. For more
information, see “Using Qualification Sets” on page 94.
8 To save the activity, click Done.
9 In the Job Editor, click Save.
When you have added activities to a job, you can execute the job manually or with
a schedule. See “Starting and stopping a job” on page 79.

Chapter 5 Additional reconciliation activities 123


BMC Atrium CMDB 7.6.04

Purging soft-deleted data


You can use a Purge activity to physically delete only instances that have been
marked as deleted, or soft deleted. You can optionally further restrict the instances
to be purged by using a Qualification Set.
The Purge activity is similar to the Delete activity, which removes instances
regardless of whether they are soft deleted. For information about the Delete
activity, see “Deleting data” on page 122.
Best practices
! If you are purging data from datasets that also serve as source datasets in a
Merge activity, you can choose to only delete instances that have also been soft
deleted in the target dataset. This helps prevent “orphan” instances in the target
dataset that would never get marked as deleted because no source ever merges
with them.
! To ensure that users have a chance to review soft-deleted records, make Purge
activities part of a stand-alone job that is executed manually or by workflow
events.

! To create a Purge activity


1 In the Reconciliation console, click Create Job or open an exist reconciliation job.
See “Creating and editing a customized reconciliation job” on page 89.
2 In the Activities area, click New to define a new activity.
3 For Type, select Purge.
4 Complete the following fields:

Name Type a unique name.


The name cannot contain any characters that are
not allowed in file names for the operating system
of your server. For example, on a Windows server,
your job name cannot contain the following
characters: \ / : * ? “ < > |
Namespace Select a namespace using the controls with the
Namespace field. Only classes in the selected
namespaces can participate in the activity.
For more information, see “Dynamic dataset and
qualification values” on page 83.
Status Select Active. You can later disable the activity by
changing this to Inactive.

124 Normalization and Reconciliation Guide


Purging soft-deleted data

Continue on Error Define whether the job continues if the activity has
an error.
Checked—A job containing this activity continues
to run if an error occurs in this activity.
Unchecked—A job containing this activity
terminates if an error occurs in this activity.
Sequence Specify in what order you want this activity to run
relative to other activities in a job. For example, if
this activity has a value of 2 it runs before an
activity with a value of 3. The sequence can be 0 to
1000, inclusive.

5 From the Datasets list, select a dataset from which you want to purge data.
6 From the Purge Instances list, select one of the following options.
! Identified & Unidentified—Both identified and unidentified instances are
purged.
! Identified—Only identified instances are purged.
! Unidentified—Only unidentified instances are purged.
7 For Verify in Target Dataset, select one of the following values:
! Checked—An identified instance is only purged from one of the datasets in the
Datasets table if an instance with the same reconciliation identity in the Target
Dataset is also marked as deleted. Unidentified instances are deleted.
! Unchecked—The target dataset is ignored, and both identified and unidentified
instances are deleted.
This list is disabled if you selected Unidentified in the previous step because there
is no way to verify an unidentified instance across datasets.
8 If Verify in Target Dataset is enabled, select a dataset against which to validate the
instances to be purged.
9 To save the activity, click Done.
10 In the Job Editor, click Save.
When you have added activities to a job, you can execute the job manually or with
a schedule. See “Starting and stopping a job” on page 79.

Chapter 5 Additional reconciliation activities 125


BMC Atrium CMDB 7.6.04

Comparing datasets
You can compare identified data in two datasets, which is useful for things such as
validating expected data versus discovered data or testing a new reconciliation
process.
You can create a Compare activity to compare the data between two datasets. This
activity either creates a comparison report detailing the differences between
datasets or executes workflow based on values in compared instances. For more
information about executing workflow, see “Executing workflow against
compared instances” on page 128.
A comparison report displays instances present in only one of the two datasets,
and also shows differences between the attributes of instances that are in both
datasets. The report is an attachment to an Information event.
Only instances that have reconciliation identities are compared. For more
information about identification, see “Identifying data across datasets” on page 97.
You can also exclude individual attributes from being compared.

Creating a Compare activity


A Compare activity compares instances in one or more datasets, excluding any
classes, instances, or attributes you specify.
Before you begin
! If needed, create a qualification ruleset to restrict the instances and classes that
are compared.
! If needed, create a Workflow Execution ruleset.

! To create a Compare activity


1 In the Reconciliation console, click Create Job or open an exist reconciliation job.
See “Creating and editing a customized reconciliation job” on page 89.
2 In the Activities area, click New to define a new Compare activity.
3 For Type, select Compare.

126 Normalization and Reconciliation Guide


Comparing datasets

4 Complete the following fields:

Name Type a unique name.


The name cannot contain any characters that are
not allowed in file names for the operating system
of your server. For example, on a Windows server,
your job name cannot contain the following
characters: \ / : * ? “ < > |
Namespace Select a namespace using the controls with the
Namespace field. Only classes in the selected
namespaces can participate in the activity.
For more information, see “Dynamic dataset and
qualification values” on page 83.
Status Select Active. You can later disable the activity by
changing this to Inactive.
Continue on Error Define whether the job continues if the activity has
an error.
Checked—A job containing this activity continues
to run if an error occurs in this activity.
Unchecked—A job containing this activity
terminates if an error occurs in this activity.
Sequence Specify in what order you want this activity to run
relative to other activities in a job. For example, if
this activity has a value of 2 it runs before an
activity with a value of 3. The sequence can be 0 to
1000, inclusive.

5 From the Dataset 1 and Dataset 2 lists, select the datasets to compare.
6 In the Qualification area, define which classes and instances to compare.
a For Use all classes and instances, select to enable or disable.
! Checked—Compares all classes and instances without restrictions.
! Unchecked—Allows you to restrict the Compare activity using a qualification
set.
b From the Qualification Set list, select a qualification set.
c To create a qualification set, click New/Edit Qualification Set. For more
information, see “Using Qualification Sets” on page 94.

Chapter 5 Additional reconciliation activities 127


BMC Atrium CMDB 7.6.04

7 To execute a workflow from this activity instead of generating comparison reports,


select from the Workflow Execution Ruleset list.
The ruleset specifies criteria for running workflow based on results of the
comparison.

NOTE
If you select a Workflow Execution ruleset, no comparison report is generated by
this activity. A Compare activity can either generate reports or execute workflow.

To create a Workflow Execution ruleset, click New/Edit Workflow Execution Set.


For more information, see “Executing workflow against compared instances” on
page 128.
8 To exclude attributes from being compared, click Add Rule in the Exclusion Rules
table. If not, skip to step 9.
a From the Class list, select the class containing the attribute to exclude from the
comparison.
b From the Attribute list, select the attribute to exclude.
c Click Save, and then click Close. The Exclusion rule appears in the Add
Exclusion Rules table.
d Repeat step a through step c for each attribute to exclude.
9 Click Done.

Executing workflow against compared


instances
You can use the results of a Compare activity to trigger BMC Remedy AR System
workflow against the instances being compared instead of generating a
comparison report.
For a given Compare activity, you can specify a Workflow Execution ruleset that
can contain multiple Workflow Execution rules. Each rule operates against only
one BMC Atrium class, and contains a qualification specifying criteria that
executes an action.
The qualification can compare attributes from both datasets. When the Compare
activity runs and the qualification is met, a code you created for the rule is written
to the CompareActionCode attribute in the instance you specify, either in the left
dataset or the right dataset.
All BMC Atrium class forms have a preinstalled filter at execution order 0 named
OBJSTR:Instance_REEscapeToCompareFilters that executes when the
CompareActionCode attribute is changed. This filter skips over other workflow to
execution order 1000, ensuring that any filters not related to Compare activities is
skipped.

128 Normalization and Reconciliation Guide


Executing workflow against compared instances

WARNING
Do not modify the OBJSTR:Instance_REEscapeToCompareFilters filter, and do not
create any other filters on class forms at execution order 0.

You must create a filter at execution order 1000 that performs the workflow you
want for this class. If the necessary workflow can’t be contained in one filter, you
can use the filter at execution order 1000 to launch a filter guide containing
multiple filters.

NOTE
You do not need a filter to create a Compare activity or a reconciliation job that
includes it. You only need the filter to create a Workflow Execution rule for that
activity. For information about creating a Compare activity, see “Creating a
Compare activity” on page 126.

You can specify multiple Workflow Execution rules against a given class, each
with different qualifications. If you do this, you should have the same number of
filters at execution order 1000, each matching a particular action code and
performing the appropriate filter actions.

Creating a Workflow Execution ruleset


Use the following procedure to execute a workflow. After you create the Workflow
Execution ruleset, you must use BMC Remedy Developer Studio to create a filter.
Best practices
Because each Workflow Execution rule queries the database for each instance
being compared, it can result in slower performance, especially when run against
a large number of instances. Avoid creating a large number of Workflow Execution
rules on a class with a large number of instances to compare.

! To define a Workflow Execution ruleset in a Compare activity


1 In the Reconciliation console, create or edit a Compare activity for a reconciliation
job.
See “Comparing datasets” on page 126.
2 Enable the Use Workflow Execution Group option.
3 To create or edit a Workflow Execution ruleset, click the ... button.
4 In the Set Editor window, complete the following fields.
! Set—Type a unique name for the Workflow Execution ruleset. The name cannot
contain any characters that are not allowed in file names for the operating
system of your server. For example, on a Windows server, your job name cannot
contain the following characters: \ / : * ? “ < > |
! Namespace—Select a namespace using the controls with the Namespace field.
Only classes in the selected namespaces can participate in the activity.
5 Click Add Rule, or select a rule and click Edit Rule.

Chapter 5 Additional reconciliation activities 129


BMC Atrium CMDB 7.6.04

6 In the New/Edit Rule area, specify the following parameters.

Class Specifies the single class against which the rule


operates; when building the Qualification, you can
use attributes from only this class.
Execution Side Determines whether the Execution Code is written
to the instance in the Left or Right dataset.
Left refers to the Dataset 1 specified for a Compare
activity, and Right refers to Dataset 2.
Execution Code Specifies the unique string that is written to the
CompareActionCode attribute when the
Qualification is met; has a maximum of 128
characters long.
Execution Order Determines when this rule is executed in relation to
the other rules in this set.
Qualification Causes this rule to execute workflow.
To use an attribute from the Left dataset, enclose it
in single quotes ('). To use an attribute from the
Right dataset, enclose it in dollar signs ($). For
example, the qualification to find a CI where the
instance in Dataset 1 has an earlier installation date
than the instance in Dataset 2 is as follows:
'InstallationDate' < $InstallationDate$
Click Advanced Qualification to build it
interactively. For more information about the
Advanced Qualification Builder, see “Relating
datasets and Identification rulesets” on page 104.

7 Click OK.
8 In the New/Edit Workflow Execution Set area, click Save and then click Close.
9 To save the activity, click Done.
10 In the Job Editor, click Save.
11 In BMC Remedy Developer Studio, create one filter for each Workflow Execution
rule that you created.
The filters must have these characteristics:
! Execution order—1000
! Form Name—The join form for the class used in your Workflow Execution rule.
For example, if the rule operates on the BMC_ComputerSystem class, select the
BMC.CORE:BMC_ComputerSystem form.
! Execute On—Modify

130 Normalization and Reconciliation Guide


Copying datasets

! Run If—'CompareActionCode' = ExecutionCode


ExecutionCode represents the
value that you typed in step 6 and is different for
every Workflow Execution rule you created.
! If Actions—The filter actions that should be performed for a particular
Execution Code or, if one filter cannot encompass this workflow, a Call Guide
action to call a filter guide that contains appropriate filters.
For your new Workflow Execution ruleset to take effect, you must attach it to one
or more Compare activities. For more information, see “Creating a Compare
activity” on page 126.

Copying datasets
You can copy instances from one dataset to another. You might do this to create
baselines, snapshots, archives, future states, or other types of datasets.
The Copy activity has interdependent options. Table 5-3 on page 133 shows the
Copy activity’s behavior for each possible combination of options. The options are:
! Copy Relationships—Determines whether to restore direct relationships to
instances in the target dataset. This means that when a copied CI is a member of
a relationship in the source dataset, and the other member exists in the target
dataset without the relationship, the relationship instance is copied to restore
the connection between the CIs in the target dataset. The other member is not
copied, and the action is not recursive.
A setting of Copy All restores direct relationships, and a setting of By Qualifier
does not.
Table 5-2 describes situations for when to use the Copy Relationship settings.

Table 5-2: Conditions for Copy Relationship settings


If . . . Set Copy Relationships to Note
You are not using a By Qualifier Using Copy All can cause the
Qualification Set. job to take longer because it
copies the entire dataset.

Chapter 5 Additional reconciliation activities 131


BMC Atrium CMDB 7.6.04

Table 5-2: Conditions for Copy Relationship settings (Continued)


If . . . Set Copy Relationships to Note
! You are using a By Qualifier
Qualification Set.
! You want only
weak
relationships and
relationships that
match the
Qualification set to
be copied.
! You are using a Copy All ! This is a time and CPU
Qualification Set. intensive process.
! You want to copy ! After the Job copies all CIs in
the CIs specified the Qualification Set, it
by the performs a GraphQuery API
qualification set, call against each CI that was
plus all related copied to find and copy the
CIs. relationships over.

! Collision Resolution—Determines whether to overwrite matching instances in


the target dataset. Instance matching is done by reconciliation identity, so
unidentified instances in the source dataset do not cause a collision with
instances in the target dataset, and are therefore copied even if you select
Display Error. This can overwrite instances in the source dataset. You can
prevent it by selecting Yes for the Identity Required option.
A setting of Overwrite overwrites matching instances, and a setting of Display
Error writes an error message to the Reconciliation Engine log instead.
! Include Child CIs—Determines whether to copy composite objects. This means
that where the CI included in the Qualification set is the source member of a
weak relationship, the destination member and the relationship between them
are also copied. The action is recursive so that all weak relationships and their
members below the original CI are copied. If a copied CI has weak relationships
below it in the target dataset but not in the source dataset, those relationships
and their members are marked as deleted in the target dataset.
A setting of Yes copies composite objects, and a setting of No does not.
! Identity Required—Determines whether to copy instances that have not been
given a reconciliation identity. This option overrides the others: if you specify
Yes, an instance with no identity is not copied, regardless of whether any other
option you specified would cause it to be copied.
A setting of Yes copies only identified instances, and a setting of No also copies
unidentified instances.

132 Normalization and Reconciliation Guide


Copying datasets

Table 5-3 describes the behavior of the Copy activity for each combination of
options.

Table 5-3: Option combinations for Copy activity


Settings used Behavior
Copy Relationships: By Qualifier Only instances with a reconciliation identity are
Collision Resolution: Overwrite copied, and they replace existing instances. Only
CIs and relationships in the Qualification set are
Include Child CIs: No
copied.
Identity Required: Yes
Copy Relationships: Copy All Only instances with a reconciliation identity are
Collision Resolution: Overwrite copied, and they replace existing instances. In
addition to instances in the Qualification Set, the
Include Child CIs: No
copy includes relationships to copied CIs where
Identity Required: Yes the other member exists in the target dataset.
Copy Relationships: By Qualifier Only instances with a reconciliation identity are
Collision Resolution: Display Error copied, unless they match existing instances, in
which case an error is written. Only CIs and
Include Child CIs: No
relationships in the Qualification set are copied.
Identity Required: Yes
Copy Relationships: Copy All Only instances with a reconciliation identity are
Collision Resolution: Display Error copied, unless they match existing instances, in
which case an error is written. In addition to
Include Child CIs: No
instances in the Qualification Set, the copy
Identity Required: Yes includes relationships to copied CIs where the
other member exists in the target dataset.
Copy Relationships: By Qualifier Only instances with a reconciliation identity are
Collision Resolution: Overwrite copied, and they replace existing instances. In
addition to instances in the Qualification Set, the
Include Child CIs: Yes
copy includes all weak relationships and CIs
Identity Required: Yes below them.
Copy Relationships: Copy All Only instances with a reconciliation identity are
Collision Resolution: Overwrite copied, and they replace existing instances. In
addition to instances in the Qualification Set, the
Include Child CIs: Yes
copy includes all weak relationships and CIs
Identity Required: Yes below them, and relationships to copied CIs
where the other member exists in the target
dataset.
Copy Relationships: By Qualifier Only instances with a reconciliation identity are
Collision Resolution: Display Error copied, unless they match existing instances, in
which case an error is written. In addition to
Include Child CIs: Yes
instances in the Qualification Set, the copy
Identity Required: Yes includes all weak relationships and CIs below
them.
Copy Relationships: Copy All Only instances with a reconciliation identity are
Collision Resolution: Display Error copied, unless they match existing instances, in
which case an error is written. In addition to
Include Child CIs: Yes
instances in the Qualification Set, the copy
Identity Required: Yes includes all weak relationships and CIs below
them, and relationships to copied CIs where the
other member exists in the target dataset.

Chapter 5 Additional reconciliation activities 133


BMC Atrium CMDB 7.6.04

Table 5-3: Option combinations for Copy activity (Continued)


Settings used Behavior
Copy Relationships: By Qualifier Instances with and without a reconciliation
Collision Resolution: Overwrite identity are copied, and they replace existing
instances. No instances beyond those in the
Include Child CIs: No
Qualification set are copied.
Identity Required: No
Copy Relationships: Copy All Instances with and without a reconciliation
Collision Resolution: Overwrite identity are copied, and they replace existing
instances. In addition to instances in the
Include Child CIs: No
Qualification Set, the copy includes relationships
Identity Required: No to copied CIs where the other member exists in
the target dataset.
Copy Relationships: By Qualifier Instances with and without a reconciliation
Collision Resolution: Display Error identity are copied, except identified instances
that match existing instances, in which case an
Include Child CIs: No
error is written. No instances beyond those in the
Identity Required: No Qualification set are copied.
Copy Relationships: Copy All Instances with and without a reconciliation
Collision Resolution: Display Error identity are copied, except identified instances
that match existing instances, in which case an
Include Child CIs: No
error is written. In addition to instances in the
Identity Required: No Qualification Set, the copy includes relationships
to copied CIs where the other member exists in
the target dataset.
Copy Relationships: By Qualifier Instances with and without a reconciliation
Collision Resolution: Overwrite identity are copied, and they replace existing
instances. In addition to instances in the
Include Child CIs: Yes
Qualification Set, the copy includes all weak
Identity Required: No relationships and CIs below them.
Copy Relationships: Copy All Instances with and without a reconciliation
Collision Resolution: Overwrite identity are copied, and they replace existing
instances. In addition to instances in the
Include Child CIs: Yes
Qualification Set, the copy includes all weak
Identity Required: No relationships and CIs below them, and
relationships to copied CIs where the other
member exists in the target dataset.

134 Normalization and Reconciliation Guide


Copying datasets

Table 5-3: Option combinations for Copy activity (Continued)


Settings used Behavior
Copy Relationships: By Qualifier Instances with and without a reconciliation
Collision Resolution: Display Error identity are copied, except identified instances
that match existing instances, in which case an
Include Child CIs: Yes
error is written. In addition to instances in the
Identity Required: No Qualification Set, the copy includes all weak
relationships and CIs below them.
Copy Relationships: Copy All Instances with and without a reconciliation
Collision Resolution: Display Error identity are copied, except identified instances
that match existing instances, in which case an
Include Child CIs: Yes
error is written. In addition to instances in the
Identity Required: No Qualification Set, the copy includes all weak
relationships and CIs below them, and
relationships to copied CIs where the other
member exists in the target dataset.

Creating a Copy activity


Use the following procedure to create a Copy activity.
You cannot use a Qualification set with the Copy activity.
Best practices
! Do not use a Copy activity to put data into the production dataset. Use the Copy
activity to create snapshots, baselines, archives or future states of the production
dataset in a regular or overlay dataset.
! Use a Qualification set to get a subset of the source dataset. If you need to copy
the entire dataset, do not select Include Child CIs to avoid the overhead of graph
query during the copy operation.

! To create a Copy activity


1 In the Reconciliation console, click Create Job or open an exist reconciliation job.
See “Creating and editing a customized reconciliation job” on page 89.
2 In the Activities area, click New to define a new Copy activity.
3 For Type, select Copy.

Chapter 5 Additional reconciliation activities 135


BMC Atrium CMDB 7.6.04

4 Complete the following fields:

Name Type a unique name.


The name cannot contain any characters that are
not allowed in file names for the operating system
of your server. For example, on a Windows server,
your job name cannot contain the following
characters: \ / : * ? “ < > |
Namespace Select a namespace using the controls with the
Namespace field. Only classes in the selected
namespaces can participate in the activity.
For more information, see “Dynamic dataset and
qualification values” on page 83.
Status Select Active. You can later disable the activity by
changing this to Inactive.
Continue on Error Define whether the job continues if the activity has
an error.
Checked—A job containing this activity continues
to run if an error occurs in this activity.
Unchecked—A job containing this activity
terminates if an error occurs in this activity.
Sequence Specify in what order you want this activity to run
relative to other activities in a job. For example, if
this activity has a value of 2 it runs before an
activity with a value of 3. The sequence can be 0 to
1000, inclusive.

5 From the Source Dataset and Target Dataset lists, select datasets to use in the
Copy activity.
6 For Copy Relationships, select which relationship instances to copy.
! By Qualifier—Copy only the relationships included in the Qualification Set.
! Copy All—Copy relationships included in the Qualification Set, and also restore
direct relationships to instances in the target dataset.
7 For Collision Resolution, select how to handle matching instances in the source
and target databases.
! Overwrite—Replace the existing instance in the target dataset with the instance
from the source dataset.
! Display Error—Write an error message to the activity log file and not copy the
instance.
8 For Include Child CIs, select whether to copy weak destination CIs.
! Unchecked—Copy only the CIs included in the Qualification Set.

136 Normalization and Reconciliation Guide


Renaming datasets

! Checked—Copy CIs included in the Qualification Set, CIs related as destination


members in a weak relationship, and those relationships. This option preserves
composite objects.
9 For Identity Required, select whether to copy instances without a reconciliation
identity.
! Checked—Copy only identified instances.
! Unchecked—Copy identified and unidentified instances.
10 To save the activity, click Done.
11 In the Job Editor, click Save.
When you have added activities to a job, you can execute the job manually or with
a schedule. See “Starting and stopping a job” on page 79.

Renaming datasets
The Reconciliation Engine works with logical dataset names, each corresponding
to a dataset ID. The dataset ID is what is stored with instance data.
This allows you to rename a dataset without modifying the dataset ID of every
instance in the dataset.
A Rename activity changes only the logical name of the dataset you select. It
retains the old logical name in a new dataset with a GUID as its dataset ID.

IMPORTANT
When you executes rename a dataset, you should manually update all job
definitions from the old name to the new one. Otherwise, the job fails to execute.

For example, if you had a dataset with the name “Scan - Current” and the ID
“Scan01May2006” and used a Rename activity to rename it “Scan - Last Week,”
you would then have two datasets:

Table 5-4: Dataset names and IDs


Dataset name Dataset ID
Scan - Last Week Scan01May2006
Scan - Current OS-B34DA0F996C0438299D3A2C68CF778C3
(Generated GUID)

! To create a Rename activity


1 In the Reconciliation console, click Create Job or open an exist reconciliation job.
See “Creating and editing a customized reconciliation job” on page 89.
2 In the Activities area, click New.
3 For Type, select Rename.

Chapter 5 Additional reconciliation activities 137


BMC Atrium CMDB 7.6.04

4 Complete the following fields:

Name Type a unique name.


The name cannot contain any characters that are
not allowed in file names for the operating system
of your server. For example, on a Windows server,
your job name cannot contain the following
characters: \ / : * ? “ < > |
Namespace Select a namespace using the controls with the
Namespace field. Only classes in the selected
namespaces can participate in the activity.
For more information, see “Dynamic dataset and
qualification values” on page 83.
Status Select Active. You can later disable the activity by
changing this to Inactive.
Continue on Error Define whether the job continues if the activity has
an error.
Checked—A job containing this activity continues
to run if an error occurs in this activity.
Unchecked—A job containing this activity
terminates if an error occurs in this activity.
Sequence Specify in what order you want this activity to run
relative to other activities in a job. For example, if
this activity has a value of 2 it runs before an
activity with a value of 3. The sequence can be 0 to
1000, inclusive.

5 From the Dataset to rename list, select the dataset to rename.


6 In the New Dataset Name field, enter a new name for the selected dataset.
7 Click Done.
8 In the Job Editor, click Save.
When you have added activities to a job, you can execute the job manually or with
a schedule. See “Starting and stopping a job” on page 79.

138 Normalization and Reconciliation Guide


Executing reconciliation jobs

Executing reconciliation jobs


You create an Execute activity to run other reconciliation jobs. A job can contain
multiple Execute activities, allowing you to create “umbrella jobs” that call several
other jobs.
To execute jobs in continuous reconciliation, you can use the BMC Default
Continuous job. For more information, see “The BMC Default Continuous job” on
page 81.

WARNING
Do not use an Execute activity to run the same job of which it is a member. This
creates an endless loop.

! To create an Execute activity


1 In the Reconciliation console, click Create Job or open an existing reconciliation
job.
See “Creating and editing a customized reconciliation job” on page 89.
2 In the Activities area, click New.
3 For Type, select Execute.
4 Complete the following fields:

Name Type a unique name.


The name cannot contain any characters that are
not allowed in file names for the operating system
of your server. For example, on a Windows server,
your job name cannot contain the following
characters: \ / : * ? “ < > |
Namespace Select a namespace using the controls with the
Namespace field. Only classes in the selected
namespaces can participate in the activity.
For more information, see “Dynamic dataset and
qualification values” on page 83.
Status Select Active. You can later disable the activity by
changing this to Inactive.

Chapter 5 Additional reconciliation activities 139


BMC Atrium CMDB 7.6.04

Continue on Error Define whether the job continues if the activity has
an error.
Checked—A job containing this activity continues
to run if an error occurs in this activity.
Unchecked—A job containing this activity
terminates if an error occurs in this activity.
Sequence Specify the order in which to run this activity
relative to other activities in a job. For example, if
this activity has a value of 2, it runs before an
activity with a value of 3. The sequence can be 0 to
1000, inclusive.

5 For Job to Execute, select an existing reconciliation job.


6 To save the activity, click Done.

140 Normalization and Reconciliation Guide


Chapter

6 Reconciliation configuration

This section provides configuration information for functionality available


through the Reconciliation Engine, a component of the BMC Atrium CMDB that
reconciles data from multiple sources and performs other maintenance functions
on datasets.
The following topics are provided:
! Server settings (page 142)
! Assigning Reconciliation Engine permissions (page 142)
! Configuring Reconciliation Engine system parameters (page 143)
! Configuring the deletion of log files for reconciliation jobs (page 145)
! Configuring threads (page 146)
! Standard identification and merge rules (page 146)
! Exporting reconciliation definitions (page 148)
! Importing reconciliation definitions (page 149)

Chapter 6 Reconciliation configuration 141


BMC Atrium CMDB 7.6.04

Server settings
By default, the Reconciliation Engine is installed in the following locations:
! Microsoft Windows—C:\Program Files\BMC
Software\AtriumCore\cmdb\server\bin
! UNIX operating system—/opt/bmc/AtriumCore/serverName/cmdb/
server/bin/
The Reconciliation Engine is managed by armonitor and is stopped and started
with the BMC Remedy AR System server. You can modify your Reconciliation
Engine server configuration and set the number of threads.

Assigning Reconciliation Engine permissions


To configure and use the Reconciliation Engine, you must have the appropriate
assigned permission roles.
For more information assigning BMC Atrium Core permissions, see the BMC
Atrium CMDB 7.6.04 Administrator's Guide.

Table 6-1: Reconciliation Engine permission roles


Name Applications Users with this role can
CMDB RE User REApplicationDeployable ! View jobs, activities, sets, and
rulesets.
! Start and cancel jobs.
CMDB RE REApplicationDeployable ! View, create, modify, and delete
Definitions Admin jobs, activities, sets, and rulesets.
! Start and cancel jobs.
CMDB RE Manual REApplicationDeployable Manually identify instances.
Identification

142 Normalization and Reconciliation Guide


Configuring Reconciliation Engine system parameters

Configuring Reconciliation Engine system


parameters
You can define system parameters for the Reconciliation Engine.

! To modify the Reconciliation Engine system parameters


1 From the Reconciliation console, click Edit Server Configuration.
2 In the Server Configuration Editor, enter values for the following parameters:

Definition Check Interval An expiration, in seconds, of the Reconciliation


(Seconds) Engine’s cache of job definitions. The default is 300.
For example, if you change job, activity,
precedence, or merge definitions, and then run a
job, you might not see the results after the cache
expires. Setting an expiration for the cached
definitions helps to improve performance and
reduce log size.
Polling Interval (Seconds) The polling interval in seconds. The Reconciliation
Engine “sleeps” until the next job is scheduled to
run or for this interval whichever occurs first.
Polling interval is used only when the dispatcher
does not send a signal to the Reconciliation Engine.
The default is 18000 seconds (5 hours).
Continuous Job Interval The execution interval of a continuous job.
(Seconds)
The default value is 1800 seconds (30 minutes). If
you set this value to less than 120 seconds (2
minutes), then the Reconciliation Engine converts
that value to 120 seconds (2 minutes). For more
information, see “Creating a continuous job” on
page 80.

Chapter 6 Reconciliation configuration 143


BMC Atrium CMDB 7.6.04

RPC Socket The BMC Remedy AR System server RPC socket


that the Reconciliation Engine uses for processing.
You can specify only 390698 or 390699, which are
the ports reserved for the Reconciliation Engine.
Because the Reconciliation Engine uses many API
calls for BMC Atrium CMDB, you should use only
those ports reserved for BMC Atrium CMDB and
not ports that BMC Remedy AR System can use.
If you use a port other than the reserved ports, the
Reconciliation Engine displays a warning that the
port in invalid.
This can be used to specify a maximum number of
threads. For more information, see “Configuring
threads” on page 146.
Log File Path Location of log files. The default location is
installDir\Logs.
Logging Level Amount of information to log. The following levels
are available:
Error (1)—Error and warning messages including
context such as instance, class, and dataset IDs.
This level is the default.
Info (3)—All information included in the Error
option plus job name and start and finish times;
activity name and other activity information;
dataset and class being processed; class statistics;
and activity statistics such as the number of records
identified and merged.
Debug (5)—All information included in the Info
option plus trace messages.
Note: When the logging level is set to Error, the
Reconciliation Engine creates a new 0 byte log file for
each run of a reconciliation job, even when the job is
successful. You can choose to configure the deletion of
0 byte log files for individual reconciliation jobs. For
more information, see “Configuring the deletion of
log files for reconciliation jobs” on page 145.

144 Normalization and Reconciliation Guide


Configuring the deletion of log files for reconciliation jobs

Maximum Log File Size When the log file reaches its maximum size, it is
(KB) renamed using the jobNameN file name syntax, and
log messages continue to be written to the original
file, which is now empty. A value of zero indicates
no maximum file size. The default is 300KB.
Look Into Other Datasets Select this option if you have configured two or
for Parallel Continuous more continuous jobs that are running in parallel
Jobs on the same production dataset. When this option
is selected, the continuous jobs run the identify
activity on the source and production datasets that
are configured for the jobs and on all the other
source datasets that merge data in that production
dataset. This ensures that the same Reconciliation
ID is assigned to identical CIs in all the source
datasets and the data integrity is maintained.

Configuring the deletion of log files for


reconciliation jobs
If the logging level is set to Error, the Reconciliation Engine creates a new 0 byte
log file for each run of a reconciliation job, even when the job is successful. You can
configure the deletion of 0 byte log files for individual reconciliation jobs.

! To configure the deletion of the 0 byte log files for a reconciliation job
1 In the Reconciliation console, select a job and click Edit Job.
2 In the Job Editor, enable Delete files on exit.
3 Click Save, and then click Close.
The Reconciliation Engine will delete any 0 byte log files that are created during
runs of this reconciliation job.

Chapter 6 Reconciliation configuration 145


BMC Atrium CMDB 7.6.04

Configuring threads
The Reconciliation Engine is multithreaded, which improves its performance. The
number of threads available to the Reconciliation Engine is determined by settings
for the BMC Remedy AR System server where it is installed.
The BMC Remedy AR System server has Fast and List server queues defined, and
a maximum number of threads is specified for each. By default, the maximum
number of threads for the Reconciliation Engine is the higher of these two
numbers. You can also directly specify a maximum. Use BMC Remedy User to
access the AR System Administration Console to modify the threads.
Best practice
Take advantage of Reconciliation Engine multithreading by breaking up large jobs
into smaller ones and running them concurrently, but limit your number of
concurrent threads to twice the number of CPUs in the server.

Standard identification and merge rules


To simplify creating reconciliation, reconciliation jobs can use standard
identification and merge rules.
These standard rules work with all classes in the Common Data Model (CDM) and
BMC extensions. They identify each class using attributes that typically have
unique values, and they merge based on precedences set for BMC datasets.
Standard reconciliation jobs always use these standard rules, but you can also use
them when you create a custom reconciliation job.
The standard identification rules use BMC.ASSET as the production dataset, and
they assign a priority level to one or more unique attributes for each class. If the
Reconciliation Engine cannot match a CI based on the first attribute, then it uses
the secondary attributes. If a class has no standard identification rule, the
Reconciliation Engine uses the BMC_BaseElement attributes.
For example, the BMC_Software class has unique identifiers which have default
identification priorities. TokenId is the primary attribute used to identify identical
CIs in different datasets. If the Reconciliation Engine cannot find a match among
CI instances using the TokenId attribute, the Reconciliation Engine uses Name,
VersionNumber, and SerialNumber.
Table 6-2: Examples of attribute priorities
Attribute Priority
TokenId 1
Name 2
VersionNumber 2
SerialNumber 2

146 Normalization and Reconciliation Guide


Standard identification and merge rules

Using BMC.ASSET as the production dataset, the standard merge rules assign a
precedence of 100 for each BMC dataset and, for some datasets, set precedences for
specific classes and attributes. For every attribute during a Merge activity, the
Reconciliation Engine compares the most specific precedence from each dataset.
For example, in the BMC Configuration Import dataset, the BMC_Memory class has
a precedence of 800. Because all datasets have a precedence of 100 and no other
dataset has a precedence defined for BMC_Memory, data from BMC Configuration
Import overwrites data from other datasets when merging BMC_Memory instances.

Configuring standard identification rules


You can modify the standard identification rules, or you can add new rules.
For example, if you have created class or attribute, you can add a rule for it. If you
have multiple datasets with the same classes, you can specify that the class
attributes for one dataset has higher precedence than those class attributes in other
datasets.
When you modify the standard identification rules, you change the rules for all
datasets and all jobs that use the standard identification rules.
Before you begin
! Understand how the priority is used in identification rules.
! For any new classes, determine the attributes that uniquely identify instances of
the class.

! To edit or add identification rules


1 From the Reconciliation console, click Standard Rules Editor.
2 In the Identification Rules tab, you can modify existing rules.
a To change the attribute for a class, select an attribute from the Attribute list.
b To change the priority, select a new value from the Priority list.
3 To create a new rule, click Add Rule.
4 For each of the columns, select from the list to define a new identification rule.
5 Click Save.

Configuring standard merge rules


Standard merge rules define precedence values for CDM classes and attributes.
You can modify the standard merge rules, or you can add new rules.
For example, if you have created class or attribute, you can add a precedence for it.
When you modify the standard merge rules, you change the rules for all datasets
and all jobs that use the standard merge rules.

Chapter 6 Reconciliation configuration 147


BMC Atrium CMDB 7.6.04

Before you begin


Understand how precedence values are used in Merge activities.

! To edit or add merge rules


1 From the Reconciliation console, click Standard Rules Editor.
2 In the Merge Rules tab, you can modify existing rules.
a To change the attribute for a class, select an attribute from the Attribute list.
b To change the precedence, select a new value from the Precedence list.
3 To create a new rule, click Add Rule.
4 For each of the columns in the new rule entry, select from the list.
5 Click Save.

Exporting reconciliation definitions


You can export reconciliation definitions from one server and import them on
another server.
The settings are saved in an .arx structure to the clipboard, which you must save
to a text file. You can export two types of information:
! Reconciliation job definitions—You must save each job to a separate file. This
data includes all the settings for the jobs, activities, and qualifications.
! Dataset—For each dataset, you can export the accessibility, account ID, security
settings, dataset type, creation and modification data, normalization status,
identification status, reconciliation ID, and other information.
To import the settings and jobs to a Reconciliation Engine on another server, you
must use the arimport command. For more information, see the BMC Atrium
CMDB 7.6.04 Administrator's Guide.

NOTE
Do not save the file using Microsoft Notepad because it does not save the carriage
returns and line feeds (CR+LF) properly. Use a plain text editor that retains
CR+LF. Otherwise, importing the definitions fails.

! To export reconciliation jobs


1 From the Reconciliation console, click Export.
2 In the Export Jobs tab, select a job.
3 Click Save to Clipboard.
4 In a text editor, paste the copied job settings.
5 Save the file with an .arx extension.

148 Normalization and Reconciliation Guide


Importing reconciliation definitions

! To export reconciliation datasets


1 From the Reconciliation console, click Export.
2 In the Export Dataset Editor tab, select a dataset.
3 Click Save to Clipboard.
4 In a text editor, paste the copied job settings.
5 Save the file with an .arx extension.

Importing reconciliation definitions


You import reconciliation definitions by using the BMC Remedy Data Import
command-line interface (CLI).

NOTE
Before using the CLI on UNIX for the first time, you must add an entry to your
library path. The CLI also has several other options not described in the following
procedure, some of which might be necessary depending on your AR System
server environment. For more information about these topics, see the BMC Remedy
Action Request System 7.6.04 Integration Guide.

! To import reconciliation definitions


1 Open a command prompt.
2 If using Microsoft Windows, change to the directory where BMC Data Import tools
are installed.
The default directory is BMCinstall\AR System\serverName\dataimporttool.
3 Enter the command:
dataimport.bat -x serverName -u userName -p password -a port -o
importFile -l logFile -e 179 -D 4
For importFile, specify the full path to the file containing the exported definitions
from the procedure “Exporting reconciliation definitions” on page 148. Specifying
a log file is optional, but recommended in case there are any errors with the import.
If you are not using portmapper, you can specify the port for the server with the
optional -a parameter.
The -e 179 option enables you to verify whether a definition you are importing
already exists. This check is performed based on the globally unique identifier
(GUID) values. Specifying the -D4 option updates an entry if a match is found. If
no match is found, a new entry is created. For more information about the various
options for the dataimport.bat utility, click the Help menu in BMC Remedy
Developer Studio and search for the command.

Chapter 6 Reconciliation configuration 149


BMC Atrium CMDB 7.6.04

150 Normalization and Reconciliation Guide


Glossary

abstract class AIE service


A class that has attributes but of which no The AIE service obtains the defined data
instances can be created. An abstract class exchange from the Data Exchange application
exists for the purpose of creating an and completes the transfer of data by
organizational layer without a database join. communicating with the adapter specified in
See also data replication. the data exchange definition. The AIE service
account can connect to a BMC Remedy AR System
An entity or party whose data is represented server. It runs as a client to the BMC Remedy
in BMC Atrium Core, and to whom specific AR System server using the BMC Remedy
levels of permission can be granted. AR System application programming
Specifying instance permission by account interface (API).
enables BMC Atrium Core to support AIE User
multitenancy. A BMC Atrium Integration Engine application
activity role. Members can view data mappings, data
An individual reconciliation task that can be exchanges, and configuration and connection
grouped together in a defined sequence to settings. See also AIE Definitions Admin.
form a reconciliation job. You can run an Atrium Explorer
activity only as part of a job, never by itself. A component of BMC Atrium CMDB that
See also Comparison activity, Copy Dataset graphically displays the relationships
activity, Delete Dataset activity, Execute Job between CIs. It can also be embedded in other
activity, Identification activity, Merge activity, BMC Remedy AR System-based applications.
Purge Dataset activity, Rename Dataset activity. attribute
Adapter Development Kit A property or characteristic of a class, such as
The Adapter Development Kit is a software the IP address of a computer system. An
development kit that lets you build your own attribute equates to a column on a database
adapters to interact with BMC Atrium table or a field on a BMC Remedy AR System
Integration Engine. The Adapter Development form.
Kit interface defines a set of C++ objects that attribute permission
are used by the AIE service to manage data Permission to view or change the value in the
exchanges that use these adapters. attribute for any instance, assuming valid
AIE Definitions Admin instance permissions.
A BMC Atrium Integration Engine application attribute substitution
role. Members can view, create, and modify A method of data federation in context that
data mappings and data exchanges, and manage uses placeholders to represent attributes from
the configuration and connection settings. See a linked class. Launching the link triggers the
also AIE User. respective attribute values to be substituted for
the placeholders.

Glossary 151
BMC Atrium CMDB 7.6.04

audit Categories, Types, and Items (CTI)


A logging of attribute values and other A method formerly used for categorizing
information for purposes of tracking the assets in BMC Remedy Asset Management.
history of changes to instance data. An audit is Category, Type, and Item are each an attribute
triggered when the value of one or more on the BMC_BaseElement class, so you can use
specified attributes changes or when the CTIs in BMC Atrium CMDB.
instance is created or deleted. categorization class
base class A class that does not have its own BMC
A class that has no superclass. Remedy AR System form, but stores its
BMC Atrium Core Console instance data in the form of its superclass,
The main user interface of BMC Atrium preventing the need for a database join.
CMDB, accessible from both web and BMC CDM
Remedy User clients. The BMC Atrium Core See Common Data Model (CDM).
Console replaced the CMDB Console. child
BMC Atrium Integration Engine See destination.
A product that enables you to transfer large CI
amounts of data between third-party data See configuration item (CI).
sources and both the BMC Remedy
AR System and BMC Atrium CMDB. CI class
A class that defines a type of configuration item
BMC Atrium Product Catalog (CI), such as a computer system or software
A BMC Remedy AR System application that is application.
part of the BMC Atrium Core solution and
provides data for normalization and CIM
discovery, including storage of product See Common Information Model (CIM).
signatures, and tracks and manages products class
by categorization, life cycle, development Metadata in BMC Atrium CMDB that defines
status, approval status, and other attributes. a type of object, usually a configuration item
bulk functions
(CI) or relationship. Either of these types of
A set of functions you can use to create, class can store data as a regular class,
update, and delete multiple instances in a categorization class, abstract class, or abstract
single call. These functions can manipulate class with data replication. You can apply the
instances of different classes in a single final class and singleton class options to it as
operation. well.
Class Manager
Business Service Management (BSM)
The concept of prioritizing IT efforts to A component of BMC Atrium CMDB where
support the overall goals of the business. you can view, create, modify, and delete the
classes and attributes that make up the data
cardinality model, as well as view a list of subclasses for
The number of members a relationship class can each class.
have on each side. Cardinality can be one to
one, one to many, many to one, or many to class permissions
many. Permission to view instances of a class in the
BMC Atrium CMDB interface or access them
cascading delete with BMC Remedy AR System workflow.
To automatically delete, or mark as deleted
the destination member of a relationship CMDB
when the source member is deleted or See Configuration Management Database
marked. (CMDB).

152 Normalization and Reconciliation Guide


Glossary

CMDB Console cmdbdriver


See BMC Atrium Core Console. A utility that executes BMC Atrium CMDB
CMDB Console Admin C API functions from a command line,
An application role. Members can perform prompting for parameters.
searches from the BMC Atrium Core Console, Common Data Model (CDM)
view, create, and modify federation definitions, The object-oriented, hierarchical set of classes
and perform BMC Atrium Core Console in BMC Atrium CMDB used to represent
administrative tasks. types of CIs and relationships. The CDM is
CMDB Console User based on industry standards such as the
An application role. Members can perform Common Information Model (CIM) and
searches from the BMC Atrium Core Console Microsoft Windows Management
and view federation definitions. Instrumentation.
CMDB Data Change Common Information Model (CIM)
An application role. Members can view, create, A definition of management information
and modify instances if they have row-level developed by the Distributed Management Task
security. Force (DMTF) that facilitates the exchange of
management information between systems.
CMDB Data Change All
An application role. Members can view, create, Comparison activity
and modify instances independent of row-level A Reconciliation Engine activity that compares
security. identified instances between two datasets,
either producing a report that shows the
CMDB Data View differences or executing workflow.
An application role. Members can view
instances if they have row-level security. configuration data
Data about your IT environment, consisting of
CMDB Definitions Admin CIs and relationships.
An application role. Members can view, create,
modify, and delete classes. configuration item (CI)
A physical, logical, or conceptual entity that is
CMDB Definitions Viewer part of your IT environment and has
An application role. Members can view class configurable attributes. Examples include
definitions. computer systems, buildings, employees,
CMDB Extended Data software, and business services. One of the
Related data or CI attributes linked to or from two types of classes in BMC Atrium CMDB.
BMC Atrium CMDB. See also relationship.
CMDB RE Definitions Admin Configuration Management Database (CMDB)
An application role. Members can view, create, A database that stores information about your
modify, and delete reconciliation definitions IT configuration, including both CIs and
and can start and cancel jobs. relationships.
CMDB RE Manual Identification consumer
An application role. Members can identify An application that works with data in BMC
instances manually. Atrium CMDB. It might view the data or
CMDB RE User modify it. See also provider.
An application role. Members can view Copy Dataset activity
reconciliation definitions and can start and A Reconciliation Engine activity that copies
cancel jobs. instances from one dataset to another.

Glossary 153
BMC Atrium CMDB 7.6.04

CTI Definitive Hardware Library (DHL)


See Categories, Types, and Items (CTI). The Definitive Hardware Library (DHL) is a
data exchange subset, or filter, of the Product Catalog that
A BMC Atrium Integration Engine integration represents hardware products that are
object that you execute to transfer data. A data marked as approved for use in an
exchange specifies the source and destination organization.
in a data transfer, the adapter to be used for Definitive Media Library (DML)
the transfer, and the connection parameters to A repository where approved software
connect to the external data store. A data configurations are stored. Installed instances
mapping is associated with a data exchange to of the software can be checked against the
transfer data. DML for compliance with licenses and
data mapping policies. From the 7.5.00 release of BMC
A BMC Atrium Integration Engine integration Atrium Core, Definitive Software Library
object that defines the data to be transferred. A (DSL) has been renamed to Definitive Media
data mapping defines the source and Library.
destination of a data transfer, the primary key, Definitive Software Library (DSL)
and other fields and attributes. You can use a See Definitive Media Library (DML).
data mapping by associating it with a data Delete Dataset activity
exchange. A Reconciliation Engine activity that deletes
data replication instances from one or more datasets without
An option for abstract classes. With this option, removing the dataset itself. See also cascading
the instances of all subclasses are replicated to delete, hard delete, soft delete.
a single form to allow you to search the destination
abstract class as though it had data. Only the The CI class defined as Class 2 in a relationship
attributes inherited from the abstract class are class, or an instance of that CI class as a
replicated. member of such a relationship. Also known as
dataset the child member. In a weak relationship, the
A logical group of data in BMC Atrium destination is the weak member.
CMDB. A dataset can represent data from a discovery
particular source, a snapshot from a particular The act of scanning your environment for
date, or other purpose. The dataset used by configuration data.
BMC Software products for reconciled
production data is named BMC Asset. See also discovery application
overlay dataset. An application that scans your environment
for configuration data and can act as a provider
Dataset Merge Precedence to BMC Atrium CMDB.
A pairing of a dataset with a Precedence group.
Each Merge activity references a collection of Distributed Management Task Force (DMTF)
these, called a Dataset Merge Precedence set. An organization appointed to facilitate the
exchange of management information by
defined dataset promoting the initiation of industry standards
One of a pair of dataset IDs that is specified and interoperability.
when executing a job with dynamic dataset
substitution. The job is executed with the DHL
working dataset in place of the defined dataset. See Definitive Hardware Library (DHL).
DML
See Definitive Media Library (DML).

154 Normalization and Reconciliation Guide


Glossary

DMTF federation
See Distributed Management Task Force The act of linking CIs in BMC Atrium CMDB
(DMTF). to external data.
DSL Federation Manager
See Definitive Media Library (DML). A component of BMC Atrium CMDB that you
Enterprise Integration Engine can use to manage federated data. From the
See BMC Atrium Integration Engine. Federation Manager, you can view, create,
and modify federated products, federated
event interfaces, and federated links.
A particular type of change to the instances of
specified classes. You can publish an event so filter
that any instance of it is written to the A set of criteria for restricting the information
CMDB:Events form. You can receive displayed by the Atrium Explorer. This is
notification each time an instance of the event different from a BMC Remedy AR System
occurs by polling the form. filter.
Exclusion rule final class
A rule that specifies an attribute to be excluded A class that cannot have subclasses.
from participation in a Comparison activity. foreign key substitution
Execute Job activity A method of federation that assigns a key
A Reconciliation Engine activity that executes a from the federated product to each linked CI.
job. Foreign key substitution is useful when no
attributes that also exist in BMC Atrium
extension CMDB are stored in the federated product.
A logical set of classes and attributes, usually in
its own namespace, that is not part of the graph walk
Common Data Model (CDM). The act of searching for CIs and relationships
in BMC Atrium CMDB.
extension loader
The cmdbExtLoader program, which is used graph walk functions
for installing data model extensions and A set of specific functions that are used to
importing other BMC Atrium CMDB data and search for CIs and relationships in BMC
metadata. Atrium CMDB. Use these functions when you
want to search for CIs regardless of their class
federated data or relationship.
Data linked from CIs in BMC Atrium CMDB
but stored externally. Federated data might group
represent more attributes of the CIs or related A set of a particular type of reconciliation
information such as change requests on the definition that is referenced by an activity. See
CIs. also Identification group, Precedence group,
Qualification group, Workflow Execution group.
federated interface
An instance of the BMC_FederatedInterface GUID
class that specifies how to access a particular A globally unique identifier, automatically
type of federated data. See also federated link. generated by the BMC Remedy AR System
server. GUIDs are used for instance IDs,
federated link reconciliation IDs, and other cases where a
The connection between a class or CI and a unique value must be generated without
federated interface. human interaction.
federated product
A product that holds federated data. It can be
linked to more than one federated interface.

Glossary 155
BMC Atrium CMDB 7.6.04

hard delete instantiate


The act of removing an instance from BMC To create an instance of a class.
Atrium CMDB. See also soft delete.
ITIL®
Identification activity The IT Infrastructure Library® (ITIL) is an
A Reconciliation Engine activity that matches internationally accepted set of best practices
instances from two or more datasets and developed by the British government for
assigns them the same identity, meaning that management of IT services.
they represent the same real-life object.
job
Identification group A group of one or more reconciliation activities
A set of Identification rules that collectively executed in sequence. You cannot run an
identify instances from a particular dataset activity by itself; only as part of a job. You can
against other datasets. Each dataset that start a job manually, with a schedule, with an
participates in an Identification activity is Execute Job activity, with workflow, or with an
paired with one Identification group. API program.
Identification rule key query
A rule used when identifying instances Limits the records transferred in a data
between datasets. When two instances match transfer in the BMC Atrium Integration
the qualification for the rule, they are assigned Engine. See also row-level query.
the same reconciliation ID.
Merge activity
identity A Reconciliation Engine activity that merges
See reconciliation ID. two or more datasets into a single complete
incident and correct dataset based on precedence values
Defined by ITIL® as any event that is not part that favor the strengths of each dataset.
of the standard operation of a service and that metadata
causes, or might cause, an interruption to, or a Definitions that describe the data stored in
reduction in, the quality of that service. BMC Atrium CMDB. Metadata includes
incremental merge classes in the data model and special classes to
A Merge activity that only processes instances define things such as datasets and federation
created or modified since the activity was last objects.
run, saving otherwise useless processing time. multitenancy
Setting Force Attribute Merge to No makes a The separation of data and access so that a
Merge activity incremental. single BMC Atrium CMDB can contain the
instance data of multiple parties, but each party can
An actual incarnation of a particular class, access only their own data. See also account,
represented as a record in BMC Atrium role.
CMDB. Both CIs and relationships are namespace
instances of their respective classes. A logical set of classes and attributes in the data
instance ID model, usually related to a specific consumer
A GUID that BMC Atrium CMDB applies to or provider. The Common Data Model (CDM)
each instance to uniquely identify it. uses the BMC.CORE namespace.
instance permissions
The right to view or modify a specific
instance. These permissions are called row-
level security and write security, respectively.

156 Normalization and Reconciliation Guide


Glossary

normalize product categorization


To ensure that data of the same type follows Divides CIs into groups. Using the three-tier
the same text formatting conventions. This structure of product categorization, you can
helps reconciliation by making it more likely create successively smaller, more tightly
for instances to match in an Identification defined groups. You can create groups of CIs
activity. in Tier 1 followed by smaller groups in Tier 2
Normalization Engine and Tier 3.
A BMC Atrium CMDB application that production dataset
provides a centralized, customizable, and The dataset that serves as the single source of
uniform way to overcome consistency reference for your organization and from
problems by normalizing attributes for which you make business decisions. It acts as
software and hardware products. the target dataset in most Merge activities.
orphan provider
An instance that has been physically deleted An application, often a discovery application,
from source datasets but still exists in the that loads bulk data into BMC Atrium CMDB.
target dataset into which they merge. See also consumer.
overlay dataset provisioning
A dataset that provides a layer in which to The process of providing access to resources,
make changes that are pending approval. API such as printers, telephones, and so on, and to
queries to the dataset seamlessly return its information, such as permissions, databases,
modified instances along with unmodified and so on.
instances from the underlying regular dataset. publish
parent To make an event available so that instances of
See source. it can be written to the CMDB:Events form.
Precedence group Purge Dataset activity
The definition of an overall precedence value for A Reconciliation Engine activity that removes
a dataset. It can optionally contain precedence instances that have been marked as deleted
values for specific classes and attributes from one or more datasets.
within the dataset. Qualification
precedence value A Boolean statement that is evaluated to
A method of assigning weight to specific determine whether an instance should be
datasets, classes, and attributes in a Merge included in an activity.
activity. Attribute precedence values override Qualification group
class precedence values, which override A set of Qualifications that can be used in
dataset precedence values. various types of activity. An instance that
primary key meets one or more Qualifications in the group
A primary key uniquely identifies a row of is included in the activity.
data. In BMC Atrium Integration Engine you reconciliation
must specify the attributes of a CI class and The process of managing data in multiple
the corresponding fields in the external data datasets using the Reconciliation Engine. The
store to create the primary key. After a data main activities of reconciliation are
transfer, the primary key is the link that identifying, comparing, and merging
matches a record in the external data store datasets, though the Reconciliation Engine
with its counterpart in BMC Atrium CMDB. performs other activities as well.

Glossary 157
BMC Atrium CMDB 7.6.04

reconciliation definition Rename Dataset activity


An entity defined in the Reconciliation Manager A reconciliation activity that renames a dataset
such as a job, activity, or group. without changing its ID, preserving references
Reconciliation Engine to the dataset from any reconciliation
The component of BMC Atrium CMDB that definitions.
reconciles data from different datasets. role
reconciliation ID A designation that grants permissions to more
A GUID that the Reconciliation Engine assigns than one BMC Remedy AR System group.
to instances in different datasets that represent row-level query
the same real-life object. Limits the transfer of data on a row-by-row
Reconciliation Manager basis in the BMC Atrium Integration Engine.
The component of BMC Atrium CMDB that See also key query.
you can use to manage reconciliation row-level security
definitions. The permission required to view a specific
regular class instance. See also write security.
A class that stores its instance data in its own rule
BMC Remedy AR System form. See also One or more criteria that, when met, cause an
abstract class, categorization class. action. The types of rules used in BMC Atrium
related information Core are Exclusion rule, Identification rule, and
Information about a CI that does not qualify as Workflow Execution rule.
attributes of the CI, and should therefore not ruleset
be stored in a Configuration Management A group of rules.
Database (CMDB). service level agreement
relationship A contract between a service provider and a
A connection between two CIs such as a purchaser that defines the level of service.
dependency or membership. It is an instance singleton class
of a relationship class. See also configuration item An optional class characteristic that restricts
(CI). the class to holding only one instance.
relationship class snapshot
A class that defines a type of relationship A set of data that represents a configuration at
between CIs, such as a dependency or a certain point in time, usually stored in its
membership. own dataset. There can be multiple snapshots
relationship filter of a given configuration.
See filter. soft delete
relationship key The act of marking an instance as deleted from
A relationship key uniquely identifies a row BMC Atrium CMDB by setting the
of data in a relationship mapping. In BMC MarkAsDeleted attribute to Yes. See also hard
Atrium Integration Engine you must specify delete.
the attributes of a primary CI class and a source
secondary CI class to create the relationship The CI class defined as Class 1 in a relationship
key. After a data transfer, the relationship key class, or an instance of that CI class as a
is the link that matches a record in the external member of such a relationship. Also known as
data store with its counterpart in BMC Atrium the parent member. In a weak relationship, the
CMDB. source is the strong member.

158 Normalization and Reconciliation Guide


Glossary

subclass workflow
A class that is derived from another class, BMC Remedy AR System objects such as
which is called its superclass. The subclass active links, escalations, and filters that
inherits all the attributes of its superclass and perform actions against data.
any superclasses above it in the hierarchy, and Workflow Execution group
can also participate in relationships defined A set of Workflow Execution rules. Each
for all superclasses. Comparison activity can optionally reference
superclass one Workflow Execution group.
A class from which other classes, called Workflow Execution rule
subclasses, are derived. A rule used when comparing instances
synchronization between datasets. When a compared instance
The automatic process of creating BMC matches the qualification for the rule,
Remedy AR System forms and workflow to specified BMC Remedy AR System workflow
represent a class that has just been created or is executed against the instance or the instance
modified. The class is not available until against which it is compared.
synchronization completes. working dataset
text normalization One of a pair of dataset IDs that is specified
See normalize. when executing a job with dynamic dataset
unqualified data substitution. The job is executed with the
Information about an unknown device at a working dataset in place of the defined dataset.
known IP endpoint. If you discover an IP write security
address, but lack the credentials to identify The permission required along with row-level
the device at that endpoint, data for that security to modify or delete a specific instance.
device is unqualified. For example, the device See also row-level security.
might be a laptop computer, printer, router, or
some other type of device. BMC Atrium
CMDB stores unqualified data as
BMC_ComputerSystem instances.
weak reference
See weak relationship.
weak relationship
An optional characteristic for relationship
classes, signifying that the members of a
relationship form a composite object that can
be reconciled as one. The destination member
is considered the weak member of a weak
relationship, existing as part of the source
member (also known as the strong member).
Windows Management Instrumentation (WMI)
The Microsoft application of the Web-Based
Enterprise Management initiative for an
industry standard for accessing management
information.
WMI
See Windows Management Instrumentation
(WMI).

Glossary 159
BMC Atrium CMDB 7.6.04

160 Normalization and Reconciliation Guide


A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

Index

A CMDB RE User role 142


comparing datasets 120, 126
activities, removing from jobs 91 Configuration Item (CI) names, mapping aliases 40
aliases Configuration Item status
mapping categorizations 41 See NormalizationStatus
mapping products and manufacturers 40 Configuration Items (CIs)
APIs for normalization, logging 51 normalization process 14
application roles normalizing process 16
CMDB RE Definitions Admin 142 null values and normalization 23
CMDB RE Manual Identification 142 configurations, normalization, importing and
ar.cfg file, configuring 143 exporting 52
ar.conf file, configuring 143 configuring
attributes ar.cfg and ar.conf files 143
for impact 19 batch normalization 47
NormalizationStatus, values 24 classes for normalization 36
normalized 14 continuous normalization conditions 45
auto-identify datasets 104 continuous reconciliation 80, 145
datasets for normalization 31
normalization logging 50
B reconciliation system settings 143
batch normalization reconciliation threads 146
configuring 47 RPC ports and threads 49
initial CI loading 24 continuous normalization
logging 50 configuring conditions 45
overview 42, 43 logging 50
BMC Atrium Product Catalog overview 42
aliases, mapping 41 continuous reconciliation
mapping categorization aliases 41 BMC Default Continuous job 81
mapping name aliases 40 configuring 80, 145
BMC Default Continuous job copying dataset instances 121
overview 81 creating
BMC Software, contacting 2 datasets 105
BMC_Impact relationship 19 Instance Permission rules 53
Precedence Sets 115
Qualification Sets 94
C Suite Rollup rules 59
Version Rollup rules 55
categorization, mapping aliases 41
customer support 3
CI Type and normalization 15
classes, configuring for normalization 36
CMDB RE Definitions Admin role 142
CMDB RE Manual Identification role 142

Index 161
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

D importing
normalization configurations 52
datasets reconciliation definitions 149
auto-identifying 97 incremental merge 82, 83, 111, 113
comparing 120, 126 inline normalization
configuring for normalization 31 overview 42
copying instances 121 Instance Permissions
creating 105 creating rules 53
deleting instances 121 instances
identifying instances 97 copying dataset 121
merging 67 deleting dataset 121
merging data 109 identifying in datasets 67
purging instances 121 purging dataset 121
reconciliation 68 IT Service Management (ITSM), using with
reconciliation and 137 Normalization Engine 25
renaming 121, 137
deleting dataset instances 121
disabling J
Normalization Features 31 jobs
disabling normalization globally 52 See normalization jobs or reconciliation jobs

E L
enabling log files
Normalization Features 31 Normalization Engine 50
event types Reconciliation Engine 144
error 87 logging
information 87 batch normalization 50
warning 87 continuous normalization 50
exporting normalization 50
normalization configurations 52 normalization API 51
reconciliation definitions 148 reconciliation jobs 144

G M
global normalization, disabling 52 manual identification 107
groups mapping
See sets. categorization aliases 41
product and manufacturer aliases 40
I MarketVersion attribute 19
merge
identification configuring standard rules 147
configuring standard rules 147 standard rules 146
standard rules 146 merging data from datasets 109
Identification rules required 101 merging data, incrementally 82, 83, 113
identifying merging datasets
activity overview 67 incrementally 111
overview 97 overview 67
impact relationships multitenancy in normalization 23
and normalization 19

162 Normalization and Reconciliation Guide


A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

N Q
naming, for relationships 21 Qualification Sets, creating 94
NE Administrator role 28 queues, configuring for RPC 49
NE User role 28
ne_classconfig 36
normalization R
batch, overview 42 reconciliation
configuring classes 36 comparing datasets 120
configuring datasets 31 copying dataset instances 121
configuring logging 50 deleting dataset instances 121
continuous, overview 42 executing jobs 121
exporting configurations 52 exporting definitions 148
importing configurations 52 identifying datasets 67
inline, overview 42 importing definitions 149
modes 42 merging datasets 67
overview 14 namespaces and 70
process overview 16 purging datasets 121
Normalization Features renaming datasets 121
enabling 31 Reconciliation Engine
Impact Normalization 19 executing jobs 121
overview 14 modifying server configuration 143
Relation Name 21 operations by way of workflow 82
Version Rollup 19 Reconciliation Identity attribute 97
normalization jobs Reconciliation IDs
batch 47 overview 70
continuous 47 reconciliation jobs
Normalization Simulation utility 37 continuous 80, 145
NormalizationStatus, values 24 creating 89
null value and normalization 23 initiating with workflow 82
ReconciliationIdentity
P overview 70
ReconciliationMergeStatus attribute 67, 80, 86
permissions Relation Name
CMDB RE Definitions Admin role 142 overview 21
CMDB RE Manual Identification role 142 relationships
CMDB RE User 142 impact normalization 19
CMDB RE User role 142 name normalization 21
NE Administrator role 28 removing activities 91
NE User role 28 renaming datasets 121, 137
row-level rules 53 roles
ports, configuring for RPC 49 CMDB RE Definitions Admin 142
Precedence Sets, creating 115 CMDB RE Manual Identification 142
previewing normalization 37 CMDB RE User 142
Product Catalog NE Administrator 28
and normalization 15 NE User 28
CI Type and normalization 15 row-level permissions
preparing for normalization 28 creating rules for 53
See BMC Atrium Product Catalog.
simulating changes after normalization 37
product support 3
purging dataset instances 121

Index 163
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

rules
configuring for identification 147
W
configuring for merge 147 workflow
standard for identification and merge 146 executing against compared instances 122, 128
Suite Rollup 59 starting jobs with 82
Version Rollup 55
running jobs 81

S
schedules, reconciliation weekly 81
server group
normalization 30
reconciliation 71
sets
creating Precedence 115
creating Qualification 94
simulating normalization 37
software license management
and normalization 19
standard rules 146
configuring for identification 147
configuring for merge 147
Suite Rollup
creating rules 59
suites
creating rules 59
support, customer 3
system normalization, disabling 52

T
technical support 3
threads
reconciliation 146
RPC, configuring 49
types of reconciliation events
error 87
information 87
warning 87

V
Version Rollup
creating rules 55
overview 19

164 Normalization and Reconciliation Guide


*176784*
*176784*
*176784*
*176784*
*176784*

You might also like