Duplicate CI System Properties Audio Script
Duplicate CI System Properties Audio Script
I've navigated over to the ServiceNow documentation page and there are a couple of key properties to
be aware of that you have configuration options around. So one of them is called
glide.identification_engine.skip_duplicates. This one is set to true by default and when that is set to true
by default it's going to update the oldest CI. There's also a second property here called
glide.identification_engine.skip_duplicates. This will allow you to define a threshold as to when you
should update the oldest CI, so if the threshold is 3 then if 3 CIs are in the CMDB, then the oldest one
will be updated, however if a 4th duplicate is added, that is above the threshold and none of the records
would be updated, so you do have some control over this.
Now these are 2 properties that are not in the baseline instance and they have to be added as system
properties. So we're going to go ahead and add these properties, let's see how the behavior changes so
to navigate to the system properties page, you can type in the left navigator sys_properties.list, hit enter
and these are all the system properties within the system about 16159. Now this particular property is
not there so we're going to go ahead and click new and we basically paste the same value that was there
before, this was a boolean option of true | false, we're going to set the type to true |false and the value
to true so this means we do want to update the oldest of the CIs, if we set it to false then we don't want
to perform any update. Now that is the baseline functionality, but in order to use or set the threshold a
this property has to be set. From the documentation page the second property, you'll notice it is set to 5
by default, so that's why our oldest CI was in fact updated, if we had 6 CIs in the CMDB, all windows
servers and then none of them would be updated. We're going to go ahead and create a second
property, this is the threshold property. I'm going to set a value of 3, so now we've added these 2
properties. We've said yes update the oldest of the CIs as long as there are 3 or less duplicates, if there
are 4 then do not update any.
So back on a Windows Server table we have 2 CIs, I'm going to go ahead and do an insert and stay so we
have 4 CIs in the CMDB with this same exact serial number, so that is above our threshold. Let's go
ahead and run discovery one more time and see how the behavior changes, but before we do that let's
delete the deduplication task that was created earlier and then we'll go ahead and run another quick
discovery against the same target IP.
So after a short while discovery completes, now discovery is a little bit different this time as you notice
we only have 3 probes that started and 3 results that were returned so even though it says completed
it's different than the prior time where we had six that had started 6 have completed. If we look at the
actual record itself if you're familiar with discovery phases, we went through Shazam and then classify
and then we stopped when we got to identification so at that point the system was kind of going
through the IRE and trying to determine whether there was an update or creation that has to take place
however in this case, it found 4 CIs that had duplicate serial numbers and because our threshold was set
to 3, the behavior is don't update anything so the log is not really mentioning that per say. You do get an
error that it failed to explore and that's because the IRE was preventing it from doing any updates and if
we look at the deduplication tasks, one was created and if I look at it all 4 records are identified here as
duplicates. Discovery source is ServiceNow, so none of them were updated at all so those properties
can be useful if you want to change the behavior of when duplicate CIs are updated based on number of
common duplicates. Remember the default is true which means update the older CI as long as there are
5 or less CIs that are duplicates, anything greater than that, you'll end up with behavior similar to what
we just showed you where none of the records are update.