KBI 310249 ODBC Error: Numeric Value Out Of Range In AAC_ENGINE_LOG
Version
Argent Extended Technology – All Versions
Date
26 Jul 2011
Summary
Customers may notice that some Condition Corrected Alerts are not being sent
In the AAC_ENGINE_LOG, they may see errors as follows:
ODBC Error: Numeric value out of range
(FILE: AAC_ProcessAlert.cpp LINE:992)
Technical Background
The AAC_OCCUR table holds all occurrences of a particular Alert
This table is used for the “Fire Alert After Rule Is Broken X Times” feature
The OCCURRENCE field in this table is the counter that holds how many times the Rule has been broken for
Under normal circumstances, the OCCURRENCE counter is reset to zero based on the “Reset Counters” configuration
E.g. Reset After Event Is Posted, Reset After Event Is Answered, Reset After The Actual Condition Is Corrected
However, some customers may leave an Alert unanswered for a long period of time, and if the Alert is frequent enough, it could cause the OCCURRENCE counter to hit a maximum number
By default, the OCCURRENCE field is of type “smallint”
A “smallint” supports numbers from a range of -32767 to 32767
You can confirm if OCCURRENCE has reached the maximum limit by running this query:
SELECT MAX(OCCURRENCE)
FROM AAC_OCCUR
Resolution
The issue can be resolved by either manually resetting the rows where the OCCURRENCE is 32767 to zero
OR
If such a large number of occurrences is desired, you can change the data type of the OCCURRENCE column from a “smallint” to an “int” (and “int” supports numbers up to 2 billion)