parthpdeoka
Tera Contributor

Possible Causes of the Issue:

  1. Incorrect Process Identification:

    • The discovery process expects to find a running process containing "tnslsnr" (which is the Oracle Listener process).
    • However, the process running on the server may have a different name, or the path to the executable may not be correctly recognized.
    • Running the command ps -ef | grep tnslsnr on the target server can help verify if the listener process is running with the expected name.
  2. Custom Oracle Installations:

    • If Oracle was installed in a custom directory or with a different executable name, the default discovery patterns might not match.
    • You may need to modify the identification pattern in the Discovery Configuration to include the actual process name.
  3. Permission Issues:

    • The user account running the discovery might not have sufficient permissions to access the Oracle Listener process details.
    • Try running the discovery with a higher-privileged account or check if the discovery credentials have proper access.
  4. Multiple Oracle Homes:

    • If multiple Oracle Homes are configured, the discovery process may be detecting only one, causing inconsistencies in database identification.
  5. Missing Oracle Listener Process:

    • If the Oracle Listener is not running at the time of discovery, it will not be detected.
    • Check the listener status using lsnrctl status on the Oracle server.

Suggested Fixes:

  1. Verify the Running Process:

    • Log into the database server and run:
      perl
       
      ps -ef | grep tnslsnr
    • If tnslsnr is missing, check if the listener service is running.
  2. Manually Update the Discovery Pattern:

    • If the process name differs from tnslsnr, update the pattern to match the actual process name.
    • Go to ServiceNow Discovery Patterns, locate the Oracle Listener HD pattern, and adjust the Process Detection rule.
  3. Check Discovery Permissions:

    • Ensure that the user credentials used in ServiceNow have sufficient privileges to access process details.
    • Try using root or an Oracle DBA account to validate.
  4. Manually Restart the Listener:

    arduino
    lsnrctl stop lsnrctl start
  5. Re-run Discovery:

    • After verifying the process and listener, re-run ServiceNow Discovery and check if it now correctly identifies Oracle Listeners and databases.