Service Mapping - Connection to Oracle DB endpoint is failing

jan_at_te
Tera Expert

Folks,

doing a service mapping on a BMC Control-M Enterprise Manager app. As an entry point, I use TCP with host and port information. There is a pattern already available. Control-M Enterprise Manager is getting discovered and mapped. The deviation of the pattern and on how we use Control-M is that we use an Oracle instead of Postgres as DB management system hosting the DB for this app. However (i thought), I added a connection section to the pattern to connect to the ORA Instance. The ORA instance is running on a separate host. Host, Instance, Port and Schema are available through a config file. Within the connection section I read out this information and as for the last step, I added a 'Create Connection' operation with the following parameters:

Connection Type: application flow

Entry Point: Oracle Endpoint

Connection Attributes: host, instance, port and schema

Target CI Type: Oracle Instance[cmdb_ci_db_ora_instance]

Having the Discovery ran with the changes on the pattern is just recognizing the Control-M EM app, but not the connection to the ORA instance. The Discovery Log is showing my connection section as failed and is just giving me a 'name attribute was not discovered for entry point type cmdb_ci_endpoint_oracle_db'.

In the meanwhile, I hardcoded the connection attributes, but without any change on the result.

By adding just a TCP entry point on the DB host with the DB port is discovering me the awaited ORA Instance (there is just one instance running on the DB server). Does anyone have a clue why I do not get the connection established via the connection section?

 

Thanks and regards

Jan

1 ACCEPTED SOLUTION

jan_at_te
Tera Expert

Folks,

with kudos to the ServiceNow Support, the root cause and also a corrective action is found for this, my, issue. As the name attribute is a really crucial one we set this on mandatory or all CI classes by just adding the mandatory flag to the CMDB basic class. Now the cmdb_ci_endpoint_oracle_db class does get is also inherited of course. By use of the Oracle DB Endpoint within a connection section of a pattern the name attribute is not getting set. This causes in my case, that the connection was not getting established within the map as the name attribute was set on mandatory. The resolution is now to populate this name attribute via the pattern or as a workaround just to set a Dictionary Override for the name attribute within the cmdb_ci_endpoint_oracle_db class.

 

Kind regards

Jan

View solution in original post

10 REPLIES 10

robertgeen
Tera Guru

Hello,

More then likely you are subbing in the wrong information. You want to give it host, port, and instance not schema. The instance will be the SID or the service_name. The schema for the most part can be ignored unless you really want to call out the schema name it is connecting to (which isn't in most .ora files). Try switching your mapping to instance instead of schema and you should be good to go (it essentially failing to discover the instance because you aren't giving it a service name or SID to look at). Hope this helps and if I does please mark as answered.

Robert,

thank you for your answer, but this is not the cause. The instance is defiantly right and I kept schema away.

Okay so next step can you show the discovery log for the connection step that you created for the oracle connection? I do know there was a bug that affected oracle connections but I don't know if that's what you are hitting here. I just want to see what it is saying when it creates it (you can blank out the actual values).

Attached the connection section which just includes one step, the connection itself. When this would run, then I will change it back to have the attributes gathered of course.

Further, the discovery log with the collapsed ORA connection section.