Problems Connecting to ServiceOptimizer
On This Page:
The ServiceManager application works partially by interacting directly with the ServiceOptimizer database, and partially via the SOAP APIs into the ServiceOptimizer Server. This page covers a number of previously experienced issues with this latter type of connection. If you have such an issue reported to you, please check within this section for a Reason/Resolution before reporting to the ServicePower Support Team.
The Problem
Users attempt, but fail, to logon to ServiceManager even though they are correctly specified in SP085_USERS
.
There are a number of reasons why a user's logon would fail:
Unknown Host | - I/O exception caught when processing request: unknownhost - Retrying request - unknownhost AxisFault faultCode: {http://schemas.xmlsoap.org/soap/envelope/}Server.userException faultSubcode: faultString: java.net.UnknownHostException: unknownhost faultActor: faultNode: faultDetail: {http://xml.apache.org/axis/}stackTrace:java.net.UnknownHostException: localhost-wrong at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:177) ... java.net.UnknownHostException: unknownhost ... |
---|---|
Wrong Port Number: a) Port Not Listening b) Connecting to wrong port type (GanttRouter/API Agent) | - I/O exception caught when processing request: Connection refused: connect - Retrying request - Connection refused: connect AxisFault faultCode: {http://schemas.xmlsoap.org/soap/envelope/}Server.userException faultSubcode: faultString: java.net.ConnectException: Connection refused: connect faultActor: faultNode: faultDetail: {http://xml.apache.org/axis/}stackTrace:java.net.ConnectException: Connection refused: connect ... java.net.ConnectionException:Connection refused: connect |
The Reason
ServiceManager's SOAP connection has been incorrectly specified.
The Resolution
The service_manager.properties
 file specifies the URL to be used for SOAP based connectivity with ServiceOptimizer. If this URL is incorrectly specified then this connection will fail. To resolve this issue ensure that the specified URL is correct. e.g.
soap.server.url=http://sp-prod:18081
The Problem
The user's logon fails even though their SP085_USER set up is correct and they have correctly entered their credentials.
Review of the ApiAgent log would show:
2660 SoapThread ApiAgent SOAP <: login rubbish,,jodd,1,jodd 2660 ---- ApiAgent SOAP >: +2\n.\n ---- HTTP/1.1 200 OK ---- Server: gSOAP/2.8 ---- Content-Type: text/xml; charset=utf-8 ---- Content-Length: 576 ---- Connection: keep-alive ---- <?xml version="1.0" encoding="UTF-8"?><SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:SOAP-ENC="vicepower.com/soap/spower.wsdl"> ---- <SOAP-ENV:Body><sp:loginResponse><status>InternalError</status><responseCode>175</responseCode></sp:loginResponse></SOAP-ENV:Body> ---- </SOAP-ENV:Envelope>
The Reason
To connect to ServiceOptimizer, via SOAP, ServiceManager must be configured with both the valid SOAP URL and the valid SOAP username. If this username is incorrect the SOAP logon payload cannot be correctly authenticated and the call will fail
The Resolution
Ensure that the correct username, appropriate for the database platform, is specified within the service_manager.properties. For example when authenticating against MSSQL, if ServiceOptimizer was started with the command:
spsysmon -s -d MSSQL:sp-server:sp-prod-db:testDBUser:test
Then the service_manager.properties
 file should have the following entry:
soap.login.dbuser=sp-prod-db
And when authenticating against ORACLE, if ServiceOptimizer was started with the command:Â
spsysmon -s -d sp-prod-user/pass
Then the service_manager.properties
 file should have the following entry:Â
soap.login.dbuser=sp-prod-user
The Problem
Changes made within ServiceManager appear to work and yet the updated data does not appear to be displayed when requested. For example the user creates a period of unavailability for an operative, however when reviewing that operative's availability this new unavailability period is not shown.
The Reason
ServiceManager performs most of its data updates via API calls (via SOAP) to the ServiceOptimizer configured in the SOAP definition of service_manager.properties. However ServiceManager performs all of its data read operations directly from the database configured within the hibernate.xml.cfg file.Â
If these two configuration files essentially point to two different ServiceOptimizer instances then it is possible for the situation to occur whereby the API update is correctly processed by the ServiceOptimizer instance specified in the SOAP connection. This update will be written back to the database by that ServiceOptimizer instance, however its database is not the same as the one incorrectly specified within ServiceOptimizer and as a consequence when the user attempts to view the newly modified data this read fails to return the new data because it is not within the connected database instance.
The Resolution
To resolve it review the start up parameters of the ServiceOptimizer instance being communicated with via SOAP and compare these with the database details within the hibernate.xml.cfg file of this ServiceManager instance.