This document has not been formally reviewed for accuracy and is provided "as is" for your convenience.
Summary
Question
The customer found the following error in the log file:
..\\HP\\SMOOLog\\SMOO-20171016.log .
10/06/2017 01:42:46 3468( 44) SMIS [ERROR][SMOOController]: SOAP Fault: org.springframework.remoting.RemoteAccessException: Could not access HTTP invoker remote service at [https://localhost:8443/oo/backwards-compatibility/pasFlowDataService]; nested exception is java.net.SocketTimeoutException: Read timed out
10/06/2017 01:42:46 3468( 44) SMIS [ERROR][SMOOController]: TypeError: response has no properties
This error appears 2 -3 times per day. The sync job is scheduled hourly.
The customer's environment:
SM 9.52 0011
Application: SM 9.52
OS Windows 2012 R2
UCMDB Enhancement 9:30.0
Webtier : 9.52
based on MS SQL 2012
Client: IE 11.0.9600.18792 - Java JRE 1.8.031
Answer
In order to solve this the customer changed the code in the SL SMOOController function invokeService.
They have built a loop (maximum 15) for retrying to receive the data from the OO Service.
The change is as follows:
// Original, wrzjro 27.09.17
/*
invokeService: function(request){
try{
var OOService = new lib.WSCentralServiceService.WSCentralServiceService(this.ooservice_url,this.userName,this.password);
var response = OOService.invoke( request,null,null );
if(response.isFault()){
// second try , wrzjro 27.09.17
this.log.error("SMOOController","FN invokeService second try to receive data from OO");
response = OOService.invoke( request,null,null );
if(response.isFault()){
this.log.error("SMOOController", "SOAP Fault: " + response.faultstring.getValue() );
}
else return response;
}else{
return response;
}
}catch(e){
this.log.error("SMOOController", e.toString());
}
},
*/
invokeService: function(request){
// created by wrzjro, IM00556777 28.09.17
var i = 0;
var OOService = new lib.WSCentralServiceService.WSCentralServiceService(this.ooservice_url,this.userName,this.password);
do {
i++;
var response = OOService.invoke( request,null,null );
if (i >1) {
this.log.error("SMOOController","FN invokeService " + i + " try to receive data from OO");
lib.ritTools.sleep(i*5000);
}
}
while (response.isFault() && i < 15)
if(response.isFault()){
this.log.error("SMOOController", "SOAP Fault: " + response.faultstring.getValue() );
}
else return response;
},