Synchronization between CA Performance Center and Data Aggregator may fail with DATASOURCE_ROOT error.

book

Article ID: 36171

calendar_today

Updated On:

Products

CA Infrastructure Management CA Infrastructure Management CA Performance Management - Usage and Administration CA Performance Management - Data Polling

Issue/Introduction

Symptoms:

Synchronization between CA Performance Center (CAPC) and Data Aggregator (DA) may fail with an error related to NumberFormatException for {DATASOURCE_ROOT}.  This happens when synchronizing users down to the DA from CAPC.

The following errors are seen in the corresponding log files.

In CAPC DMService.log:  
 
ERROR | pool-4-thread-7    | 2015-10-19 08:53:58,845 | com.ca.im.portal.dm.productsync.DataSourcePoller                
      |
Data source Data [email protected] encountered an error while processing a sync request.  The problem is in the data source, not CAPC.  Check the logs for the data source to determine the cause of the problem.  The following stack trace shows the context of the sync request:
javax.xml.ws.soap.SOAPFaultException: For input string: "{DATASOURCE_ROOT}"
   at org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:156)
   at com.sun.proxy.$Proxy96.pushRequest(Unknown Source)
   at com.ca.im.portal.api.services.datasource.ProductSync2WSProxyImpl.pushRequest(ProductSync2WSProxyImpl.java:81)
   at com.ca.im.portal.dm.productsync.DataSourcePush.pushSync(DataSourcePush.java:183)
 
In DA karaf.log: 

WARN  | 4225278-99502178 | 2015-10-19 08:53:58,824 | PhaseInterceptorChain | ache.cxf.common.logging.LogUtils  452 | org.apache.cxf.cxf-api |       | Application {http://netqos.com/ProductSync2WS}IProductSync2WSService#{http://netqos.com/ProductSync2WS}PushRequest has thrown exception, unwinding now
org.apache.cxf.interceptor.Fault: For input string: "{DATASOURCE_ROOT}"
...

Caused by: java.lang.NumberFormatException: For input string: "{DATASOURCE_ROOT}"
at java.lang.NumberFormatException.forInputString(Unknown Source)[:1.7.0_67]
at java.lang.Long.parseLong(Unknown Source)[:1.7.0_67]
at java.lang.Long.valueOf(Unknown Source)[:1.7.0_67]
at java.lang.Long.decode(Unknown Source)[:1.7.0_67]
at com.ca.im.core.util.Convert.convertNumbers(Convert.java:535)[166:com.ca.im.common.core.util:2.6.0.RELEASE-104]
at com.ca.im.core.util.Convert.to(Convert.java:777)[166:com.ca.im.common.core.util:2.6.0.RELEASE-104]
at com.ca.im.core.util.Convert.to(Convert.java:717)[166:com.ca.im.common.core.util:2.6.0.RELEASE-104]
at com.ca.im.connector.user.UserHandler.createUserAttrValList(UserHandler.java:399)[238:com.ca.im.NPCConnector.bundle:2.6.0.RELEASE-104]
at com.ca.im.connector.user.UserHandler.createItemRequest(UserHandler.java:309)[238:com.ca.im.NPCConnector.bundle:2.6.0.RELEASE-104]
at com.ca.im.connector.user.UserHandler.processPerformanceCenterUsers(UserHandler.java:234)[238:com.ca.im.NPCConnector.bundle:2.6.0.RELEASE-104]

 

Cause:

This is happening because there is at least one user that has been set (or changed) to have access to group "Inventory -> Data Sources -> Data [email protected]". 

If you check the PermissionId in user_definitions table for the user in question, it will be equal to the itemid of the dst_group table.  It's LocalID will be {DATASOURCE_ROOT}.

That group is only created in CAPC.  And it is not synced down to the DA.
 
When the push phase of synchronization occurs, it tries to determine he LocalID of the PermissionId associated to the user in the user_definitions table.  This value is synced down to the DA where it converts it to a number and stores it in the database. The problem is that is not a number, and thus it throws the above errors.


Resolution:

To resolve the problem, modify the user's group to not be "Inventory- > Data Sources -> Data [email protected]". 
This group cannot be used for any reporting, so it should not be used for a default group also.
 

 

 

 

 

 

Environment

Release: IMDAGG99000-2.6-Infrastructure Management-Data Aggregator
Component: