Duplicate ci relationship is created each time discovery is run

arunkaushik
Tera Contributor

Duplicate CI relationship is being created whenever discovery is run. For example when we run a discovery for a server, a Runs on::Runs relationship with db instance is created. When discovery is run again, another runs on relationship is being created, while discovery should ignore if the relationship already exists.

 

Please suggest if anybody faced such issue and what could be causing the duplicate relationship records each time discovery is running, how to troubleshoot and fix the issue.

6 REPLIES 6

Tomas Pustka
Tera Expert

It may be related that running process is linked to the application, when process link removed, new duplicate relatioinship not created. This seems as a bug, it is not about CI creation , but duplicate relationships are created on the same records each run.

ayushraj7012933
Mega Guru

Hi  @arunkaushik ,

This is a known scenario in Discovery when duplicate CI relationships get created on every run. Ideally, Discovery should update existing relationships, not create new ones — so this usually indicates an issue with Identification & Reconciliation or relationship handling.

Step-by-Step Troubleshooting & Fix

Step 1: Verify CI Duplication

  1. Check if multiple CI records exist for:

    • Server

    • Database instance

  2. Validate using:

    • Name, IP, sys_id, discovery source

If duplicate CIs exist → relationships will also duplicate

Step 2: Check Identification Rules

  1. Navigate to:

    • CMDB → Identification and Reconciliation → Identification Rules

  2. Verify for:

    • Server class (e.g., cmdb_ci_server)

    • Database class

  3. Ensure:

    • Strong identifiers are configured (e.g., name + serial/IP)

If identification is weak → system creates new CI each run

Step 3: Validate Reconciliation Rules

  1. Go to:

    • Reconciliation Rules

  2. Ensure:

    • Discovery source is properly defined

    • Relationship updates are allowed

Prevents duplicate creation and ensures proper updates

Step 4: Check Relationship Rules

  1. Navigate to:

    • CMDB → CI Relationship Rules

  2. Validate:

    • Rule for Runs on::Runs exists and is correct

Step 5: Check Discovery Pattern / Probe

  • Open relevant Pattern (for DB / server)

  • Look for:

    • Relationship creation step

Ensure:

  • It is not blindly inserting relationship

  • It checks for existing relationship

Step 6: Review Discovery Logs

  1. Go to:

    • Discovery Status → Logs

  2. Check:

    • CI identification

    • Relationship creation steps

Look for repeated “insert” instead of “update”

Step 7: Check for Custom Scripts

  • Review:

    • Business Rules on cmdb_rel_ci

    • Script Includes used in Discovery

 Custom logic may be inserting duplicates

Step 8: Enable De-duplication (If Needed)

  • Use:

    • CI Relationship De-duplication jobs

  • Or create cleanup script to remove duplicates