eHealth Data Source in CA Performance Management fails to synchronize

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

Problem:

When attempting to synchronize the eHealth Data Source (DS) from the CA Performance Management (CAPM) Manage Data Sources page, a synchronization failed message is received. The synchronization update cycles performed automatically by CAPM fail with the same message. The system does provide current data from eHealth, and the DS communication test is succesfull, but when attempting to synchronize the DS it fails.

 

Examining the DMService.log file often provides useful clues. This log is located in the following location:

$CAPM_HOME/CA/PerformanceCenter/DM/logs

The default location in /opt would be:

/opt/CA/PerformanceCenter/DM/logs

 

Cause:

In this case the following type of error is observed in the DMService.log file. This type of error is only ever observed for the eHealth DS.

 

ERROR | pool-3-thread-1 | 2015-07-07 18:51:39,530 | com.ca.im.portal.dm.productsync.GlobalSync | Data source 3 is reporting 29 unrecognized parents (type ) 

INFO | pool-3-thread-1 | 2015-07-07 18:51:39,531 | com.ca.im.portal.dm.productsync.GlobalSync | Unrecognized Parents: 

SourceIDParentTypeNameParentLocalIDParentItemIDParentItemTypeParentSubTypeChildTypeNameChildLocalIDChildItemIDChildItemTypeChildSubTypeMemberFlagsUpdatedOn

310004@1235836:elementNULLNULLNULLeHealth10004@1235834:elementNULLNULLNULL04

310002@1210306:elementNULLNULLNULLeHealth10002@1222229:elementNULLNULLNULL04 

310002@1210306:elementNULLNULLNULLeHealth10002@1222232:elementNULLNULLNULL04 

310002@1210306:elementNULLNULLNULLeHealth10002@1222233:elementNULLNULLNULL04 

310002@1210306:elementNULLNULLNULLeHealth10002@1222234:elementNULLNULLNULL04 

310002@1210306:elementNULLNULLNULLeHealth10002@1222235:elementNULLNULLNULL04 

310002@1210306:elementNULLNULLNULLeHealth10002@1222236:elementNULLNULLNULL04 

310002@1210306:elementNULLNULLNULLeHealth10002@1222237:elementNULLNULLNULL04 

310002@1210306:elementNULLNULLNULLeHealth10002@1222238:elementNULLNULLNULL04

310002@1210306:elementNULLNULLNULLeHealth10002@1222240:elementNULLNULLNULL04 

310002@1210306:elementNULLNULLNULLeHealth10002@1222241:elementNULLNULLNULL04 

310002@1210306:elementNULLNULLNULLeHealth10002@1222242:elementNULLNULLNULL04 

310002@1210306:elementNULLNULLNULLeHealth10002@1222243:elementNULLNULLNULL04 

310002@1210306:elementNULLNULLNULLeHealth10002@1222244:elementNULLNULLNULL04 

310002@1210306:elementNULLNULLNULLeHealth10002@1222245:elementNULLNULLNULL04 

310002@1210306:elementNULLNULLNULLeHealth10002@1222246:elementNULLNULLNULL04 

310002@1210306:elementNULLNULLNULLeHealth10002@1222247:elementNULLNULLNULL04 

310004@1235836:elementNULLNULLNULLeHealth10004@1235832:elementNULLNULLNULL04 

310004@1235836:elementNULLNULLNULLeHealth10004@1235833:elementNULLNULLNULL04 

310004@1122566:elementNULLNULLNULLeHealth10004@1155307:elementNULLNULLNULL04 

310005@1100842:elementNULLNULLNULLeHealth10005@1100782:elementNULLNULLNULL04 

310004@1201273:elementNULLNULLNULLeHealth10004@1092860:elementNULLNULLNULL04 

310004@1235836:elementNULLNULLNULLeHealth10004@1235828:elementNULLNULLNULL04 

310004@1235836:elementNULLNULLNULLeHealth10004@1235826:elementNULLNULLNULL04 

310002@1210306:elementNULLNULLNULLeHealth10002@1222231:elementNULLNULLNULL04 

310004@1235836:elementNULLNULLNULLeHealth10004@1235830:elementNULLNULLNULL04 

310004@1235836:elementNULLNULLNULLeHealth10004@1235829:elementNULLNULLNULL04 

310004@1235836:elementNULLNULLNULLeHealth10004@1235825:elementNULLNULLNULL04 

310004@1235836:elementNULLNULLNULLeHealth10004@1235827:elementNULLNULLNULL04

 

 

SOLUTION:

The first step in resolving this is to execute the following commands on the eHealth server integrated as a DS in CAPM. They should be run on the command line when logged in as the eHealth NH_USER, while the user is properly sourced to use the correct environment.

$NH_HOME/bin/sys/nhisql "select * from nh_elem_assoc where element_id not in (select element_id from nh_element)" 

$NH_HOME/bin/sys/nhisql "select parent_id from nh_elem_assoc where parent_id not in(select element_id from nh_element)" 

If either query returns rows in the results, in order to remove orphans we needed to go through the following steps: 

 

1. Stop the eHealth server processes (if they are currently running): 

nhServer stop 

2. ps -ef|grep nh = kill any hung 'nh' processes, except for httpd processes. 

3. Log into the database as the $NH_USER (health user) and run: 

sqlplus NH_USER/NH_USER 

delete from nh_elem_assoc where element_id not in(select element_id from nh_element); 

delete from nh_elem_assoc where parent_id not in(select element_id from nh_element); 

commit; 

exit

4. Start the eHealth server processes again: 

nhServer start 

 

After the next synchronization cycle if the errors no longer appear, the DS should complete the synchronization cycle successfully.

 

If this does not resolve the problem, please open a new case with CA Support referencing this article for further investigation of the problem.