KBI 311416 Issue Addressed Unhandled Exception In Argent for Oracle Monitoring Engine Process

Version

Argent Advanced Technology 3.1A-1601-T10 and earlier

Date

Friday, 17 June 2016

Summary

Customer reported that an unhandled exception found in Argent for Oracle Monitoring Engine process with the following entries in Monitor Engine log file:

>>>> Unhandled Exception happened in Thread 0X0 (ORACLE_SQL_QUERY_RULE.CPP, 2424)

Internal trace is dumped to ‘ORACLE_MONITOR_ENGINE_LOG_1_EXCEPTION_TRC.TXT’

DISCARDED exception logging (ORACLE_SQL_QUERY_RULE.CPP, 2424)

This is due to an incorrectly configured Argent for Oracle custom Query Rule

Added bulletproof to avoid such situation

Technical Background

Argent for Oracle provides a way to execute custom queries under ‘Oracle Query Rules’

As this is fully customizable, Rule breaking condition should also be configured correctly

Rule breaking conditions are to be configured against the result returned by the specified query

Argent for Oracle employs a logic with the index of the columns returned by the query used in the Rule

So there should be a one to one relationship with the number of columns returned by the query and the column index used in the Rule breaking condition

The following is the configuration screen of Rule condition in Argent for Oracle:

The highlighted option is the column index configuration option

The highlighted option is the column index configuration option

An unhandled exception in the Monitor Engine will happen if the specified column index is greater than total number of columns in the SQL query and logs following lines in the Monitor Engine log file:

<>>>> Unhandled Exception happened in Thread 0X0 (ORACLE_SQL_QUERY_RULE.CPP, 2424)

Internal trace is dumped to ‘ORACLE_MONITOR_ENGINE_LOG_1_EXCEPTION_TRC.TXT’

DISCARDED exception logging (ORACLE_SQL_QUERY_RULE.CPP, 2424)

Added bulletproof to avoid this exception

Resolution

Upgrade to Argent Advanced Technology 1601-T11 or later