Filtering Network Adapters from CORA Registration (CORA Cleanup takes FOREVER)

Document ID : KB000072533
Last Modified Date : 02/03/2018
Show Technical Document Details
Coracleanup is very slow when running against the Client Automation (ITCM) MDB to re-register computers and network adapters with CORA.
Client Automation (ITCM) -- any version.
CORA is the Common Registration API, and is the interface used by Client Automation to share computer registration data with other CA products (i.e. CA Service Desk Manager).  Even if you're not integrating Client Automation with another CA product, the engines processing the collect tasks are still registering computers (and network adapters) with CORA during the processing of registration messages.
Coracleanup is a utility used to correct inconsistencies in the CORA database tables in the MDB.  From the Client Automation product space, it does this by cleaning up all the existing computer (and network adapter) registrations from the CORA tables, then iterates through each Client Automation computer registration, and re-registers them with CORA, one by one.  For each computer registration processed, the coracleanup utility also re-registers the list of network adapters associated with each computer.
When coracleanup performs a registration of a network adapter that is not unique, i.e. the Microsoft Tunnel Adapter "00:00:00:00:00:00:00:E0", it forces CORA to make a comparison with all existing/registered network adapters having the same MAC address.  As the coracleanup process encounters and registers more and more of these duplicate adapters, the list of comparisons becomes very large, and the coracleanup process becomes increasingly complex, resulting in the process running for extended periods of time.  The "extended period" of time will vary based on the number of computer assets in your database, as well as the level of duplication of network adapters prevalent in your environment.
To address this problem, you'll need to identify the non-unique network adapters found in your existing Client Automation environment, and remove it from the MDB before running the coracleanup utility:
Note: Before proceeding with this solution, a full database backup is recommended, as changes will be made to the database to resolve the issue.
Step 1: Identify the non-unique adapters present in the database.
Run the following against the mdb for Client Automation in SQL:
select mac_address, count(*)
from ca_discovered_hardware_network
group by mac_address
having count(*) > 10
order by count(*) desc
Here's a sample result set you might see:
Based on the output, we need to remove at least the following network adapters:
Use discretion when determine which addresses to remove.  It is not necessary to remove every duplicate adapter, as some duplication can be expected when computers are re-imaged or upgraded, and not all obsolete computer objects are cleaned up in Client Automation.

Step 2: Remove the duplicates from the database.
Run the following against the same MDB database used to identify the duplicate network adapters, in order to cleanup the existing duplication in the database:
Note: The statements below follow through from the sample results in Step 1. Be sure to use the appropriate MAC addresses based on results specific to your environment.
delete from ca_discovered_hardware_network where mac_address in (
With the duplication removed, now the database is prepared for running a coracleanup.
Additional Information:
To prevent this problem in the future, please reference related technical document, kb000072535, which provides steps to create a network adapter filter for your Client Automation engines running the collect tasks.