Archive for September, 2011

How can I rename a Class in CMDB 1.1

Tuesday, September 27th, 2011

As per Remedy’s knowledge base article KA337587, there is no feature to rename a class in CMDB 1.1. – that is, to rename the datastore forms and metadata.
 
However, there is an easy configuration step to change the name of a class throughout the User Interface.
 
Using Remedy User, query on the form named SHR:SchemaNames to find the record created for the class.
Change the value of the ‘Proper Name’ field to the desired value and save the record.
 
If you now access the class from Remedy Asset Manager, and bring up the AST (GUI form), it will have the new name.
 
Note: If you change the name of a class using this procedure, you will need to update the existing data so that it will be available in queries.

– Open the form BMC:BMC_AssetBase in Remedy Administrator

– Choose from the menu, Form –> Current View –> Fields in View, and add the field named UserDisplayObjectName(490021100)

to the view.

– Save the form.

– Login to Remedy User and query on the UserDisplayObjectName field for the old value of the Proper Name (before you changed it) to find the records that need to be updated.

– Update the records returned with the correct, updated value of the ‘Proper Name’ as set above.

 

Cannot correct an attribute definition if it fails to build in CMDB

Tuesday, September 27th, 2011

PROBLEM: Cannot correct an attribute definition if it fails to build in CMDB 1.1:

If you create an attribute on a class, and define it so that it will not build – for example if you include a hyphen in the attribute name – then you cannot open the attribute defintion and change the name. When you attempt to do this, the attirbute dialog opens up blank.

Solution:

This has been logged as a defect SW00224813, and below is the workaround for this issue.

Perform the following steps to delete the “Change Pending” attribute record from the back-end form, and then re-add the attribute correctly from the Class Manager

  1. Search in the OBJSTR:AttributeDefinition form to locate the offending attribute. Delete it.
  2. Search for the entry which is pending related to the class .Delete it.
  3. Search in the OBJSTR:Class form for the pending entry related to that class and delete it.

 

Understanding and Troubleshooting problems making changes via the Class Manager

Tuesday, September 27th, 2011

The process flow of saving a class in the Class Manager of CMDB 1.1 is the following:

1. When you click on the Save button on a class from the Class Manager, the Active Link OBJSTR:AL_toCallFilterAPI2 does a push fields to create a new record in the OBJSTR:Pending form

2. The filter OBJSTR:Pend_InitiateApplicationCommand fires on creation of a record in the OBJSTR:Pending form, and does a run process:

  • Application-Command CMDB Sync-Meta-Data -o “$PendingID$

which is an internal process, which puts a record in the Application Pending form and sends a signal to 390308

3. The dispatcher receives that signal, and since arcmdbd process registers with the dispatcher for entries where category = CMDB, the dispatcher signals the arcmdbd process that it has work to do. (the same basic mechanism applies to all the application server processes – including Approval Server, Assignment Engine, and Brie)

4. The arcmdbd process receives the signal, deletes the record from the Application Pending form, and makes the CMDBSyncMetaData API call

5. The creation of the forms/workflow, and updates to metadata to be Active, occurs inside the CMDB API. Upon completion of the API, the CMDB API updates the status of the entry in OBJSTR:Pending form to “Complete”

6. The filter OBJSTR:Pend_DeleteCompletedEntry is trigged by the status change, and sets ‘deleted’ field to True.

7. This triggers the filter OBJSTR:DeleteEntry to delete the record from the OBJSTR:Pending form

Note: The mechanism described above is specific to saving the class from the Class Manager – it is designed to give visibility in the client, for a process that fundamentally all happens on the server. If you make changes via cmdbdriver, no record is created in OBJSTR:Pending or Application Pending, and the dispatcher and arcmdbd process are not used.

 

Troubleshooting problems where the class stays in “Pending” status:

1. Click on the Change Pending record in the Class Manager and click on the View Log button. If there was an error in synching the class, the status will say Error and give an error message. If the status is “Pending”, it either means the arcmdbd process never issued the CMDBSyncMetaData API call, or the process is still happening within the CMDB API. (There isn’t a very good way to determine the latter – API and SQL logging on the server are really the only guage, but that is imperfect.)

2. Check if the arcmdbd server process is running, and if the dispatcher (arsvcdsp) server process are running on the server. If not, verify both are listed in the armontor.cfg/conf file.

3. Enable arcmdbd logging by adding CMDB-Debug: T to the ar.cfg/conf file (see page 40 of the CMDB 1.1 Install Guide) and restart the AR Server

4. If no log file is generated, comment out the line from armonitor.cfg/conf file and run that line from the console to verify the arcmdbd.