bmc atrium core 7.6.03 developer's reference guide

Upload: pisof

Post on 07-Aug-2018

242 views

Category:

Documents


2 download

TRANSCRIPT

  • 8/20/2019 BMC Atrium Core 7.6.03 Developer's Reference Guide

    1/236

    www.bmc.com

    BMC Atrium Core 7.6.03

    Developer’s Reference Guide

    August 2010

  • 8/20/2019 BMC Atrium Core 7.6.03 Developer's Reference Guide

    2/236

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

    [email protected].

    Contacting BMC Software

    You can access the BMC Software website at http://www.bmc.com. From this website, you can obtain informationabout the company, its products, corporate offices, special events, and career opportunities.

    United States and Canada

    Address BMC SOFTWARE INC2101 CITYWEST BLVDHOUSTON TX 77042-2827USA

    Telephone 713 918 8800 or800 841 2031

    Fax 713 918 8000

    Outside United States and Canada

    Telephone (01) 713 918 8800   Fax (01) 713 918 8000

    © Copyright 2006–2007, 2009-2010 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, andlogos may be registered or pending registration in the U.S. or in other countries. All other trademarks or registered trademarks are theproperty of their respective owners.

    AIX and IBM are registered trademarks of International Business Machines Corporation in the United States, other countries, or both.

    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 theU.S. Patent and Trademark Office, and is used here by BMC Software, Inc., under license from and with the permission of OGC.

     J2SE, Java, Javadoc, JSP, Solaris, and Sun are trademarks of Sun Microsystems, Inc., in the U.S. and other countries.

    Linux is the registered trademark of Linus Torvalds.

    UNIX is the registered trademark of The Open Group in the US and other countries.

    The information included in this documentation is the proprietary and confidential information of BMC Software, Inc., its affiliates, orlicensors. Your use of this information is subject to the terms and conditions of the applicable End User License agreement for the product

    and to the proprietary and restricted rights notices included in the product documentation.

    Restricted rights legendU.S. Government Restricted Rights to Computer Software. UNPUBLISHED -- RIGHTS RESERVED UNDER THE COPYRIGHT LAWS OFTHE 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, andDFARS 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.

    mailto:[email protected]://www.bmc.com/mailto:[email protected]://www.bmc.com/

  • 8/20/2019 BMC Atrium Core 7.6.03 Developer's Reference Guide

    3/236

    Customer Support

    You can obtain technical support by using the Support page on the BMC Software website or by contacting CustomerSupport 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 athttp://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 orsend an email message to [email protected]. (In the Subject line, enterSupID:yourSupportContractID , such as SupID:12345.) Outside the United States and Canada, contact yourlocal 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 asfile system full— Messages from related software

    http://www.bmc.com/supportmailto:[email protected]:[email protected]://www.bmc.com/support

  • 8/20/2019 BMC Atrium Core 7.6.03 Developer's Reference Guide

    4/236

    License key and password information

    If you have a question about your license key or password, contact Customer Support through one of the followingmethods:

    E-mail [email protected]. (In the Subject line, enter SupID:yourSupportContractID , suchas SupID:12345.)

    In the United States and Canada, call 800 537 1813. Outside the United States and Canada, contact your local supportcenter for assistance.

    Submit a new issue at http://www.bmc.com/support.

    mailto:[email protected]://www.bmc.com/supporthttp://www.bmc.com/supportmailto:[email protected]

  • 8/20/2019 BMC Atrium Core 7.6.03 Developer's Reference Guide

    5/236

    Contents 5

    Contents

    BMC Atrium Core documentation  13

    Chapter 1 Introduction to the BMC Atrium Core APIs 17

    BMC Atrium CMDB API architecture overview. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18BMC Atrium CMDB C API features and components . . . . . . . . . . . . . . . . . . . . . . 19

    BMC Atrium CMDB Java API package . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20BMC Atrium Core web services API overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20API version requirements for BMC Atrium CMDB client-server connections. . . . . . 21Comparison between BMC Atrium CMDB API programming and using the BMC

    Atrium Core Console . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22When to use the BMC Atrium CMDB API and the BMC Atrium Core Console. 22BMC Atrium Core Console and BMC Atrium CMDB API terminology . . . . . . . 23

    Chapter 2 Getting started 25

    BMC Atrium CMDB API compatibility . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26BMC Atrium CMDB C API requirements and package contents. . . . . . . . . . . . . . . . . 29

    BMC Atrium CMDB C API requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29BMC Atrium CMDB C API header files. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29BMC Atrium CMDB C API library files. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30Compiler preparation for the BMC Atrium CMDB C API . . . . . . . . . . . . . . . . . . . 34Libraries for linking to BMC Atrium CMDB. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34

    BMC Atrium CMDB Java API requirements and package contents . . . . . . . . . . . . . . 35BMC Atrium CMDB Java API requirements. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35BMC Atrium CMDB Java API library files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35BMC Atrium CMDB Java API header files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35BMC Atrium CMDB Java API configuration file . . . . . . . . . . . . . . . . . . . . . . . . . . . 36

    BMC Atrium Core Web Services API components. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36

    BMC Atrium Core Web Services Infrastructure overview . . . . . . . . . . . . . . . . . . . 36BMC Atrium Core Web Services Registry overview . . . . . . . . . . . . . . . . . . . . . . . . 36

    The cmdbdriver program . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37cmdbdriver command line options. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38Commands that record your cmdbdriver commands . . . . . . . . . . . . . . . . . . . . . . . 39Running cmdbdriver from the command line . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39cmdbdriver and scripts. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40

    Sample BMC Atrium Core API code. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43BMC Atrium CMDB API print.c routines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43BMC Atrium CMDB API and SQL views. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44

  • 8/20/2019 BMC Atrium Core 7.6.03 Developer's Reference Guide

    6/236

    6 Developer’s Reference Guide

    Chapter 3 Finding related CIs 45

    Overview of the CMDBQueryByPath function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46Structure of the CMDBQueryByPath function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46Example: Finding all computers in the payroll division using the

    CMDBQueryByPath function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47Overview of the graph walk query functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50

    The stating node and query loop. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50Example: Finding all CIs related to an instance of computer system using the

    graph walk query functions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51Overview of the CMDBGraphQuery function. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53

    Graph representation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54Examples of the CMDBGraphQuery function. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55Example: Walking a specific type of relationship for a CI instance using the

    CMDBGraphQuery function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57Example: Walking multiple types of relationships for a CI instance using the

    CMDBGraphQuery function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60

    Chapter 4 C API functions 65

    Types of BMC Atrium CMDB C API functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67CMDBActivateFederatedInContext function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71

    Synopsis. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71Input arguments. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71Return values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72

    CMDBBeginBulkEntryTransaction function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72Synopsis. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72Input argument. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72

    Return value . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72CMDBCancelJobRun function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73

    Synopsis. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73Input arguments. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73Return value . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73

    CMDBCreateAttribute function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74Synopsis. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74Input arguments. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74Return value . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77

    CMDBCreateClass function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77Synopsis. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77

    Input arguments. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77Return values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80

    CMDBCreateGuid function. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80Synopsis. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80Return values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80

    CMDBCreateInstance function. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81Synopsis. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81Input arguments. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81Return values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82

  • 8/20/2019 BMC Atrium Core 7.6.03 Developer's Reference Guide

    7/236

    Contents 7

    CMDBCreateMultipleAttributes function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82Synopsis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82Input arguments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82Return value . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84

    CMDBCreateMultipleInstances function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85

    Synopsis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85Input arguments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85Return values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85

    CMDBDeleteAttribute function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86Synopsis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86Input arguments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86Return value . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86

    CMDBDeleteClass function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87Synopsis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87Input arguments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87Return value . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87

    CMDBDeleteInstance function. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88Synopsis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88Input arguments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88Return value . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88

    CMDBDeleteMultipleInstances function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89Synopsis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89Input arguments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89Return value . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89

    CMDBEndBulkEntryTransaction function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90Synopsis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90Input arguments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90

    Return values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90CMDBExpandParametersForCI function. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91Synopsis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91Input arguments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91Return Values. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91

    CMDBExportData function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92Synopsis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92Input arguments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92Return values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93

    CMDBExportDef function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93Synopsis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93

    Input arguments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93Return values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93CMDBGetAttribute function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94

    Synopsis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94Input arguments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94Return values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95

    CMDBGetClass function. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97Synopsis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97Input arguments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97Return values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97

  • 8/20/2019 BMC Atrium Core 7.6.03 Developer's Reference Guide

    8/236

    8 Developer’s Reference Guide

    CMDBGetCopyAuditData function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100Synopsis. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100Return values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101

    CMDBGetInstance function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102Synopsis. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102

    Input arguments. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102Return values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103

    CMDBGetInstanceBLOB function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103Synopsis. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103Input arguments. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103Return values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104

    CMDBGetListClass function. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104Synopsis. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104Input arguments. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104Return values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105

    CMDBGetListInstance function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105

    Synopsis. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105Input arguments. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105Return values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106

    CMDBGetMultipleAttributes function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107Synopsis. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107Input arguments. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107Return values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108

    CMDBGetMultipleInstances function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110Synopsis. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110Input arguments. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110Return values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111

    CMDBGetCMDBUIComponents function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111Synopsis. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111Input arguments. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111Return Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112

    CMDBGetJobRun function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112Synopsis. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112Input arguments. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112Return values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112

    CMDBGetListJobRun function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113Synopsis. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113Input arguments. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113

    Return values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113CMDBGetRelatedFederatedInContext function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114Synopsis. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114Input arguments. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114Return values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114

    CMDBGetServerPort function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115Synopsis. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115Input argument. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115Return values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115

  • 8/20/2019 BMC Atrium Core 7.6.03 Developer's Reference Guide

    9/236

    Contents 9

    CMDBGetVersions function. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115Synopsis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115Input arguments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116Return values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116

    CMDBGraphQuery function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116

    Synopsis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116Input arguments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117Return values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118

    CMDBGraphWalkBegin function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118Synopsis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118Input arguments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118Return values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119

    CMDBGraphWalkEnd function. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119Synopsis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119Input argument . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119Return values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119

    CMDBGraphWalkNext function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120Synopsis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120Input arguments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120Return values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120

    CMDBImportData function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121Synopsis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121Input arguments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121Return value . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121

    CMDBImportDef function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122Synopsis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122Input arguments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122

    Return value . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122CMDBInitialization function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123Synopsis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123Input argument . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123Return value . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123

    CMDBQueryByPath function. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124Synopsis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124Input arguments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124Return values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124

    CMDBRunQualificationForCI function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125Synopsis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125

    Input arguments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125Return values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125CMDBSetAttribute function. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126

    Synopsis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126Input arguments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126Return value . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128

    CMDBSetClass function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128Synopsis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128Input arguments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129Return value . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131

  • 8/20/2019 BMC Atrium Core 7.6.03 Developer's Reference Guide

    10/236

    10 Developer’s Reference Guide

    CMDBSetInstance function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131Synopsis. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131Input arguments. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132Return value . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132

    CMDBSetMultipleAttributes function. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133

    Synopsis. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133Input arguments. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133Return value . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135

    CMDBSetMultipleInstances function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135Synopsis. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135Input arguments. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135Return value . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136

    CMDBSetServerPort function. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136Synopsis. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136Input arguments. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136Return value . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136

    CMDBStartJobRun function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137Synopsis. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137Input arguments. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137Return values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137

    CMDBSynchMetaData function. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138Synopsis. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138Input arguments. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138Return values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138

    CMDBSystemInit function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139Synopsis. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139Return values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139

    CMDBTermination function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139Synopsis. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139Input argument. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139Return value . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139

    Chapter 5 C API data structures 141

    Types of BMC Atrium CMDB C API structures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144CMDBAttributeGetStruct structure. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146CMDBAttributeLimit structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147CMDBAttributeLimitList structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151CMDBAttributeNameId structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151CMDBAttributeValueList structure. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152CMDBAttributeValueListList structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152CMDBAttributeValueStruct structure. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152CMDBAuditInfoStruct structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153CMDBAuditValueList structure. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154CMDBAuditValueListList structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155CMDBClassNameId structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155CMDBClassNameIdList structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155CMDBClassRelationship structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156CMDBClassTypeInfo structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157CMDBExportItem structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158

  • 8/20/2019 BMC Atrium Core 7.6.03 Developer's Reference Guide

    11/236

    Contents 11

    CMDBExportItemList structure. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159CMDBExportItemStruct structure. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159CMDBFederatedActivateInfo structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161CMDBFederatedARInfo structure. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162CMDBGetObjectList structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163

    CMDBGetObjectStruct structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163CMDBGetRelationList structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163CMDBGetRelationStruct structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164CMDBGraphAdjacentList structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164CMDBGraphAdjacentStruct structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165CMDBGraphList structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165CMDBGraphStruct structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166CMDBGraphWalkObjectList structure. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166CMDBGraphWalkObjectStruct structure. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167CMDBGraphWalkQueryStruct structure. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167CMDBGraphWalkRelation structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169

    CMDBGraphWalkRelationList structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170CMDBGraphWalkResultStruct structure. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171CMDBGraphWalkSelectorAndFilterList structure. . . . . . . . . . . . . . . . . . . . . . . . . . . . 172CMDBGraphWalkSelectorAndFilterStruct structure . . . . . . . . . . . . . . . . . . . . . . . . . . 173CMDBGraphWalkStateStruct structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174CMDBImportItem structure. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175CMDBImportItemList structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175CMDBImportItemStruct structure. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176CMDBIndexList structure. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177CMDBIndexStruct structure. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178CMDBInstanceList structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178

    CMDBInstanceStruct structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179CMDBItemTypeAttribute structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179CMDBItemTypeClass structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179CMDBNestedQueryStruct structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 180CMDBQualifierStruct structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181CMDBQueryArithOpStruct structure. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181CMDBQueryAttributeName structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182CMDBQueryCardinality. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183CMDBQueryObject structure. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 184CMDBQueryObjectList structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 186CMDBQueryObjectRelationship structure. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 186

    CMDBQueryObjectSelectorList structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187CMDBQueryObjectSelectorStruct structure. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188CMDBQueryQualifierAndOrStruct structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188CMDBQueryQualifierSetOpStruct structure. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189CMDBQueryQualifierSimpleOpStruct structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190CMDBQueryQualifierStruct structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192CMDBQueryQualifierValueSetStruct structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193CMDBQueryQualifierValueStruct structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194CMDBQueryResultGraph. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195CMDBQuerySortStruct . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197CMDBQuerySortList . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197

    CMDBQueryStruct structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 198

  • 8/20/2019 BMC Atrium Core 7.6.03 Developer's Reference Guide

    12/236

    12 Developer’s Reference Guide

    CMDBGraphQueryResult . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 200CMDBStdEdgeResult. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 200CMDBEdgeListList. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 201CMDBNodeList. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 201CMDBNodeListList . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 202

    CMDBRelationshipResult . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 202CMDBRelationshipResultList. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203CMDBREClassQualList structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203CMDBREClassQualStruct structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204CMDBREDatasetList structure. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204CMDBREDatasetPair structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205CMDBREJobRunInfo structure. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205CMDBREJobRunInfoList structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 206CMDBSortList structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 206CMDBSortStruct structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207CMDBUIComponentInfo structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207

    CMDBUIComponentResult structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211CMDBUIComponentResultList structure. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212CMDBVersionInfo structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212CMDBVersionInfoList structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213CMDBWeakPropagatedAttrs structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213CMDBWeakPropagatedAttrsList structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 214CMDBXMLExportItemList structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 214CMDBXMLImportItemList structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 215

    Appendix A cmdbdriver commands 217

    cmdbdriver commands for C API functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 218Class commands for cmdbdriver. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 218Attribute commands for cmdbdriver . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 218Instance commands for cmdbdriver . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 219RE job run commands for cmdbdriver . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 220Federation commands for cmdbdriver . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 220Import and export commands for cmdbdriver . . . . . . . . . . . . . . . . . . . . . . . . . . . . 220Query By Path commands for cmdbdriver . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 221Graph Walk Query command for cmdbdriver . . . . . . . . . . . . . . . . . . . . . . . . . . . . 221Miscellaneous cmdbdriver commands. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 221

    Commands for controlling cmdbdriver . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223Initialization and termination commands for cmdbdriver . . . . . . . . . . . . . . . . . . 223Recording and logging commands for cmdbdriver . . . . . . . . . . . . . . . . . . . . . . . . 223Thread and timer commands for cmdbdriver . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224Session configuration commands for cmdbdriver . . . . . . . . . . . . . . . . . . . . . . . . . 224

    Index  225

  • 8/20/2019 BMC Atrium Core 7.6.03 Developer's Reference Guide

    13/236

    BMC Atrium Core documentation 13

     

    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 on the BMC Atrium Coredocumentation media (DVD or Electronic Product Download bundle) and on theBMC Customer Support site, free of charge, at http://www.bmc.com/support .

    To find this documentation on the BMC Customer Support site, choose ProductDocumentation > Supported Product A-Z List > BMC Atrium CMDB EnterpriseManager > 7.6.03.

     Title Description Audience

    BMC Atrium CMDB 7.6.03 Administrator's Guide

    Information about setting permissions, configuringfederation, modifying the data model, configuringan impact model, and other administrative tasks inBMC Atrium CMDB.

    Configuration managers,application administrators,and asset analysts.

    BMC Atrium CMDB 7.6.03

    Common Data ModelDiagram

    Hierarchical diagram of all classes in the Common

    Data Model (CDM) including unique attributes andapplicable relationships.

    Configuration managers,

    application administrators,and asset analysts.

    BMC Atrium CMDB7.6.03 Data Model Help

    Description and details of superclasses, subclasses,attributes, and relationship classes for each class.Contains only information about the CDM at first,

     but you can update it to include information aboutdata model extensions that you install.

    Note: This Help is provided in HTML and is availableon the BMC Atrium Core media. It is not availableon the BMC Customer Support site.

    Configuration managers,application administrators,and asset analysts.

    BMC Atrium CMDB 7.6.03

    Data Modeling Guide

    Best practices for using the classes that BMC

    provides for BMC Atrium CMDB (both the CDMand extensions) to model complex business entities,focusing on the use of multiple related CIs to modelan entity rather than on general information about aclass or attribute.

    Configuration managers,

    application administrators,and asset analysts.

    BMC Atrium CMDB 7.6.03Normalization andReconciliation Guide

    Information about normalizing data in BMC AtriumCMDB and reconciling CIs from different dataproviders into a single production dataset.

    Configuration managers,application administrators,and asset analysts.

    http://www.bmc.com/supporthttp://www.bmc.com/support

  • 8/20/2019 BMC Atrium Core 7.6.03 Developer's Reference Guide

    14/236

    14 Developer’s Reference Guide

    BMC Atrium Core 7.6.03

     

    BMC Atrium CMDB7.6.03 Online Help

    Help for using and configuring BMC Atrium CMDB,including BMC Atrium Product Catalog,Reconciliation Engine, Normalization Engine, andso on.

    Note: This Help is provided in HTML and is availablethrough the Help links in the BMC Atrium CMDBuser interface. It is not available on the BMCCustomer Support site.

    Configuration managers,application administrators,asset analysts, and usersthat work with CIs and need

    to understand therelationships that existwithin BMC Atrium CMDB.

    BMC Atrium CMDB 7.6.03User's Guide

    Information about using BMC Atrium CMDB,including searching for and comparing CIs andrelationships, relating CIs, viewing history, runningimpact simulations, and viewing federated data.

    Users that work with CIsand need to understand therelationships that existwithin BMC Atrium CMDB.

    BMC Atrium Core 7.6.03Compatibility Matrix

    Information about the BMC Atrium Coreconfigurations that are expected to work properly

     based on design, testing, or general understanding

    of the interaction between products.

    Note: Download the BMC Atrium Core 7.6.03Compatibility Matrix from the BMC CustomerSupport site at http://www.bmc.com/support/reg/remedy-compatibility-tables.html?c=n .

    Configuration managers,application administrators,and asset analysts.

    BMC Atrium Core 7.6.03Concepts and PlanningGuide

    Information about CMDB concepts and high-levelsteps for planning and implementing BMC AtriumCore.

    Anyone who wants to learnabout and understand BMCAtrium Core products,CMDBs in general, and thefunctionality of BMCAtrium CMDB in particular.

    IT leaders, configurationmanagers, applicationadministrators, and assetanalysts are some who will

     benefit from thisinformation.

    BMC Atrium Core 7.6.03Developer’s Reference Guide

    Information about creating API programs using CAPI functions and data structures.

    Application administratorsand programmers.

    BMC Atrium Core 7.6.03Installation Guide

    Information about installing, upgrading, anduninstalling BMC Atrium Core features.

    Application administrators.

    BMC Atrium CMDB

    7.6.03 Javadoc Help

    Information about Sun™ Java™ classes, methods,

    and variables that integrate with BMC AtriumCMDB.

    Note: This Help is provided in HTML and is availableon the BMC Atrium Core media. It is not availableon the BMC Customer Support site.

    Application programmers.

    BMC Atrium Core 7.6.03 Master Index

    Combined index of all guides. Everyone.

     Title Description Audience

    http://www.bmc.com/support/reg/remedy-compatibility-tables.html?c=nhttp://www.bmc.com/support/reg/remedy-compatibility-tables.html?c=nhttp://www.bmc.com/support/reg/remedy-compatibility-tables.html?c=nhttp://www.bmc.com/support/reg/remedy-compatibility-tables.html?c=nhttp://www.bmc.com/support/reg/remedy-compatibility-tables.html?c=n

  • 8/20/2019 BMC Atrium Core 7.6.03 Developer's Reference Guide

    15/236

    BMC Atrium Core documentation 15

     

    BMC Atrium Core 7.6.03Product Catalog and DMLGuide

    Information about configuring the Product Catalogand DML, adding products, and creating aliases forproducts, manufacturers, and categorizations.

    System administrators, ITmanagers, networkmanagers, and otherqualified personnel who are

    familiar with theircomputing and networkingenvironment.

    BMC Atrium Core 7.6.03Release Notes

    Information about new features, known issues, andother late-breaking topics.

    Everyone.

    BMC Atrium Core 7.6.03:Taking Your Data IntoProduction End to End

    End-to-end high-level steps for bringing data intoBMC Atrium CMDB from a third-party source andmaking it available in your production dataset.

    Note: This Flash video is available on the BMCAtrium Core media. It is not available on the BMCCustomer Support site.

    Configuration managers,application administrators,and asset analysts.

    BMC Atrium Core 7.6.03Troubleshooting Guide

    Information about resolving issues with BMCAtrium Core components, including API, filter, andconsole error messages and their solutions.

    Application administrators,programmers, and BMCSupport personnel.

    BMC Atrium Core 7.6.03Web Services Help

    Information about using BMC Atrium Core WebServices, including how to publish and findinterfaces in the Web Services Registry, set versions,disambiguate web services, configure securitypolicies and encryption, and use BMC Atrium CoreWeb Services data structures and operations.

    Note: This Help is provided in HTML and is availableon the BMC Atrium Core media. It is not availableon the BMC Customer Support site.

    Application administratorsand programmers.

    BMC Atrium IntegrationEngine 7.6.03 ADKDeveloper's Guide

    Information about how to build adapters that cantransfer information between an external data storeand either BMC Remedy AR System forms or BMCAtrium CMDB.

    Developers who have a basic understanding of BMCAtrium Integration Engineand want to build adaptersthat can exchange data

     between two data sources.

    BMC Atrium IntegrationEngine 7.6.03 Online Help

    Help for using and configuring BMC AtriumIntegration Engine.

    Note: This Help is provided in HTML and is available

    through the Help links in the BMC AtriumIntegration Engine user interface. It is notavailable on the BMC Customer Support site.

    Users who are responsiblefor setting up data transferintegrations betweenexternal data stores and

    either BMC Atrium CMDBor BMC RemedyAR System.

     Title Description Audience

  • 8/20/2019 BMC Atrium Core 7.6.03 Developer's Reference Guide

    16/236

    16 Developer’s Reference Guide

    BMC Atrium Core 7.6.03

     

    BMC Atrium IntegrationEngine 7.6.03 User's Guide

    Information about creating data exchanges and datamappings, defining rules and queries, activatingevent-driven data exchanges, defining connectionsettings, and other BMC Atrium Integration Engine

    concepts.

    Users who are responsiblefor setting up data transferintegrations betweenexternal data stores and

    either BMC Atrium CMDBor BMC RemedyAR System.

     Mapping Your Data toBMC Atrium CMDB 7.6.03Classes

    Spreadsheet that maps common IT objects to theappropriate class, whether part of the CDM or anextension. This spreadsheet also includesinformation about further categorizing instancesusing key attributes, and best practices for creatingnormalized relationships.

    Configuration managers,application administrators,and asset analysts.

     Title Description Audience

  • 8/20/2019 BMC Atrium Core 7.6.03 Developer's Reference Guide

    17/236

    Chapter 1 Introduction to the BMC Atrium Core APIs 17

    Chapter

    1 Introduction to the BMCAtrium Core APIsThis section provides an overview of the BMC Atrium CMDB applicationprogramming interface (API) suite.

    The following topics are provided:

      BMC Atrium CMDB API architecture overview (page 18)

      API version requirements for BMC Atrium CMDB client-server connections(page 21)

      Comparison between BMC Atrium CMDB API programming and using theBMC Atrium Core Console (page 22)

  • 8/20/2019 BMC Atrium Core 7.6.03 Developer's Reference Guide

    18/236

    18 Developer’s Reference Guide

    BMC Atrium Core 7.6.03

    BMC Atrium CMDB API architecture overview

    The BMC Atrium CMDB product provides an API suite that allows you to workwith class definitions, instance data, federation, reconciliation, audit, and other

    functions. The BMC Atrium CMDB API suite is composed of the C, Java, and webservices APIs.

    The C, Java, and web services APIs provide similar data structures and functionsto encapsulate information and functionality. Additionally, the web services APIprovides a set of platform-independent operations that communicate with yourapplications to retrieve and send data.

    As shown in Figure 1-1, BMC Atrium Core components, such as Atrium Explorerand BMC Atrium Core Console, use the Java API to control the flow of data,whereas the external data consumers and data providers can communicate usingeither the web services API or Java API.

    Figure 1-1: BMC Atrium CMDB API architecture

    This guide describes the C API. For more information about the BMC AtriumCMDB Java API, see BMC Atrium CMDB 7.6.03 Javadoc Help. For moreinformation about web services APIs, see BMC Atrium Core 7.6.03 Web ServicesHelp.

    Reconciliation Engine 

    Normalization Engine 

    Atrium Console Atrium Explorer  

    AR System API 

    CMDB C API 

    CMDB Java API

    CMDB Web Services API

    Database 

    BMC Atrium CMDB 

    Action Request System 

    Web Client 

    Remedy User 

    AR System Applications 

    Remedy User 

    Web Client 

    Web Service Clients 

    .Net Client 

    AXIS Client 

    BMC Remedy Mid Tier   (CMDB API) 

    BMC  BMC 

    BMC ServiceImpact Manager 

    BMC AtriumDiscovery 

  • 8/20/2019 BMC Atrium Core 7.6.03 Developer's Reference Guide

    19/236

    Chapter 1 Introduction to the BMC Atrium Core APIs 19

    BMC Atrium CMDB API architecture overview

    BMC Atrium CMDB C API features and components

    A BMC Atrium CMDB client can use the C API to create, modify, delete, and queryclass definitions, instance data, federation, reconciliation, and other functions. TheC API:

      Contains data structures that store both simple and complex information. Asimple data structure serves as the primary building block for a complex datastructure.

      Includes a set of free functions that you can use to deallocate memory.

      Includes a set of copy functions that you can use to make copies of BMC AtriumCMDB C API structures

      Provides server-access information with every call in the control parameter ofthe function.

    BMC Atrium CMDB C API featuresYou can use the C API functions to perform the following operations:

      Create, modify, and delete classes and instances.

      Retrieve CI and relationship information.

      Import and export definitions and data.

      Start and stop Reconciliation Engine jobs.

    BMC Atrium Core C API supports the following 32-bit and 64-bit platforms:

      Microsoft Windows

      Linux®

      Sun™ Solaris™

      IBM® AIX®

      Hewlett Packard HP-UX

      Hewlett Packard HP-Itanium

    BMC Atrium CMDB C API components

    The C API consists of a set of functions and data structures, most of which performa specific operation against BMC Atrium CMDB or a federated data store. Forexample, you can use a function to retrieve information about a particular BMCAtrium CMDB class.

    Most of the C API functions accept BMC Atrium CMDB C data structures asparameters that qualify the action to perform, such as the type of class to create, thequalification for an instance to retrieve or delete, or the class name to modify.

  • 8/20/2019 BMC Atrium Core 7.6.03 Developer's Reference Guide

    20/236

    20 Developer’s Reference Guide

    BMC Atrium Core 7.6.03

    The sdk/samples/driver subdirectory in your BMC Atrium CMDB installationdirectory contains the source code for the cmdbdriver program. This programprovides a command-line interface for calling C API functions. The cmdbdriver program also includes print routines for every data structure in the API, making ita useful debugging tool.

    BMC Atrium CMDB Java API package

    The BMC Atrium CMDB Java API is a collection of Java classes and methods thatprovide the C API functionality in a Java development environment. For example,use the Java API if you write server-side web applications that you access throughthe Java Server page (JSP™) or Java servlets web tier layer.

    The Java API provides an object model of BMC Atrium CMDB. Because the JavaAPIs provide classes and methods that are similar to the C API functions and datastructures, you will find it easier to use the Java API if you are already familiar withthe C API.

    This guide describes the C API. For more information about the Java API, see BMCAtrium CMDB 7.6.03 Javadoc Help, which is located in the cmdb/sdk/javadoc/cmdbapi/ subdirectory of your BMC Atrium Core installation directory. To accessBMC Atrium CMDB 7.6.03 Javadoc Help, open the index.html file.

    For detailed information about the Java API changes in this release, see theJavaAPI_Overview.html file of BMC Atrium CMDB 7.6.03 Javadoc Help.

    For more information about the web services API, see the BMC Atrium Core 7.6.03Web Services Help.

    BMC Atrium Core web services API overviewBMC Atrium Core Web Services, which conforms to Simple Object Access Protocol(SOAP) and Web Services Description Language (WSDL) standards, provides astandard interface for interacting with BMC Atrium Core. You can use the webservices API to integrate BMC Atrium CMDB data with other applications, forexample, BMC Atrium Discovery and Dependency Mapping, BMC RemedyChange Management, or any other third-party application.

    BMC Atrium Core Web Services APIs consist of operations and data structures.For more information about the available operations, see BMC Atrium Core 7.6.03Web Services Help.

  • 8/20/2019 BMC Atrium Core 7.6.03 Developer's Reference Guide

    21/236

    Chapter 1 Introduction to the BMC Atrium Core APIs 21

    API version requirements for BMC Atrium CMDB client-server connections

    BMC Atrium Core Web Services includes the following components:

      The BMC Atrium Web Services Infrastructure component has been divided intothe components shown in Table 1-1.

      By default, Username and Password authentication is the only enabled WebServices security policy. Other security policies are available but are notenabled.

      The TIBCO Runtime UDDI Server is a registry through which web services arepublished and clients find and invoke the services. It is implemented as acollection of web services and is deployed as a WAR file (uddi.war) on the webapplication server.

    API version requirements for BMC AtriumCMDB client-server connections

    You can prevent earlier versions of BMC Atrium CMDB clients from connecting toa later version of the server. To specify the minimum API version with which theserver can communicate, configure the Minimum-CMDB-API-Version parameter inthe ar.cfg (Microsoft Windows) or ar.conf (UNIX®) file. The default value forthis setting is 3.

    For example, if you set Minimum-CMDB-API-Version to 4, clients earlier thanversion 2.1.00 cannot communicate with the server. For more information aboutthe ar.cfg or ar.conf configuration file, see the BMC Remedy Action RequestSystem 7.6.03 Configuration Guide. Table 1-2 provides the BMC Atrium CMDBreleases and their corresponding API versions.

    Table 1-1: BMC Atrium Web Services Infrastructure components

    Component Includes

    Web ServicesInfrastructure

    The modified Apache Axis2 stack

    For more information about the modifications, see BMC AtriumCore 7.6.03 Web Services Help.

    Atrium Core WebServices

    BMC Atrium Core web services

    Table 1-2: BMC Atrium Core releases and corresponding API versions

    BMC Atrium CMDB release API version

    BMC Atrium CMDB 7.6.03 7

    BMC Atrium CMDB 7.6.00 6

    BMC Atrium CMDB 7.5.00 5

    BMC Atrium CMDB 2.1.00 4

    BMC Atrium CMDB 2.0.x 3

  • 8/20/2019 BMC Atrium Core 7.6.03 Developer's Reference Guide

    22/236

    22 Developer’s Reference Guide

    BMC Atrium Core 7.6.03

    Comparison between BMC Atrium CMDB APIprogramming and using the BMC Atrium Core

    ConsoleThe BMC Atrium CMDB API allows you to interact with BMC Atrium CMDBprogrammatically and to integrate BMC Atrium CMDB functionality into yourapplications. API programming gives you the flexibility to customize yourapplications, but it is also more complex to design, implement, and maintain. Ifyou do not need this flexibility or would like to interact with the BMC AtriumCMDB user interface, consider using the BMC Atrium Core Console.

    The BMC Atrium Core Console provides an easy-to-use graphical user interfacefor performing BMC Atrium CMDB tasks, such as creating classes, CIs, and

    relationships, and viewing instance history. For more information aboutperforming BMC Atrium Core Console tasks, see:

      BMC Atrium CMDB 7.6.03 Administrator's Guide— For administrator tasks suchas, using creating or modifying classes and attributes, and creating federateddata.

      BMC Atrium CMDB 7.6.03 Normalization and Reconciliation Guide—For setting upnormalization and reconciliation tasks.

      BMC Atrium CMDB 7.6.03 User's Guide—For user tasks such as, viewing CIhistory, viewing CI and relationship classes, and comparing instances.

    When to use the BMC Atrium CMDB API and the BMC Atrium CoreConsole

    Table 1-3 outlines the scenarios in which you should use APIs or the BMC AtriumCore Console.

    Table 1-3: API programming and BMC Atrium Core Console scenarios (Sheet 1 of 2)

    Scenario API programming or BMC Atrium Core Console

    To modify the CDM manually. BMC Atrium Core Console

    To access multiple BMC Atrium CMDBcomponents at the same time orintegrate with programs or data outsidethe BMC Atrium Core Console.

    API programming

    To create, delete, or search for BMCAtrium CMDB classes manually.

    BMC Atrium Core Console

    To perform complex operations thatinvolve multiple objects.

    API programming

  • 8/20/2019 BMC Atrium Core 7.6.03 Developer's Reference Guide

    23/236

    Chapter 1 Introduction to the BMC Atrium Core APIs 23

    Comparison between BMC Atrium CMDB API programming and using the BMC Atrium Core Console

    BMC Atrium Core Console and BMC Atrium CMDB API terminology

    The BMC Atrium Core Console and the APIs use different terms for specific tasks,as shown in Table 1-4.

    To create, delete, or search BMC AtriumCMDB relationships manually.

    BMC Atrium Core Console

    To create a two-way interface (orgateway) between BMC Atrium CMDBand another application.

    API programming

    Table 1-3: API programming and BMC Atrium Core Console scenarios (Sheet 2 of 2)

    Scenario API programming or BMC Atrium Core Console

    Table 1-4: BMC Atrium Core Console and API terminology

    BMC Atrium Core Console term API term

    search/find getList/find/query

    create create

    modify set/update

    view/display get

  • 8/20/2019 BMC Atrium Core 7.6.03 Developer's Reference Guide

    24/236

    24 Developer’s Reference Guide

    BMC Atrium Core 7.6.03

  • 8/20/2019 BMC Atrium Core 7.6.03 Developer's Reference Guide

    25/236

    Chapter 2 Getting started 25

    Chapter

    2 Getting startedThis section provides the information that you need to get started with developingyour BMC Atrium CMDB APIs.

    The following topics are provided:

      BMC Atrium CMDB API compatibility (page 26)

      BMC Atrium CMDB C API requirements and package contents (page 29)

      BMC Atrium CMDB Java API requirements and package contents (page 35)

      BMC Atrium Core Web Services API components (page 36)

      The cmdbdriver program (page 37)

      Sample BMC Atrium Core API code (page 43)

      BMC Atrium CMDB API print.c routines (page 43)

      BMC Atrium CMDB API and SQL views (page 44)

  • 8/20/2019 BMC Atrium Core 7.6.03 Developer's Reference Guide

    26/236

    26 Developer’s Reference Guide

    BMC Atrium Core 7.6.03

    BMC Atrium CMDB API compatibility

    This section provides the backward and forward API compatibility information forBMC Atrium CMDB 7.6.03.

    Table 2-1 provides a compatibility matrix for versions of BMC Atrium CMDB andBMC Remedy AR System servers. The supported combinations are listed with theassumption that the platform version (including operating system and either 32- bit or 64-bit architecture) of the BMC Atrium CMDB server must be the same as theBMC Remedy AR System server. For example, the 32-bit Linux version of BMCAtrium CMDB cannot be installed with the 64-bit Linux version of BMC RemedyAR System. Use this table if you are using or planning to use the BMC RemedyAR System API.

    Table 2-1: Compatibility between BMC Atrium CMDB and BMC Remedy AR System servers(Sheet 1 of 2)

    BMC Remedy AR System server BMC Atrium CMDB server Supported?7.6.03 7.6.03 Yes

    7.6.03 7.6.00 Yes

    (Not supported on 64-bitWindows platform)

    7.6.03 7.5.00 Yes

    (Not supported on 64-bitWindows platform)

    7.6.03 2.1.00 Yes

    (32-bit Windows only.

    Not supported on 64-bitUNIX platforms.)

    7.6.03 2.0.1 Yes

    (32-bit Windows only.Not supported on 64-bitUNIX platforms.)

    7.5.00 7.6.03 No

    7.5.00 7.6.00 Yes

    7.5.00 7.5.00 Yes

    7.5.00 2.1.00 Yes

    (32-bit Windows only.Not supported on 64-bitUNIX platforms.)

    7.5.00 2.0.1 Yes

    (32-bit Windows only.Not supported on 64-bitUNIX platforms.)

    7.1.00 7.6.03 No

    7.1.00 7.6.00 No

    7.1.00 7.5.00 No

  • 8/20/2019 BMC Atrium Core 7.6.03 Developer's Reference Guide

    27/236

    Chapter 2 Getting started 27

    BMC Atrium CMDB API compatibility

    A BMC Atrium CMDB client is any application that uses the BMC Atrium CMDBAPI. If you plan to develop a BMC Atrium CMDB client, reference Table 2-2, whichprovides a compatibility matrix for versions of BMC Atrium CMDB servers and

    clients. The platform version (including operating system and either 32-bit or 64- bit architecture) of the BMC Atrium CMDB client is independent of the BMCAtrium CMDB server. For example, the 32-bit Windows version of the client cancommunicate with the 64-bit Linux version of the server. The supportedcombinations listed apply to all platforms.

    7.1.00 2.1.00 Yes

    7.1.00 2.0.1 Yes

    7.0.1 7.6.03 No

    7.0.1 7.6.00 No

    7.0.1 7.5.00 No

    7.0.1 2.1.00 No

    7.0.1 2.0.1 Yes

    Table 2-1: Compatibility between BMC Atrium CMDB and BMC Remedy AR System servers(Sheet 2 of 2)

    BMC Remedy AR System server BMC Atrium CMDB server Supported?

  • 8/20/2019 BMC Atrium Core 7.6.03 Developer's Reference Guide

    28/236

    28 Developer’s Reference Guide

    BMC Atrium Core 7.6.03

    Table 2-2: Compatibility between BMC Atrium CMDB clients and servers (Sheet 1 of 2)

    BMC Atrium CMDB Client BMC Atrium CMDB Server Supported?

    7.6.03 7.6.03 Yes

    7.6.03 7.6.00 Yes (Backwards compatibility

    provided by CMDB client)7.6.03 7.5.00 Yes (Backwards compatibility

    provided by CMDB client)

    7.6.03 2.1.00 Yes (Backwards compatibilityprovided by CMDB client)

    7.6.03 2.0.1 Yes (Backwards compatibilityprovided by CMDB client)

    7.6.00 7.6.03 Yes (Backwards compatibilityprovided by CMDB server)

    7.6.00 7.6.00 Yes

    7.6.00 7.5.00 Yes (Backwards compatibilityprovided by CMDB client)

    7.6.00 2.1.00 Yes (Backwards compatibilityprovided by CMDB client)

    7.6.00 2.0.1 Yes (Backwards compatibilityprovided by CMDB client)

    7.5.00 7.6.03 Yes (Backwards compatibilityprovided by CMDB server)

    7.5.00 7.6.00 Yes (Backwards compatibilityprovided by CMDB server)

    7.5.00 7.5.00 Yes

    7.5.00 2.1.00 Yes (Backwards compatibilityprovided by CMDB client)

    7.5.00 2.0.1 Yes (Backwards compatibilityprovided by CMDB client)

    2.1.00 7.6.03 Yes (Backwards compatibilityprovided by CMDB server)

    2.1.00 7.6.00 Yes (Backwards compatibilityprovided by CMDB server)

    2.1.00 7.5.00 Yes (Backwards compatibilityprovided by CMDB server)

    2.1.00 2.1.00 Yes

    2.1.00 2.0.1 Yes (Backwards compatibilityprovided by CMDB client)

    2.0.1 7.6.03 Yes (Backwards compatibilityprovided by CMDB server)

    2.0.1 7.6.00 Yes (Backwards compatibilityprovided by CMDB server)

    2.0.1 7.5.00 Yes (Backwards compatibilityprovided by CMDB server)

  • 8/20/2019 BMC Atrium Core 7.6.03 Developer's Reference Guide

    29/236

    Chapter 2 Getting started 29

    BMC Atrium CMDB C API requirements and package contents

    BMC Atrium CMDB C API requirements andpackage contents

    The C API package includes header files, library files, and source code for thecmdbdriver sample program. When installing the BMC Atrium Core solution, youalso install the C API.

    BMC Atrium CMDB C API requirementsTo build and run a C API program on Linux, you must install the GNU StandardC++ Library version 3 Release 5 or libstdc++5 package.

    BMC Atrium CMDB C API header files

    Table 2-3 lists the C API header files installed in the include directory of yourBMC Atrium Core installation.

    2.0.1 2.1.00 No

    2.0.1 2.0.1 Yes

    Table 2-2: Compatibility between BMC Atrium CMDB clients and servers (Sheet 2 of 2)

    BMC Atrium CMDB Client BMC Atrium CMDB Server Supported?

    Table 2-3: C API header files

    File name Contents

    ar.h BMC Remedy AR System API data type and structure definitions,size limits, and constant definitions.

    cmdb.h BMC Atrium Core C API data type and structure definitions, sizelimits, and constant definitions.

    arerrno.h Error code definitions.

    arextern.h External declarations for the API functions, specified with andwithout prototypes for use with standard C, ANSI C, or C++compilers.

    arfree.h External declarations for the FreeAR functions. These functions

    recursively free all allocated memory associated with a particulardata structure.

    cmdbfree.h External declarations for the FreeCMDB functions. These functionsrecursively free all allocated memory associated with a particulardata structure.

    arstruct.h Core and reserved subclasses ID definitions, database separatorcharacters, and labels for exporting structure definitions.

  • 8/20/2019 BMC Atrium Core 7.6.03 Developer's Reference Guide

    30/236

    30 Developer’s Reference Guide

    BMC Atrium Core 7.6.03

    BMC Atrium CMDB C API library files

    To display error messages properly, you must have arcatalog_eng.dll in yourpath at runtime, and make sure the lib directory contains the BMC Atrium CoreC API library files listed in Table 2-4.

    To load dynamic libraries on Solaris and Linux, include the -ldl link flag in thelink command. For more information about linking and compiling your code, seethe driver sample makefile in the sdk\samples\driver subdirectory of the BMCAtrium Core installation.

    NOTE   

    The SDK contains files that are not listed in Table 2-4. Those files are required forthe Java API or for working with the cmdbdriver program, but are not required tocreate a C API program.

    Table 2-4: C API library files (Sheet 1 of 4)

    Platform Files

    Microsoft Windows   32-bit

      arapi7603_build001.dll

     

    arcatalog_eng.dll

     

    arjni7603_build001.dll

     

    arrpc7603_build001.dll

      arutiljni7603_build001.dll

      arutl7603_build001.dll

      cmdbapi7603.dll

     

    icudt32.dll  icuinbmc32.dll

     

    icuucbmc32.dll

     

    mfc71.dll

      msvcp71.dll

      msvcr71.dll

      64-bit

      arapi7603_build001_win64.dll

     

    arcatalog_eng.dll

     

    arjni7603_build001_win64.dll

     

    arrpc7603_build001_win64.dll

      arutiljni7603_build001.dll  arutl7603_build001_win64.dll

      arxmlutil7603_build001_win64.dll

      cmdbapi7603_win64.dll

     

    icudt32.dll

     

    icuinbmc32_win64.dll

     

    icuucbmc32_win64.dll

      mfc71.dll

      msvcp71.dll

      msvcr71.dll

  • 8/20/2019 BMC Atrium Core 7.6.03 Developer's Reference Guide

    31/236

    Chapter 2 Getting started 31

    BMC Atrium CMDB C API requirements and package contents

    Solaris   32-bit

      libarjni7603_build001.so

      libarutiljni7603_build001.so

      libcmdbapi7603.so

      libcmdbjni7603.so

     

    libjlicapi7603_build001.so

     

    libicudatabmc.so.32

     

    libicui18nbmc.so.32

      libicuucbmc.so.32

      64-bit

      libarjni7603_build001.so

      libarutiljni7603_build001.so

      libcmdbapi7603_solsp64.so

      libcmdbjni7603.so 

    libjlicapi7603_build001.so

      libicudatabmc_solsp64.so.32

      libicui18nbmc_solsp64.so.32

      libicuucbmc_solsp64.so.32

    AIX   32-bit

      libarjni7603_build001.a

     

    libarutiljni7603_build001.a

     

    libcmdbjni7603.a

      libcmdbapi7603.a

      libicudatabmc32.a  libicui18nbmc32.a

      libicuucbmc32.a

     

    libjlicapi7603_build001.a

      64-bit

     

    libarjni7603_build001.a

      libarutiljni7603_build001.a

      libcmdbjni7603_build001.a

      libcmdbapi7603_build001_aixp64.a

      libicudatabmc_aixp6432.a

     

    libicui18nbmc_aixp6432.a 

    libicuucbmc_aixp6432.a

     

    libjlicapi7603_build001.a

    Table 2-4: C API library files (Sheet 2 of 4)

    Platform Files

  • 8/20/2019 BMC Atrium Core 7.6.03 Developer's Reference Guide

    32/236

    32 Developer’s Reference Guide

    BMC Atrium Core 7.6.03

    HP-UX   32-bit

      libicudatabmc.sl.32

      libicui18nbmc.sl.32

      libicuucbmc.sl.32

      libarjni7603_build001.sl

     

    libarutiljni7603_build001.sl

     

    libcmdbapi7603.sl

     

    libcmdbjni7603.sl

      libjlicapi7603_build001.sl

      64-bit

      libicudatabmc_hppa64.sl.32

      libicui18nbmc_hppa64.sl.32

      libicuucbmc_hppa64.sl.32

      libarjni7603_build001.sl 

    libarutiljni7603_build001.sl

      libcmdbjni7603.sl

      libjlicapi7603_build001.sl

    Linux   32-bit

      libicudatabmc.so.32

      libicui18nbmc.so.32

     

    libicuucbmc.so.32

     

    libarjni7603_build001.so

      libarutiljni7603_build001.so

      libcmdbapi7603.so  libcmdbjni7603.so

      libjlicapi7603_build001.so

      64-bit

     

    libicudatabmc_lx64.so.32

     

    libicui18nbmc_lx64.so.32

      libicuucbmc_lx64.so.32

      libarjni7603_build001.so

      libarutiljni7603_build001.so

      libcmdbapi7603_lx64.so

     

    libcmdbjni7603.so 

    libjlicapi7603_build001.so

    Table 2-4: C API library files (Sheet 3 of 4)

    Platform Files

  • 8/20/2019 BMC Atrium Core 7.6.03 Developer's Reference Guide

    33/236

    Chapter 2 Getting started 33

    BMC Atrium CMDB C API requirements and package contents

    HP-Itanium   32-bit (for client-side programs)

      libicudatabmc_hpia32.sl.32

      libicui18nbmc_hpia32.sl.32

      libicuucbmc_hpia32.sl.32

      libarjni7603_build001_hpia32.so

     

    libarutiljni7603_build001_hpia32.so

     

    libcmdbapi7603_hpia32.sl

     

    libcmdbjni7603_hpia32.so

      libjlicapi7603_build001_hpia32.sl

      64-bit (for server-side programs)

      libicudatabmc_hpia64.sl.32

      libicui18nbmc_hpia64.sl.32

      libicuucbmc_hpia64.sl.32

      libarjni7603_build001_hpia32.so 

    libarutiljni7603_build001_hpia32.so

      libcmdbapi7603_hpia64.sl

      libcmdbjni7603_hpia32.so

      libjlicapi7603_build001_hpia32.sl

    Table 2-4: C API library files (Sheet 4 of 4)

    Platform Files

  • 8/20/2019 BMC Atrium Core 7.6.03 Developer's Reference Guide

    34/236

    34 Developer’s Reference Guide

    BMC Atrium Core 7.6.03

    Compiler preparation for the BMC Atrium CMDB C API

    Before you write C API programs, make sure that the following software programsare installed or configured on your system:

      For Microsoft Windows 32-bit you need Microsoft Visual C++ version 7.0 or

    later. For Microsoft Windows 64-bit, you need Microsoft Visual C++ 9.0. tocompile your C API programs.

      Structure member alignment: 8 bytes (default)

      Set code generation to Multithreaded DLL, not DebugMultithreaded DLL.Where other included libraries cause conflicts, add /nodefaultlib:"MSVCRTD" to the project options to avoid using the Debug C runtime library. If yourprogram references this library at runtime, memory management errors willoccur when memory pointers are referenced by both the Debug and Release Cruntime libraries.

     

    ANSI standard C or C++ compiler (for UNIX)NOTE   

    If you develop C++ clients that run on HP computers using the BMC AtriumCMDB C API, compile your code with the __HPACC_THREAD_SAFE_RB_TREE flagenabled. This operation is necessary because the libraries that the tree header fileuses, which includes tree.cc, are not thread safe.

    Libraries for linking to BMC Atrium CMDB

    Table 2-5 lists the libraries that your programs must use for linking to BMC Atrium

    CMDB.

    Table 2-5: Link files

    Platform Links

    Windows cmdbapi7603.dll

    Solaris, Linux libcmdbapi7603.so

    HP-UX libcmdbapi7603.sl

    HP-Itanium libcmdbapi7603_hpia32.sllibcmdbapi7603_hpia64.sl

    AIX libcmdbapi7603.a

  • 8/20/2019 BMC Atrium Core 7.6.03 Developer's Reference Guide

    35/236

    Chapter 2 Getting started 35

    BMC Atrium CMDB Java API requirements and package contents

    BMC Atrium CMDB Java API requirements andpackage contents

    The Java API package includes several header files and library files. When youinstall the BMC Atrium Core solution, the Java API is also installed.

    For detailed information about the Java API, see BMC Atrium CMDB 7.6.03 Javadoc Help, which is located in the cmdb/sdk/javadoc/cmdbapi/ subdirectoryof your BMC Atrium Core installation directory

    BMC Atrium CMDB Java API requirements

    To build and run a Java API program on either Windows or UNIX, you need thefollowing environment components:

       J2SE™ Software Development Kit (SDK), version 1.5.0_11 or later.

      Windows DLL files or UNIX library files listed in Table 2-4 on page 30.

      GNU Standard C++ Library version 3 Release 5 or libstdc++5 package. Thisrequirement also applies to other BMC applications that use the BMC AtriumCMDB SDK.

    BMC Atrium CMDB Java API library files

    When you install BMC Atrium Core, a list of BMC Atrium CMDB Java API libraryfiles is installed with the application. For more information about these library

    files, see “Installation and deployment” of the JavaAPI_Overview.html file ofBMC Atrium CMDB 7.6.03 Javadoc Help.

    BMC Atrium CMDB Java API header files

    Table 2-6 lists the header files that are installed with the BMC Atrium CMDB JavaAPI.

    Table 2-6: Header files for BMC Atrium CMDB programs

    Header file name Description

    com.bmc.arsys.api.*; BMC Remedy AR System API functionscom.bmc.cmdb.api.*; CMDB API functions

    java.util.*;  Java utilities library

  • 8/20/2019 BMC Atrium Core 7.6.03 Developer's Reference Guide

    36/236

    36 Developer’s Reference Guide

    BMC Atrium Core 7.6.03

    BMC Atrium CMDB Java API configuration file

    The cmdbabi.properties file contains configuration settings for properties, suchas API timeout, minimum RPC Version, and Java Proxy connections. You canmodify these configuration settings to increase the server response time when you

    execute your BMC Atrium CMDB Java program. For more information about howto configure these settings, see the BMC Atrium Core 7.6.03 Troubleshooting Guide.

    BMC Atrium Core Web Services APIcom