- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎09-24-2025 08:58 PM
I have been asked to create a custom Discovery Pattern in ServiceNow to discover a multi-tier enterprise application that runs on the following setup:
Frontend: An Apache HTTP server running on Linux.
Application Layer: A Java-based middleware running on Tomcat (multiple JVMs per server).
Backend: An Oracle Database clustered with RAC.
Can anyone help me with the approach atleast.
Solved! Go to Solution.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎09-24-2025 09:18 PM
Hi @SandeepKSingh
Use process classifiers to detect, horizontal sections to collect configs, loop for multi-instances, capture ports/JVM args, map relationships, and set IRE rules to avoid duplicates.
Below Approach will help you
-
Process Classifiers
-
Apache → detect httpd/apache2.
-
Tomcat → detect java with org.apache.catalina.startup.Bootstrap; capture CATALINA_BASE, -Xmx, -Dconfig.file.
-
Oracle → detect ora_pmon_<SID> + tnslsnr.
-
-
Pattern Structure (Horizontal Sections)
-
Apache Section: parse httpd.conf, capture Listen ports, create cmdb_ci_web_server + endpoints.
-
Tomcat Section: loop JVMs, parse server.xml, capture connector ports + JVM args, create cmdb_ci_app_server.
-
Oracle Section: list SIDs, run lsnrctl status, detect RAC nodes, create cmdb_ci_db_instance + cmdb_ci_database.
-
-
Relationships (Connection Sections)
-
Web → App (ProxyPass or AJP ports).
-
App → DB (JDBC URL in config).
-
Each tier → Computer (runs on).
-
-
Multi-Instance Handling
-
Loop per Tomcat JVM and per Oracle SID.
-
-
IRE Keys
-
Web Server: (host_sys_id, install_path)
-
Tomcat: (host_sys_id, catalina_base)
-
DB Instance: (host_sys_id, SID)
-
DB Service: (db_name)
-
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎09-24-2025 09:22 PM
The Attached Article will help you .. you can check
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎09-24-2025 09:18 PM
Hi @SandeepKSingh
Use process classifiers to detect, horizontal sections to collect configs, loop for multi-instances, capture ports/JVM args, map relationships, and set IRE rules to avoid duplicates.
Below Approach will help you
-
Process Classifiers
-
Apache → detect httpd/apache2.
-
Tomcat → detect java with org.apache.catalina.startup.Bootstrap; capture CATALINA_BASE, -Xmx, -Dconfig.file.
-
Oracle → detect ora_pmon_<SID> + tnslsnr.
-
-
Pattern Structure (Horizontal Sections)
-
Apache Section: parse httpd.conf, capture Listen ports, create cmdb_ci_web_server + endpoints.
-
Tomcat Section: loop JVMs, parse server.xml, capture connector ports + JVM args, create cmdb_ci_app_server.
-
Oracle Section: list SIDs, run lsnrctl status, detect RAC nodes, create cmdb_ci_db_instance + cmdb_ci_database.
-
-
Relationships (Connection Sections)
-
Web → App (ProxyPass or AJP ports).
-
App → DB (JDBC URL in config).
-
Each tier → Computer (runs on).
-
-
Multi-Instance Handling
-
Loop per Tomcat JVM and per Oracle SID.
-
-
IRE Keys
-
Web Server: (host_sys_id, install_path)
-
Tomcat: (host_sys_id, catalina_base)
-
DB Instance: (host_sys_id, SID)
-
DB Service: (db_name)
-
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎09-24-2025 09:22 PM
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎09-24-2025 09:28 PM
I am super ThankFul for this