
- Post History
- Subscribe to RSS Feed
- Mark as New
- Mark as Read
- Bookmark
- Subscribe
- Printer Friendly Page
- Report Inappropriate Content
on 02-02-2023 10:41 AM
Software Asset Management Properties
You have all seen them and maybe you are your organization’s expert who breaks through the mystery of what they do and how they impact SAM functionality or you are just as perplexed as many people and don’t have an expert to turn to for help. In either case, I believe this article will help you. My goal in organizing these words into what I hope are coherent sentences is to identify for you, the SAM Admin or System Admin supporting a SAM Team, the purpose and functionality of each SAM System Property.
The beginning is a great place to start, so let me first point you to the ServiceNow documentation page on this topic. For many of the properties, I’m going to elaborate beyond what it presents. Note that all documentation links provided in this article are to Tokyo Release documentation. Navigate to All>Software Asset>Properties to find the list of SAM System Properties.
Default Group and Default Subgroup Setting for the Weekly Reconciliation Run
com.snc.samp.recon.group: The Default Group is used to identify a primary grouping of reconciliation results to be used each time the “SAM – Software License Reconciliation” Scheduled Job executes. The instructions on the Software Asset Management Properties page for the Default Group are as follows; “Select the default Group setting for the weekly run of reconciliation. The choice here will determine how rights and software installations are grouped during reconciliation. Only one of the following values can be set: None, Company, Cost Center, Country, Department, Region.”
com.snc.samp.recon.subgroup: The Default Subgroup is used to further refine the primary results into an additional grouping. The important thing to note in the instructions provided for this system property is that the value cannot be the same as what was chosen for the Default Group. This makes sense, you can’t group by the same thing twice.
So now we know that the two grouping properties work together to aggregate Reconciliation Results but let me expand your knowledge to include "how" they work. In response to a question in the ITAM Forum on how Grouping works, I opened an explanation of grouping by Country this way; “All grouping methods, department, country, etc. are driven by two data elements. First, the SW Entitlement must have that value set. Second, the corresponding value on the CI [where the software is installed] must be present or referenced by dot walking.” I then tried to state that information again but more succinctly for grouping by Country, “it boils down to … the Country value tied to the chosen location on the SW Entitlement being matched to the Country value of the Location attribute of the ‘Installed on’ device for the SW Installation record”. I realize that sounded like circular logic so let me try to reflect that in plain speak but showing the dot-walked data elements. The first data element is the country value on the SW Entitlement [software entitlement record].[location].[country] while the second data element is the country of the SW Installation [software installation record].[installed on].[location].[country]. The most important thing to keep in mind when choosing to group Reconciliation Results is that you must have business processes in place to prevent the required data elements from being left unpopulated.
Run reconciliation with all available custom license metrics
com.snc.samp.recon.enablecustommetrics: This system property is enabled by default. It allows the Reconciliation engine to compute results for software with Software Entitlements that use a Custom License metric. If this system property is disabled, reconciliation results will not be calculated using software entitlements having a custom license metric. Here is the documentation link for adding a custom license metric. The default sample script for a custom license metric documentation is here.
Enable debugging of reconciliation results
com.snc.samp.debug: Disabled by default, the debug reconciliation results system property, when active, will add debugging details to System Logs. There can be a significant performance drop within your instance when this is enabled. This feature is useful to ServiceNow Support and ServiceNow Development Engineers. If you, as an Admin or User wish to see details about Reconciliation do not enable this system property. Instead, leverage the details found by clicking on Reconciliation Complete under the Progress Summary of the Reconciliation Results list view. Note that you may need to add the Progress Summary to the available columns.
When you click on Reconciliation Complete, two tabs are available for review. Reconciliation Progress Details and Reconciliation Aggregation Timings. This detail of information while informative really isn’t critical to your successful use of SAM unless your Reconciliation job is failing, and reconciliation doesn’t complete. In the case of failure, you can leverage these details to gain insight into where the problem may lie.
Automatically create software models for all ‘licensable products.
com.snc.samp.automaticsmrcreation: This property was created early in the product life of SAM. At that time early adopting customers voiced a need to be sure that every software model needed in their environment be created either by a user or by automation. When this system property is enabled, each Discovery Model representing licensable software is evaluated at the end of the Reconciliation process to determine if it was accounted for during reconciliation processing. Those that were not, did not because a Software Model with a Discovery Map covering the Discovery Model was not found. In this case, a SW Model will be created and a Discovery Map covering the Discovery Model will be populated into the appropriate field on the new Software Model record.
It is the primary recommendation of ServiceNow Product Success that customers leave this system property disabled until a time when SAM product adoption is high, and the bulk of the organization’s software estate is known and accounted for. At this point, enabling the system property will allow SAM Admins visibility into software that has been introduced to the computing environment outside of standardized software request and fulfillment processes or that may have been missed during SAM configuration.
Select the level of aggregation for reconciling licenses for Oracle databases on VMWare.
com.snc.samp.oracle.reconlevel: This property is available in a ServiceNow instance when the SAM publisher pack for Oracle is active. Three aggregation options are available for this system property with ESX Cluster set as the default: ESX, ESX Cluster, VCenter(s).
- ESX: Aggregation considers all processor cores on the ESX host.
- ESX Cluster: Aggregation considers all processors on every ESX server within a cluster.
- vCenter(s): Aggregation considers all processor cores on every ESX server and licensing calculations are based on the ESXi version used by your VMware virtual environment. Documentation on supported ESXi versions is located here.
Use host affinity for reconciling licenses for Oracle databases on VMware at the vCenter(s) aggregation level.
com.snc.samp.oracle.hostaffinityenabled: Enables Software Asset Management to account for VM-Host affinity rules when reconciling Oracle database licenses within VMware vCenter Server instances. This property is applicable only if you set the aggregation level for Oracle reconciliation to vCenter(s) in the Select the level of aggregation for the reconciliation calculation of VMware based Oracle instances property.
VM-Host affinity rules enable you to specify the physical ESXi hosts on which your virtual machines can run. If provisions are made for VM-Host affinity rules in your Oracle license agreement, you can lower your licensing obligations by accounting for these rules when licensing your Oracle Database servers.
Two additional documentation topics may help you with this one: Oracle databases in soft-partitioned environments and the .pdf from VMware.com, Understanding Oracle Certification, Support and Licensing for VMware Environments.
Automatically create software models for all ‘not licensable’ products.
com.snc.samp.automaticsmcreation: Like its counterpart we discussed above, this property when enabled creates SW Model records for discovered software that doesn’t have a corresponding SW Model present when Reconciliation runs. And like its counterpart, ServiceNow Product Success suggests leaving this system property disabled until your SAM Practice matures and you have a good handle on your software estate. Enabling this property can give visibility to trial software, free software, and possibly software your organization may choose to blacklist.
Enter the name of the true/false field added to the cmdb_ci_hardware table to exclude software installed on selected devices from Software Asset Management.
com.snc.samp.exclude_device_flag: This feature allows you to create a Yes/No (true/false) field on the base CMDB Hardware table that when marked Yes, instructs the Reconciliation engine to skip over that device not considering its installed software in reconciliation results. This is a feature that might be used for devices in a lab or test environment where your Terms and Conditions allow for uncharged software usage. Due to the nature of ServiceNow’s extended tables feature, once the attribute is added to the CMDB Hardware table it will also be available for records stored in the following tables extended directly from the Hardware table and any tables extended from those as well. The list shown below are the tables directly extended from CMDB Hardware as of the Tokyo release in an instance where both Enterprise Asset Management and Hardware Asset Management are installed:
- Chassis
- Cisco UCS Chassis
- Cisco UCS Equipment
- Communication Hardware
- Computer
- Converged Infrastructure
- Disk Shelf Chassis
- Enclosure
- Equipment holder
- Healthcare device
- IoT Device
- Mass Storage Device
- Network Gear
- Operational Technology (OT)
- Out-of-Band Device
- PDU
- Printer
- Serverless Hardware
- Unclassed Hardware
- UPS
Enable scheduled jobs when using third party Datasource Integration Framework
Com.snc.samp.ire.datasource.integration: This property works in conjunction with the SAM – Deduplicate Install Table scheduled job to remove duplicate software installation records. When a single device is discovered by multiple discovery sources, multiple software installations for the same software can be created. Using this system property and executing the scheduled job will identify and remove duplicate software installations created against a single CI. The scheduled job will update the “Active” value on the software installations table to True for one of the duplicates and False for the remaining duplicates.
Enter the license period (in days) to be considered during reconciliation for applications published on (a) Citrix environment.
com.snc.samp.citrix.app.license.period: This value is only present if the Citrix publisher pack is active. The value corresponds to the Citrix license assignment period; the term that Citrix Virtual Apps and Desktops licenses are assigned to a user or device. The default license assignment period is 90 days; thus the default of this system property is also 90 days. The Citrix licensing FAQ on this topic is here.
Enter the period (in days) to be considered for peak usage consumption for engineering applications.
com.snc.samp.eng_app.peak_usage_period: This property is rather straight forward. It identifies the number of sequential days to consider for peak usage when computing engineering license consumption. The default is 30 days, representing about month of usage. The sam_admin role is required to update this value. It works in conjunction with Engineering license management.
Enter the number of scheduled jobs to run in parallel for reconciliation.
com.snc.samp.recon.max_workers: The default value of four indicates four jobs can run concurrently; each job computing reconciliation for a specific publisher. Be cautious when changing this value. Test the results in a sub-prod environment before making them in production.
Enable ML Normalization for discovered software.
com.snc.samp.enable.ml_normalization: When active this property enables Machine Learning Normalization of Software Discovery Models that were not normalized using Software Content Library rules. Modification of this system property requires the admin role.
Enter the threshold period (in days) after which billing data pulled from Cloud is considered old. This affects the license type confidence.
com.snc.samp.sam_ci_billing_threshold: This property pertains to Cloud Insights, which can pull billing data from the Cloud service. Use of that data is used to identify the license type for SQL Server installed on AWS. It is also used for rendering of financial savings and expenditures on dashboards. The default value is 30 days.
Red Hat Enterprise Linux Server For Virtual Datacenters license cost optimization threshold.
com.snc.samp.redhat.license.threshold: The documentation on this system property covers it very well. You can find that documentation here. In short, change this value only if your contract doesn’t adhere to a 3.2 ratio of RHEL Server subscription list price to the RHEL Virtual Datacenter subscription list price.
Microsoft Windows Server for Datacenter license cost optimization threshold.
com.snc.samp.windowserver.license.threshold: Used to identify the host or cluster density, this system property is a ratio of the cost of Datacenter and non-Datacenter licenses. It identifies the optimal cluster sist for Data center licenses. Documentation on Windows Server Standard and Windows Server Datacenter Edition license optimization and when to change the default property value can be found here.
Ratio of the entitlement cost of a Microsoft SQL Server Standard with Software Assurance to the cost of Microsoft SQL Server Enterprise with Software Assurance.
com.snc.samp.sqlserver.standard_sa.to.enterprise_sa.cost.ratio: The default ratio value of 0.25 is based on publicly available list prices as of the Tokyo ServiceNow Release. You should change this value if you have negotiated rates other than the list price. To identify the correct ratio, divide your MSSQL Server Standard Edition licenses with Software Assurance by the price of your MSSQL Server Enterprise Edition licenses with Software Assurance. The ratio is used to identify the most cost-effective licensing solution for each of your MSSQL Server clusters. Details on this topic can be found here.
Ratio of the entitlement cost of a Microsoft Software Assurance entitlement to the cost of a Microsoft Non-Software Assurance entitlement.
com.snc.samp.ms.sa.to.nonsa.cost.ratio: The default value is based on the list price available at the time of the Tokyo ServiceNow release. If you have negotiated a different rate, you should modify this system property. To identify the correct ratio, divide the price of your MSSQL Server licenses with Software Assurance by MSSQL Server licenses without Software Assurance.
- 6,951 Views

- Mark as Read
- Mark as New
- Bookmark
- Permalink
- Report Inappropriate Content
Thank you very much, Daniel, for such a detailed article. Helpful to understand the SAM properties in detail.
- Mark as Read
- Mark as New
- Bookmark
- Permalink
- Report Inappropriate Content
Thanks for the excellent expanded and clarified explanations.

- Mark as Read
- Mark as New
- Bookmark
- Permalink
- Report Inappropriate Content
Thank you. This should be part of the documentation.
- Mark as Read
- Mark as New
- Bookmark
- Permalink
- Report Inappropriate Content
Thanks for this Daniel, your work is always extra-informative.

- Mark as Read
- Mark as New
- Bookmark
- Permalink
- Report Inappropriate Content
Hi @Daniel Slocum, this article is great, would you please be able to shed more light, or provide more context to the SAM system property called com.snc.samp.manage.published.products ? it's not in your list.
- Mark as Read
- Mark as New
- Bookmark
- Permalink
- Report Inappropriate Content
Hi @Community Alums ,
I had the same question, were you able to find more info on this system property "com.snc.samp.manage.published.products" apart from what's mentioned in the docs. Seems to be incorrectly working for us.