sdgtw probe verification failure
search cancel

sdgtw probe verification failure

book

Article ID: 138774

calendar_today

Updated On:

Products

DX Unified Infrastructure Management (Nimsoft / UIM)

Issue/Introduction

We have been running the sdgtw probe with ServiceNow with no issue for some time now but today the probe was throwing the following error:

"Queue is not subscribed as there is no valid Service Desk connection. Please check Service Desk connection details or configure service desk(s)"

The ticket queue attached to the hub was backing up. We cleared the queue and restarted the probe and the probe still was giving the same error. sdgtw.cfg contents appeared as expected.

Via the Admin Console we tested the connection via validate connection but it shows Validation Failed. Log showed errors from the connection test:

Oct 17 09:00:38:215 [attach_socket, sdgtw] removing id form the connection details
Oct 17 09:00:38:215 [attach_socket, sdgtw]  useCustomEndpoint is null and customEndPoint is null
Oct 17 09:00:38:215 [attach_socket, sdgtw] Inside doSDConnectionConfigurations(String, connectionDetails) method. serviceDesk ServiceNow
Oct 17 09:00:38:215 [attach_socket, sdgtw] putRequest :PUT /xx-xxx-xx/xxx/v2/config/integration/ServiceNow HTTP/1.1
Oct 17 09:00:45:744 [attach_socket, sdgtw] Update for ServiceNow is returned with code: 200
Oct 17 09:00:45:744 [attach_socket, sdgtw] In validateIntegration method :url is http://xxxxxxxx:13327/xx-xxx-xx/xxx/v2/config/integration/ServiceNow/testConnection
Oct 17 09:00:45:744 [attach_socket, sdgtw] ::: going to call parseResponse ::: URL ::MDR http://xxxxxxxx:13327/ca-nim-sm/api/v2/config/integration/ServiceNow/testConnection :: ServiceNow
Oct 17 09:00:53:030 [attach_socket, sdgtw] responseCode :: [200] response message :: [OK]
Oct 17 09:00:53:031 [attach_socket, sdgtw] Exception in making the connection to MDR:java.lang.NullPointerException
at com.nimsoft.probe.gateway.sdgtw.SDGtwProbe.validateConnectionDetailsWithoutUpdating(SDGtwProbe.java:1695)
at com.nimsoft.probe.gateway.sdgtw.SDGtwCallbackHandler.validateSDConnection(SDGtwCallbackHandler.java:168)
at com.nimsoft.probe.gateway.sdgtw.SDGtwCallbackHandler.handleCtdCallback(SDGtwCallbackHandler.java:99)
at com.nimsoft.probe.common.ctd.AbstractCtdProbeCallbackHandler.cbHandleCtdCallback(AbstractCtdProbeCallbackHandler.java:809)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at com.nimsoft.nimbus.NimServerSession$NimServerSessionThread.performCallback(NimServerSession.java:225)
at com.nimsoft.nimbus.NimServerSession$NimServerSessionThread.handleMessage(NimServerSession.java:178)
at com.nimsoft.nimbus.NimServerSession$NimServerSessionThread.run(NimServerSession.java:123)
 
 
In Service Now, we see the following: 
 
Field(s) present in the query do not have permission to be read:
com.glide.processors.soap.SOAPProcessingException:
Field(s) present in the query do not have permission to be read:
com.glide.processors.soap.command.GetRecords.get(GetRecords.java:38)
com.glide.processors.soap.command.AGet.process(AGet.java:70)
com.glide.processors.soap.SOAPProcessorThread.doCommand(SOAPProcessorThread.java:312)
com.glide.processors.soap.SOAPProcessorThread.doCommand(SOAPProcessorThread.java:299)
com.glide.processors.soap.SOAPProcessorThread.processStandardWebService(SOAPProcessorThread.java:231)
com.glide.processors.soap.SOAPProcessorThread.processBody(SOAPProcessorThread.java:209)
com.glide.processors.soap.SOAPProcessorThread.processRequest(SOAPProcessorThread.java:176)
com.glide.processors.soap.SOAPProcessorThread.run0(SOAPProcessorThread.java:131)
com.glide.util.ParentedThread.run(ParentedThread.java:51)
 
As far as we know, no one made any changes to the sdgtw probe.

Environment

  • Release : 9.0.2
  • Component : UIM - SDGTW

Resolution

When manually testing connectivity to the Servicenow instance from the sdgtw probe using the configured UIM user we cannot connect. Someone must have changed the user's roles in ServiceNow. This user is missing the personalize_dictionary role.

Using the sdgtw.cfg in our lab, we enabled ALL NIM traces and see that the following SOAP request was failing with permission denied in the NIM.log: 

[17/10/19 12:16:48:048 PDT] [qtp211968962-26] DEBUG common.GenericSOAPDispatchService: Using end point URL : https://<example>.com/sys_dictionary.do?SOAP for service : sys_dictionaryService
[17/10/19 12:16:48:048 PDT] [qtp211968962-26] DEBUG common.GenericSOAPDispatchService: Creating dispatch
[17/10/19 12:16:48:048 PDT] [qtp211968962-26] DEBUG common.GenericSOAPDispatchService: Finished refreshing the service and dispatch
[17/10/19 12:16:48:048 PDT] [qtp211968962-26] TRACE common.GenericSOAPDispatchService: SOAP Request to follow...
[17/10/19 12:16:48:048 PDT] [qtp211968962-26] TRACE common.GenericSOAPDispatchService: <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Header/>
<SOAP-ENV:Body>
<getRecords>
<__encoded_query>name=sys_nav_link^ORname=sys_metadata</__encoded_query>
</getRecords>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
[17/10/19 12:16:48:048 PDT] [qtp211968962-26] DEBUG common.GenericSOAPDispatchService: Starting dispatch invoke for getRecords operation
[17/10/19 12:16:48:048 PDT] [qtp211968962-26] DEBUG common.GenericSOAPDispatchService: Synchronizing the method while invoking the soap request
[17/10/19 12:16:48:048 PDT] [qtp211968962-26] ERROR common.GenericSOAPDispatchService: javax.xml.ws.soap.SOAPFaultException thrown in Invoke With Retry: Exception Message: 'com.glide.processors.soap.SOAPProcessingException: Field(s) present in the query do not have permission to be read': attempting call #2
[17/10/19 12:16:53:053 PDT] [qtp211968962-26] TRACE common.GenericSOAPDispatchService: SOAP Request to follow...
[17/10/19 12:16:53:053 PDT] [qtp211968962-26] TRACE common.GenericSOAPDispatchService: <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Header/>
<SOAP-ENV:Body>
<getRecords>
<__encoded_query>name=sys_nav_link^ORname=sys_metadata</__encoded_query>
</getRecords>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
 
[17/10/19 12:16:53:053 PDT] [qtp211968962-26] DEBUG common.GenericSOAPDispatchService: Starting dispatch invoke for getRecords operation
[17/10/19 12:16:53:053 PDT] [qtp211968962-26] DEBUG common.GenericSOAPDispatchService: Synchronizing the method while invoking the soap request
[17/10/19 12:16:53:053 PDT] [qtp211968962-26] ERROR common.GenericSOAPDispatchService: WebserviceException thrown in Invoke With Retry: Exhausted all retries with exception message 'com.glide.processors.soap.SOAPProcessingException:
Field(s) present in the query do not have permission to be read'
 
This means that the UIM user does not have the personalized_dictionary permission which is required to access the sys_dictionary.do service. The NIM API reads this to pull the available incident fields that can be configured.
 
***To remedy this issue, engage the ServiceNow admin to add/fix the role. The user needs 3 roles in ServiceNow for the sdgtw probe to work as expected***
  1. ITIL
  2. personalized_dictionary
  3. SOAP
These sdgtw requirements are documented in the sdgtw probe's Release Notes:

 

Additional Information

To access NIM.log:

1. Enable the SDGTW CA-NIM-SM trace log file with steps below:
a. Navigate to the <installPath>\Nimsoft\probes\gateway\sdgtw\NIMSM_WORKSPACE\webapp\WEB-INF\config directory and make a backup of log4j2.xml 
b. Modify the log4j2.xml file. Change all occurrences of the following strings:

From :
level="INFO"
level="ERROR" 

To:
level="ALL"

Save the changes.
c. Cold start (deactivate then activate) the sdgtw probe

2. Test the CA SDM connection again.
3. Collect \Nimsoft\probes\gateway\sdgtw\NIMSM_WORKSPACE\webapp\WEB-INF\logs\Nim.log to identify why the connection to CA SDM is failing.