This knowledge article may contain information that does not apply to version 21.05 or later which runs in a container environment. Please refer to
Article Number 000385088 for more information about troubleshooting BMC products in containers.
Legacy ID:KA364183
Here are steps on how you can resolve this:
First exit all clients such as Developer Studio and User Tool.
Basically, anything that can be used to interact with the CDM. Please keep in mind that BMC Developer Studio for AR Server should never be used for BMC.CORE class administration.
1. Find the instructions to start and login into ARS with the cmdbdriver (AtriumCore Administration Guide).
The Sequence of commands to login into the cmdbdriver utility should be:
"init",
"log",
"ssp" (only if you are not using portmapper),
"ssc" (Set Configuration Settings [ option 2 and then 7200 for the time out of 2 hours. *1 see note])
2. Run this command once the cmdbdriver has been initialized:
Command: xexpdf
XEXPORT DEFINITION
Export all classes? (F): T
Export all attributes with classes? (T):
Filename for exported data: CDM.xml
CMDBXExportDef results
ReturnCode: OK
Status List : 0 items
This will produce an export of the entire CDM into an xml formatted file that has more or less ~50,000 lines or so.
*LET'S MAKE THIS EASY NOTE:
In Unix only you can push the cmdbdriver into "background" by typing CTRL-Z and then type "bg". To bring it back "forward" you can then type "fg".
This will allow you to do the next steps without having to exit the cmdbdriver process completely.
3. Using VI editor or some text editor (if Windows) reduce the file to just the set of attribute definition(s) you need to restore.
Please keep in mind that you need to restore the attribute from the class that "owns" it. So, in this example we would do this with the BMC.CORE:BMC_System class. (not BMC_Printer or BMC_Mainframe).
The contents of that file will now need to be reduced to just that attribute definition.
Start from line 1 and follow the "Instruction set" in caps (not including the lines in CAPs show only as "Instruction set").
Example of final result:
<?xml version="1.0" encoding="utf-8"?>
<cmdbDefinitionList xmlns="urn:remedy:schemas:cmdb" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:remedy:schemas:cmdb cmdbdef.xsd" cmdbDocVersion="3">
REMOVE ALL LINES STARTING FROM THE 2 ABOVE LINES ALL THE WAY TO THE "attribute" TAG. << Instruction set
<attribute>
<classNameId>
<namespaceName>BMC.CORE</namespaceName>
<className>BMC_System</className>
</classNameId>
<definition xsi:type="enumeration">
<attributeName>isVirtual</attributeName>
<attributeId>OS00C04FA081BAbMXaSAaq6rlgre4A</attributeId>
<fieldId>530054200</fieldId>
<entryMode>optional</entryMode>
<defaultValue>
<nullValue/>
</defaultValue>
<characList>
<attributeViewPermissions>
<groupId>-1098</groupId>
<groupId>-1090</groupId>
</attributeViewPermissions>
<attributeChangePermissions>
<groupId>60513</groupId>
<groupId>-1099</groupId>
<groupId>-1091</groupId>
</attributeChangePermissions>
<hidden>false</hidden>
<primaryKey>false</primaryKey>
<createMode>allowAnyUserToSubmit</createMode>
<auditType>none</auditType>
<namespace>BMC.CORE</namespace>
<description>Attribute that specifies whether the instance is virtual or physical. To ensure correct reconciliation with data created by BMC Software products, use NULL instead of No for an instance that is not virtual.</description>
<isDeprecated>false</isDeprecated>
</characList>
<limits>
<regular>
<valueList>
<value>No</value>
<value>Yes</value>
</valueList>
</regular>
</limits>
</definition>
</attribute>
REMOVE ALL LINES FROM THE CLOSING TAG "attribute" ALL THE WAY TO THE ONE BEFORE THE LAST LINE. << Instruction set.
</cmdbDefinitionList>
Save the file now.
4. Return to cmdbdriver process ("fg" if Unix) and run an import of this def file:
Command: impdf
DEFINITION IMPORT
Import Item List:
Number of import items (0):
Import option : Create/Overwrite (1-2) (1): 2
Filename containing import data: example.xml
CMDBImportDef results
ReturnCode: OK
Status List : 0 items
NOTE: This can take some time. Please be patient.
5. That is it. You're done. Check the CMDB Class Manager to verify that the attribute is now present in all children classes of the parent class.
(*1) If you need to load a large set of attributes then you will need to set a time out longer than the 5 minute default time out of the cmdbdriver.
For this you'll need to run the ssc command and set it to 7200 seconds (2 hours).
If you do not do this you might get a timeout error 94 (Time out during database query)
The following is the syntax to set the time out:
Command: ssc
SET SESSION CONFIGURATION
Session variable Id (0): 3
Datatype Null/Key/Int/Real/Char/Diary/Enum/Time/Bitmask/Byte/Decimal/
attach/currency/date/timeofday/join/trim/control/Table/Column/
ulong/coords/view/display (0-14, 30-34, 40-43) (2): 2
Integer Value (0): 7200
ARSetSessionConfiguration results
ReturnCode: OK
Status List : 0 items