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 $Proxy95.pullRequest(Unknown Source)
Caused by: java.net.SocketException: SocketException invoking
http://<yourEhealthDataSourceIP>:80/axis2/services/ProductSync2WS: Unexpected end of
file from server
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.
The workaround is to modify the CAPC connection settings such that they will close and re-open a new connection for each request.
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:
...and change this...
<http:tlsClientParameters disableCNCheck="true" />
...to this (adds 'Connection="close"' to http" Connection="close"/>
3) Restart the CAPC services: