NFA Bind Failure as a data source in Performance Center

book

Article ID: 191958

calendar_today

Updated On:

Products

CA Infrastructure Management CA Performance Management - Usage and Administration DX NetOps CA Network Flow Analysis (NetQos / NFA)

Issue/Introduction

An NFA server Data Source was deleted from Performance Management. It was added back again but now shows a synchronization failure. It shows a Bind Failure error for Status in the Manage Data Sources page.

It also reports the problem is in the data source not Performance Management.

This error is present in the DMService.log file found in (default path) /opt/CA/PerformanceCenter/DM/logs. Data Source ID 7 is the NFA Data Source. The error states that users from NFA are missing their Group relationship from NFA.

ERROR | pool-2-thread-204        | 2020-06-01 07:39:43,535 | com.ca.im.portal.dm.productsync.DataSourcePoller                 
      | 
Data source Network Flow [email protected]_HostName 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:
java.lang.IllegalArgumentException: Data source 7 is missing 406 binding group references in the bind_users table
    at com.ca.im.portal.dm.productsync.DataSourceBind.bindUsers(DataSourceBind.java:449)
    at com.ca.im.portal.dm.productsync.DataSourceBind.processBindingTables(DataSourceBind.java:191)
    at com.ca.im.portal.dm.productsync.DataSourceBind.bind(DataSourceBind.java:84)
    at com.ca.im.portal.dm.productsync.DataSourceBindPhase.executeInternal(DataSourceBindPhase.java:41)
    at com.ca.im.portal.dm.productsync.DataSourceSyncPhase.execute(DataSourceSyncPhase.java:76)
    at com.ca.im.portal.dm.productsync.BindSyncPhaseTask.execute(BindSyncPhaseTask.java:63)
    at com.ca.im.portal.dm.productsync.SyncPhaseExecutor$MakeDSSyncPhaseCallable$1.call(SyncPhaseExecutor.java:101)
    at com.ca.im.portal.dm.productsync.SyncPhaseExecutor$MakeDSSyncPhaseCallable$1.call(SyncPhaseExecutor.java:94)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
    at java.lang.Thread.run(Thread.java:748)

Cause

Incomplete Data Source deletion left incorrect information in the PC database. When the Data Source was added again it failed to update user information with the correct Group relationship, resulting in the error leading to sync failure.

At root the resulting problem is a NULL value for the PermissionItemID column value in the netqosportal.bind_users table for users synced from the NFA Data Source. These users would be referenced by the SourceID value for the NFA Data Source.

This shows the SourceID value for each Data Source by name when run against the Performance Center MySql DB named netqosportal.

  • select SourceID,ConsoleName from data_sources2;

Assuming a SourceID value of 7 this command would list out all users from Data Source ID 7, in this case the NFA Data Source.

  • select SourceID, UserName, UserLocalID,PermissionItemID from bind_users where SourceID=7;

In our example we had 406 users with PermissionItemID value NULL. This is the cause of the problem.

Environment

Performance Management release r3.7.7
Network Flow Analysis release r10.0.1

Resolution

In the NFA MySql DB named reporter run the following to determine what PermissionItemID is currently set for the users.

  • select * from user_definitions;

Most users in this instanced were set with PermissionItemID 1 or 186. They should be the ID's for real groups in NFA. 1 represents the default 'All Groups' Group.

In this instance running this against the NFA reporter DB shows it didn't actually exist. Running this returned an empty result set.

  • select * from reporter.groups where groupid = 186;

The simplest solution is to update all users in the PC DB synced from NFA to use the group ID 1. To do so run this against the netqosportal DB on the PC side.

  • update bind_users SET PermissionItemID = 1 where SourceID = 7;

After being run the synchronization is now successful.

Additional Information

In most instances post Data Source deletion there are going to be Orphaned Groups left over requiring clean up. See the following Knowledge Base article detailing how to remove those groups.