Duplicate Application Resources - like Oracle Schema

Idea ID 2773459

Duplicate Application Resources - like Oracle Schema

A goal of the CMS is to provide relevant information to processes like Incident or Change management. Looking from a perspective of a business application using an application resource, like an Oracle Schema, the process requires to know which Schema is being used. The issue we're running into has to do with Oracle RAC or Oracle Dataguard, and to some extent MS-SQL Always-On: How to link a business application to an application resource? 

The perspective of the business application is to know which Schema it is using; today, the discovery runs on a Node, which returns a Composition Oracle, which in turns return a Composition Schema. In a Oracle RAC/DG environment, we end up with as many Schema as there is Oracle. This is the issue, in RAC, from an Oracle DBA point of view, there is only one Schema, being provided by multiple Oracle. 

What I’m asking is that would it be possible to change the discovery process to return a single instance of Schema when only a single instance exists from the point of view of the Running Software? This has an impact of the discovery, reconciliation, relationships type.

The benefit to the processes would be to have a single CI to manage, the configuration manager would be able to link to their Schema based on their business application perspective, DBA would consider the CMS to be more realistic, ITIL processes would be able to use them in their processes.

(We could also apply this philosophy to any types of application resource which has multiple paths, like Cloud based applications, Web Servers, ...)

OracleSchema.PNG

2020-04-13: I did have a conversation with some internal people. The suggestion so far is to add a CI to link the Schema's together, and then have this new CI linked to the Business Application.

  1. Add a new CI of CIT CICollection
    1. How should it be created? We could use an enrichment rule?
  2. Link ther CICollection to BusinessApplication and to Schemas
    1. Should the link be Membership? As to show the logical relationship, not a discovered one.
 

CI CollectionCI Collection

6 Comments
Super Contributor.
Super Contributor.

There is a fundamental problem with the "Oracle" CIT: it actually represents 3 different concepts:

  1. The database containing the schemas. In a RAC configuration, there is only one database, but it is served by two or more running softwares at the same time in an active-active fashion.
  2. The running software hosting the database. There is one running software on each Node. Each of them exists because of the processes running on each Node. In the background, there are, however, sharing the same storage space.
  3. When in a RAC configuration, the clustering software. The "Oracle" running softwares are also managing the clustering layer.

The problem is that, in a RAC cluster, there are two (or more) running softwares but, functionally, only one database and one storage container. In order to represent Oracle topology correctly, I think that a separation of concerns should be applied. Here are two topologies that, I think, would be more appropriate.

The first requires a new CIT named "Oracle Database" in order to separate the "schema container" from the "running software". This is the object that should exist only once, hence the Realization relationship to both the running softwares. This is loosely inspired from the DB2 LUW topology which uses a Realization relationship between the Db2Alias and the DB2 LUW Database CIs.

2020-04-14_11-44-29.png

The second maintains the more traditional Node ---(containment)--> Running software --- (containment) --> Application resource topology and does not require any new CIT. It involves making the RAC cluster topology more similar to other clustering technologies such as MS Cluster and HACMP by creating a ClusterRessourceGroup for each database. The "Oracle" CI is first used to represent only the clustering aspect of the running software on each Computer. Then, another "Oracle" CI is created under the ClusterResourceGroup which will represent the unique existing database. Now that we have a single ClusterResourceGroup (which is also a Node), the containment relationship can be maintained.

2020-04-14_12-23-19.png

Micro Focus Frequent Contributor
Micro Focus Frequent Contributor

Enhancement Request

  1. Request: The enhancement request is to add a ClusterResourceGroup CI under the Oracle RAC or Oracle Dataguard cluster CI.
  • The ClusterResourceGroup will contain the more traditional Node ---(containment)--> Running software --- (containment) --> Application resource topology and does not require any new CIT.
  • It involves making the RAC cluster topology more similar to other clustering technologies such as MS Cluster and HACMP by creating a ClusterRessourceGroup for each database.
  • The "Oracle" CI under the Unix node is used to represent only the clustering aspect of the running software on each Computer.
  • Then, another "Oracle" CI is created under the ClusterResourceGroup which will represent the unique existing database.
  • Now that we have a single ClusterResourceGroup (which is also a Node), the containment relationship can be maintained.

 

  1. Business value:
  • The Oracle topology within a cluster needs to represent the Oracle Schema as a single unit.
  • The end result is a single set of Schemas per Oracle cluster, resulting in less Schemas in the UCMDB, and easier maintenance for the administrators.
  • The single set will also enable configuration manager to find the correct unique Schema to link their business application too, this enables them to find the correct Schema and easier maintenance.

 

  1. Expected result:
  1. Create a ClusterResourceGroup (CRG) under the current Oracle RAC or Oracle Data Guard
    1. Name need to be defined, maybe take the name of the parent cluster
  2. Create an Oracle CI under the CRG
    1. Name would need to be the VIP name contained in the cluster, probably just the ORAC521UP in this case
  1. Add the Schemas as they are being discovered under this Oracle CI
    1. The result is a single set of Schema, under a single Oracle CI
    2. These Schemas are not linked to the original Oracle CI under the Node:Computer
    3. The Schema name is based on the Oracle CI under the CRG

 

final.png

Micro Focus Expert
Micro Focus Expert
Status changed to: Accepted

The level of detail and documentation on this idea is superb - thank you.

Great news, this idea has been accepted on our product roadmap. Subscribe to receive updates. (This is not a formal commitment, and subject to change)

 

Contributor.. Contributor..
Contributor..

FWIW, the enhancement being discussed above is for a strict CI Type, or at least under the Database category. 

 

This exact same logic should be employed for any software that has a single context and yet sprawls out over more than one execution environment (e.g. cluster/hosted app/streamed app).  So if you bump up a level in the Class Model when creating the CITs and valid links... it would help those areas too.

Super Contributor.
Super Contributor.

SQL Server is already modeled correctly. There are ClusterSoftware CIs under the Node and the only "SQL Server" object is under the ClusterResourceGroup. With Oracle, the problem is that the "Oracle" object has multiple roles. The proposed topology here for Oracle is basically adapted from SQL Server and DB2 when running under an HACMP cluster. We don't have any other database products running in cluster that we can refer to.

Contributor.. Contributor..
Contributor..

Hi ViauJoc.  I completely understand what you guys were describing.  I switched over to a separate/custom DB class model years ago (12?).  The model I went with was a lesser version of the DMTF CIM standard representation, which allowed representing databases, connection context, and runtime in a vendor agnostic manner.  As a side note, doing so allowed me to deal with issues like removing port/SID/Service from the protocol entry, to reduce the number of required SQL protocol entries by like 10x since they only needed the user/password.  Anyway, I totally understand.

 

The class model is an anchor for the data. Then there is work refactoring the code for discovery/integration jobs using those, followed by getting future content developers (whoever writes the next discovery package) to follow suite.  I was just suggesting this could be used for more than just Oracle, or any of the database types.  It' really a type of runtime.  And should developers start to apply the logic mentioned above (for the Oracle DB fix) on any software that could be modeled like a cluster... they could make a bigger splash. 

 

Just going through voting/adding value on some the recent topics; feel free to reach out if you want to continue the convo (contact ).  I'm always open to those.

The opinions expressed above are the personal opinions of the authors, not of Micro Focus. By using this site, you accept the Terms of Use and Rules of Participation. Certain versions of content ("Material") accessible here may contain branding from Hewlett-Packard Company (now HP Inc.) and Hewlett Packard Enterprise Company. As of September 1, 2017, the Material is now offered by Micro Focus, a separately owned and operated company. Any reference to the HP and Hewlett Packard Enterprise/HPE marks is historical in nature, and the HP and Hewlett Packard Enterprise/HPE marks are the property of their respective owners.