How to identify/determine and analyze if a probe configuration (.cfg file) has become corrupted.
Possible symptoms of file corruption:
The file content of the <probe_name>.cfg file file or upon examination of the .cfg file sections in Raw Configure mode, you notice that it differs from what is displayed in the user interface (UI), e.g., IM versus Admin Console.
A probe or robot will not start (due to truncation/missing sections, corruption)
Probe crashes upon opening
Probe starting and then constantly restarting
The following content is just one example of identifying UIM .cfg file corruption and repairing it but there may be other scenarios where corruption may occur.
Notice that this section of sqlserver_monitor.cfg file had no 'start' and 'end' TAGs and appeared like so:
<connections>
user = <sample_user>
password = <encrypted_string>
auto_domain = no
description = <description/host/etc.>
conn_string = <hostname>
retry = 0
retry_delay = 1 sec
winauth = 0
encryption = no
enable_CrossDomain_conn = no
timeout = 5 sec
monitor_AlwaysOn = no
is_AlwaysOn =
tls_enable = no
If you look at the other sections of the sqlserver_monitor.cfg file, you'll notice that they all have start and end section tags, for example:
<connections>
<example_tag_1_start>
user = <sample_user>
password = <encrypted_string>
auto_domain = no
description = <description/host/etc.>
conn_string = <hostname>
retry = 0
retry_delay = 1 sec
winauth = 0
encryption = no
enable_CrossDomain_conn = no
timeout = 5 sec
monitor_AlwaysOn = no
is_AlwaysOn =
tls_enable = no
</example_tag_1_end>
etc...
etc...
Once the content of the file is repaired, the probe configuration should display all of the content - in this case the same number of connections in the Admin Console as there are in the Infrastructure Manager (IM) as expected.
Note that for many probes which may have been previously accessed/primarily configured with IM, when moving/migrating the configuration into the Admin Console, depending on the probe, you may need to do one or more of the following:
The section with the missing tags which was causing the issue in this case may have been added manually if it doesnt appear that there was file corruption, e.g., SOH (start of header) or corrupt characters, etc., as per the file when its displayed in Notepad++ with View-> Show Symbol-> 'Show All Characters' enabled.
Corruption in a UIM <probe>.cfg file may include special characters, e.g., σ, ??, " ", truncation, extra spaces/blanks, tabs, missing sections or sub-sections, umlauts, e.g., ◌̈, italic characters, etc.
Once the file has been corrected/repaired,
Here is an extract of an sqlserver_monitor.cfg file connections section with proper start and end tags:
Please remember to be careful not to miss or remove any start or end tags when configuring/editing probe packages for bulk deployment of cfg changes.
The corresponding ASCII table for corrupt characters you might find in Notepad++ when viewing the .cfg file for possible bad/corrupt characters are:
// 00 NUL '\0' (null character)
// 01 SOH (start of heading)
// 02 STX (start of text)
// 03 ETX (end of text)
// 04 EOT (end of transmission)
// 05 ENQ (enquiry)
// 06 ACK (acknowledge)
// 07 BEL '\a' (bell)
// 08 BS '\b' (backspace)
// 0B VT '\v' (vertical tab)
// 0C FF '\f' (form feed)
// 0E SO (shift out)
// 0F SI (shift in)
// 10 DLE (data link escape)
// 11 DC1 (device control 1)
// 12 DC2 (device control 2)
// 13 DC3 (device control 3)
// 14 DC4 (device control 4)
// 15 NAK (negative ack.)
// 16 SYN (synchronous idle)
// 17 ETB (end of trans. blk)
// 18 CAN (cancel)
// 19 EM (end of medium)
// 1A SUB (substitute)
// 1B ESC (escape)
// 1C FS (file separator)
// 1D GS (group separator)
// 1E RS (record separator)
// 1F US (unit separator)
Note CRLF (Carriage Return Line Feed) is not corruption.
ALL of the sqlserver connections will display and be further configurable when you replace the corrupted/improperly configured/edited .cfg with the repaired sqlserver_monitor.cfg.
And as this is currently 'working as designed,' the customer may have to add profile checkpoints for the connections but, the 'default' checkpoints are automatically added to the profile.
Please refer to 'Configure Predefined Checkpoints.'