What is effect of CI Relationship Type on Impacted Service ?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎08-25-2023 02:58 AM
Hi,
Case:
I have a relation in cmdb_rel_ci between a certificate called CERT1 and a Business Service called SERVICE1.
SERVICE1 is parent and CERT1 is child.
Relation type is depends on:Used by.
For me it means that SERVICE1 depends on CERT1, and if CERT1 is inoperable, SERVICE1 is affected.
If I make a RFC with CI = CERT1 and click UI Action "Refresh Impacted Services", I will see SERVICE1 as impacted in the related list. That is fine.
But when I switch the parent/child role in cmdb_rel_ci so that SERVICE1 becomes the child and CERT1 the parent, I would understand it so that the certificate is dependent on the service but not the other way around. In other words, if I make a RFC on CERT, SERVICE1 should not be affected because it is not dependent on CERT1.
But I still see SERVICE1 as affected in the related list on the RFC.
Can anyone explain this?

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎08-25-2023 03:13 AM - edited ‎08-25-2023 03:17 AM
Hello @B Engelstock,
The cmdb_rel_ci table stores the relationships between configuration items (CIs) in the CMDB. Each relationship has a parent and a child CI, as well as a type that defines the nature of the relationship.
The type of the relationship is important because it determines how the impact of a change, or an incident is propagated through the CMDB. For example, if the type is Depends on::Used by, it means that the parent CI depends on the child CI....
However, if you switch the parent/child role in the cmdb_rel_ci table, you are not changing the type of the relationship. You are only changing the direction of the relationship. This means that the impact propagation logic remains the same, but it is applied in reverse.
In other words, if you switch the parent/child role so that SERVICE1 becomes the child and CERT1 becomes the parent, you are not saying that CERT1 depends on SERVICE1. You are saying that SERVICE1 is used by CERT1. This means that if CERT1 is unavailable, SERVICE1 is still affected.
To avoid this confusion, it is recommended to use consistent and meaningful labels for the parent and child roles in the cmdb_rel_ci table. For example, you can use Provides::Consumes instead of Depends on::Used by to indicate that the parent CI provides a service or a resource to the child CI, and vice versa.
Alternatively, you can use the cmdb_ci_rel table to store bidirectional relationships between CIs. This table allows you to define different labels for each direction of the relationship, such as DR Provided by::Provides DR for or Hosted on::Hosts . This way, you can avoid ambiguity and inconsistency in your CMDB relationships.
I hope this helps you understand.
Kind Regards,
Swarnadeep Nandy
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎08-25-2023 03:33 AM
Hi,
thanks for your reply. But it does not make sense, I think. I tried the above scenarios a couple of time more, and now, if I click the UI Action "Refresh Impacted Services" more than one time (with some time in between), then i do not have the SERVICE1 in the related list as impacted when SERVICE1 is the child. And that makes sense, but I had to click a couple of times.
It actually do what I expected that CERT1 is no longer depending on SERVICE1, but it does not match with your feedback, though.