How are software uninstall-install reconciled against cmdb_sam_sw_install table by discovery

Dhanraj Poojari
Mega Guru

When a software is uninstalled or installed on a server & next discovery scan executes on this CI. How is the corresponding record in the cmdb_sam_sw_install table reconciled and records added / deleted.

Note - We have Software Asset Mgmt (Pro) activated

When checked under the discovery logs(ECC queue) we could not locate any triggered pattern that collects software installation entries. We checked the "Windows - Installed Software" sensor and it doesn't seem to handle updates into cmdb_sam_sw_install either.

 

Can anyone clarify what process handles record management for the cmdb_sam_sw_install table. Or is this something that is protected and native to the product?

 

Edited : Just to clarify that this question is not related to software license harvesting or software model management. Below simple example to explain my question better,

Day x - CI has 25 software installations displayed in CMDB under "Software Installation" related list

Day x+2  - Two days later, server team performs few un-installation on the server 

Day x+5 - Discovery executes and it finds 23 software installation on the server

Now we would like to know

1 - what process deletes the additional two software installation records on the CI

2 - is this process real time (part of some pattern or probe) or is it a scheduled job ?

 

1 ACCEPTED SOLUTION

Dhanraj Poojari
Mega Guru

Pasting the feedback from tech support . From this response it seems like an internal java code processes data reconciliation on the Software Installs table 

 

The Windows - Installed Software" sensor calls the below line : this.addToRelatedList('cmdb_ci_spkg', filteredPackages, '', ''); https://<instance>.service-now.com/nav_to.do?uri=discovery_sensor.do?sys_id=df4bcfab0a0a0ba5007f09a96a434b74

addtoRelatedlist function is implemented in the DiscoverySensor script include

In the DiscoverySensor script include, we call the process function in the DiscoveryReconciler Script include and pass the table name "cmdb_ci_spkg" as a parameter. https://<instance>.service-now.com/nav_to.do?uri=sys_script_include.do?sys_id=4fa2ef960a0a0ba500d0ac5d968efa2d

In the DiscoveryReconciler script include, we have the below code snippet :

if (tableName == 'cmdb_ci_spkg')

{ var cmsoft = new GlideappCMDBSoftwareHelper(this.cmdbGr);

cmsoft.reconcile(obj.data);

So the above code calls the java class GlideappCMDBSoftwareHelper and the function reconcile which is responsible for populating the cmdb_sam_software_install table.

View solution in original post

7 REPLIES 7

Akshata jamdar
Mega Guru

Hello Dhanraj,

 

There are some business rules written on this, which searching for a matching record on the Software Discovery Model [cmdb_sam_sw_discovery_model] table. If a record exists in the Software Discovery Model table, then the Software Installation table updates the record. If no record exists in the Software Discovery Model table, then one is created.

For deletion Process suite component deletion this business rule is written on [cmdn_sam_sw_install] table.

 

Refer below link for more on this topic,

https://docs.servicenow.com/bundle/orlando-it-operations-management/page/product/discovery/concept/c...

 


Hope this will helps.

 

Kindly mark an answer as correct and helpful if it will resolve your query.

Regards,

Akshata

Dhanraj Poojari
Mega Guru

Thank-you for your responses Akshata Ashutosh. I have logged an HI ticket as well to explain the core software discovery process..

Its seems the Server attributes are discovered and mapped via a transparent process using Patterns / Probes. However software discovery and the related process of insert to the cmdb_sam_sw_install  is unclear and probably be protected. Will post the response from technical support here.

HI,

Basically we have to do reconcilliation and purging on our own for discovery.


For software table as well you have to removal procedure as shown in link. It will give you proper insights of usage and which software can be removed from table.

Thanks,
Ashutosh