Notifications

168 views

Description

On an instance that has the Data Archiving plugin installed and in use for the CMDB tables, the CMDB Identification and Reconcilliation engine can throws a huge number of errors like this in the syslog table: 
 
CompactRelation: failed to get details of CI bc4fe864135b9bc0574c75276144b09f: no thrown error | syslog | 000009c213579700f6a7f107d144b0b3 | system | 2018-07-15 21:36:31 |  | 2 | com.glide.ui.ServletErrorListener | service_cache_mgr 
 
And the app node localhost log:
 
2018-07-26 10:35:54 (605) Default-thread-3 AAD39C29136797C04DD2F027D144B0B4 #10927362 /ngbsmprocessor.do Parameters -------------------------
actionType=loadBasic
mapScriptID=
serviceMode=false
cmd=get
id=8f59d4dce19f71c424893534899bf84e
cacheKill=1532626554567
2018-07-26 10:35:55 (694) Default-thread-3 AAD39C29136797C04DD2F027D144B0B4 SEVERE *** ERROR *** service_cache_mgr : CompactRelation: failed to get details of CI 0008b8644fe49ec06433ab99f110c7cf
2018-07-26 10:35:55 (696) Default-thread-3 AAD39C29136797C04DD2F027D144B0B4 SEVERE *** ERROR *** service_cache_mgr : CompactRelation: failed to get details of CI 001ae60913d2ba006203b2d96144b0ad
2018-07-26 10:35:55 (698) Default-thread-3 AAD39C29136797C04DD2F027D144B0B4 SEVERE *** ERROR *** service_cache_mgr : CompactRelation: failed to get details of CI 009d6cd81337fac0b23ffea2e144b057
2018-07-26 10:35:55 (700) Default-thread-3 AAD39C29136797C04DD2F027D144B0B4 SEVERE *** ERROR *** service_cache_mgr : CompactRelation: failed to get details of CI 00fc04514f126a806433ab99f110c70d
.......
 
This code runs when the Dependency View ngbsmprocessor needs to collect details of all related CIs.
 
This causes 2 main problems:
  • ServiceCacheManager.getInboundRelations and .getOutboundRelations won't work properly, even though the data is there in the instance.
  • On an instance using the CMDB and discovery sources heavily, this can add such a large number of entries to syslog tables to cause disk space and performance issues. 
 
Unlike the CI Form, which realizes the CI is archived and redirects to the archived record,  this code does not check to see if a CI record is archived and instead just throws an error.
 
Neither the Archiving nor CMDB plugins have any feature for 'cascade archiving' related records such as cmdb_rel_ci when a CI is archived that would prevent a relationship record remaining after a CI is archived.

Steps to Reproduce

 

On a clean Kingston instance with demo data:
1/ Install 'Data Archiving' plugin
2/ For the purposes of this test, create an archive rule for the Linux Server table to archive any  CIs with condition: name starts with lnux, which will cover 'lnux100' and 'lnux101' CIs
3/ Activae the rule, then manually run the 'Archive' scheduled job to avoid waiting
4/ Open the form for the "Client Services" business service CI. This has relationships with those server
5/ Open the Dependency view (BSM Map) from the button ion the CI relations section (which you'll notice doesn't show the archived Linux servers)
6/ Check the syslog entries, and you will see a pair of errors, one for each linux server
 
2018-07-27 18:18:28 Error service_cache_mgr : CompactRelation: failed to get details of CI 53958ff0c0a801640171ec76aa0c8f86: no thrown error com.glide.ui.ServletErrorListener
2018-07-27 18:18:28 Error service_cache_mgr : CompactRelation: failed to get details of CI 539747cac0a801640163e60735fbbf6e: no thrown error com.glide.ui.ServletErrorListener 

Workaround

For Data Archiving there is an option to archive related records and whenever a rule is created for CMDB CI archival, the corresponding relations should also be archived.

However, cmdb_rel_ci (CMDB relationship) table has two references to cmdb_ci table (parent and child). When creating a "Archive Related Records" rule, you can only select 1 of those fields, and therefore this workaround is only half a workaround, but is better than nothing

  1. In your CMDB related archive rules, add a new Archive Related Records entry
  2. Select "Relationships" in drop down, and it will pre-select "parent" element and there is no way to add the "child" element as well. 

 


Related Problem: PRB1296280

Seen In

There is no data to report.

Associated Community Threads

There is no data to report.

Article Information

Last Updated:2019-05-21 11:41:35
Published:2019-01-22