| Product(s): | APM Implementation and Performance Management | |
| Version(s): | All | |
| Area: | ODC | |
Problem
ODC log file reports the following error:
2021-09-17 22:21:27.4452Z - ERROR: Failed to read optional quality field (third column) <SampleRank::nnnnnnn>. System.IndexOutOfRangeException: Index was outside the bounds of the array.
at System.Data.Odbc.DbCache.AccessIndex(Int32 i)
at System.Data.Odbc.OdbcDataReader.internalGetInt32(Int32 i)
at System.Data.Odbc.OdbcDataReader.GetInt32(Int32 i)
at Ivara.ServiceProvider.ODC.DB.OdcAgentForDb.GetValues(ODCTagInfo taginfo)
2021-09-17 22:21:27.4452Z - ERROR: Failed to read optional quality as string field (fourth column) <SampleRank::nnnnnnnn>. System.IndexOutOfRangeException: Index was outside the bounds of the array.
at System.Data.Odbc.DbCache.AccessIndex(Int32 i)
at System.Data.Odbc.OdbcDataReader.internalGetString(Int32 i)
at System.Data.Odbc.OdbcDataReader.GetString(Int32 i)
at Ivara.ServiceProvider.ODC.DB.OdcAgentForDb.GetValues(ODCTagInfo taginfo)
2021-09-17 22:21:27.4452Z - DEBUG: OdcAgentForDB.GetValues() found a reading value: 0 timestamp: 2021-08-12 12:00:00 AM
Solution
The APM ODC DB plugin supports a query that returns certain values in a certain order.
We look for:
value (numeric or string)
timestamp (datetime)
quality (integer)
qualityAsString (string)
The last two are optional, although we do log an error if they are not present (we could make this more of an info log message). This error is benign, and can be ignored in this case. These shouldn't contribute to any instability.