eHealth data source synchronization failure in CAPC

Document ID : KB000032155
Last Modified Date : 14/02/2018
Show Technical Document Details

Problem: Synchronization to eHealth fails (may be intermittent) and DMService.log shows this:

The connection to data source <yourEhealthDataSourceName> was unexpectedly

terminated. The problem may be in either the data source or CAPC.  The
following stack trace may indicate where the problem lies.  You may also
want to check the logs for the data source to determine if it is the cause
of the problem.
javax.xml.ws.WebServiceException: Could not send Message.
 at org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:135)
 at $Proxy95.pullRequest(Unknown Source)
Caused by: java.net.SocketException: SocketException invoking
http://<yourEhealthDataSourceIP>:80/axis2/services/ProductSync2WS: Unexpected end of
file from server
 at sun.reflect.GeneratedConstructorAccessor38184.newInstance(Unknown
Source)

Cause:

CAPC normally keeps the same TCP connection open to a data source across multiple requests, but eHealth (or the eHealth system) in some cases appears to time out and terminates the TCP connection to CAPC.

Resolution:

The workaround is to modify the CAPC connection settings such that they will close and re-open a new connection for each request.

Workaround procedure:

To set Connection = "close" (versus "keep-alive"):

On CAPC system:

1) backup the config file:
  cp /opt/CA/PerformanceCenter/DM/webapps/dm/META-INF/spring/webservices.xml /opt/CA/PerformanceCenter/DM/webapps/dm/META-INF/spring/webservices.xml.orig

 

2) Open the following config file in an editor:
     /opt/CA/PerformanceCenter/DM/webapps/dm/META-INF/spring/webservices.xml
    
     ...and change this...

     <http:conduit name="*.http-conduit">
        <http:tlsClientParameters disableCNCheck="true" />
        <http:client ReceiveTimeout="$conduit>

    ...to this (adds 'Connection="close"' to http" Connection="close"/>
    </http:conduit>

 

3) Restart the CAPC services:
    /etc/init.d/caperfcenter_console stop
    /etc/init.d/caperfcenter_eventmanager stop
    /etc/init.d/caperfcenter_sso stop
    /etc/init.d/caperfcenter_devicemanager stop

 

    /etc/init.d/caperfcenter_devicemanager start
    /etc/init.d/caperfcenter_sso start
    /etc/init.d/caperfcenter_eventmanager start
    /etc/init.d/caperfcenter_console start