1) We have checked our code many times, its pretty simple and we do not see anything wrong there. We checked code again when you have reported about this problem.
2) We and other cutomers experienced similar problems with Oracle drivers before. Version 7 (7.3?) caused "access vialotion". Verion 8.? could crash application if application uses SQL_FETCH_ABSOLUTE command. This is confirmed Oracle bugs.
3) Why other application works? Why Oracle did not fix such problem? May be it appears under some very specific conditions.
Of course we can be wrong, but our estimation 98% - problem is in Oracle code.
May be we can change our code somehow and Oracle will work perfectly. E.g. we have added "Do not use SQL_FETCH_ABSOLUTE" option sometime ago. But to change the code we must know what the problem is. Unfortunately we have not found necessary information

Yes, we can try to redesign everything and use ADO or native oracle calls instead of ODBC. But what happens if next version of the Oracle (MSSQL, MySQL, ...) drivers will have some another error? Redesign everything again?
I mean: we always trying to find some solution/workaround, even if problem located outside of HostMonitor. But we cannot spend 100% of our time trying to fix somebody's mistakes.
Other ways? Ok, what about:Instead why don't you offer other ways?
- install RMA (it can be started on HostMonitor's or another system)
- configure ODBC test to use that agent
- setup additional (master) test to check operability of the agent (e.g. TCP test)
- use "Restart service" action to restart agent when it crashes.
In this case HostMonitor will work stable and ODBC tests will be performed by agent that can be restarted automatically.
You illustrate our dilemma - improve HostMonitor and implement a lot of new functions every month or spend all time trying to find some solutions for buggy pdh.dll, orcale drivers, and so on.Our only regret with HostMonitor is the way it works with NT Service and GUI module (one has to be shutdown to use the other). We never had an issue that couldn't be fixed until now.
Actually we are spending 80% of time trying to fix problems that trables just 1-2% of our customers. Even if single customer has some problem and we can fix that, we do that immediately.
That's why a lot of cool functions are not implemented yet.
Regards
Alex