Synchronization between NetOps Portal and Data Aggregator may fail with DATASOURCE_ROOT error.
search cancel

Synchronization between NetOps Portal and Data Aggregator may fail with DATASOURCE_ROOT error.

book

Article ID: 36171

calendar_today

Updated On:

Products

CA Infrastructure Management CA Performance Management - Usage and Administration

Issue/Introduction

Synchronization between NetOps Portal 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 Aggregator@xyz 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]

Environment

Release: Any
Component:

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 Aggregator@hostname".

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 NetOps Portal and it is not synced down to the DA.
 
When the push phase of synchronization occurs, it tries to determine the 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 Aggregator@hostname".

This group cannot be used for any reporting, so it should not be used for a default group also.