I've had issues with Oracle Monitor for years

Marshall

Member
At times it will just crash with a random error message like this one

oraclemonitorerror.jpg


Other times it just won't queries that are taking place in the background. Sometimes it'll only show half of the queries taking place or none at all. The times it is most likely to work correctly are when I have oracle monitor open right when I load the other program using the DOA components or if i'm running the application from my compiler. But even then it's not always a guarantee. I've tried different versions of oracle monitor but that didn't help either. Any ideas what could be the problem(s)?
 
I'm not sure what could be causing this. Does it perhaps help if you run both programs (the Oracle Monitor and your application) as administrator?
 
Hello thanks for the reply, I just tried running it as admin. It neglected to show many of the queries and then had an access violation error crash again. These are the versions I'm using for all of the software:

Direct Oracle Access 4.1.1.0
OracleMonitor version 1.0.0.59
Borland Delphi Enterprise Version 6.0 (Build 6.240) Update Pack 2
 
Hey posting a follow up to this. The problem is still there. It's always been on and off. Sometimes it shows everything, sometimes shows half of the queries, or shows none at all. Also crashes randomly. After restarting the app and oracle monitor again and again eventually it shows the queries but has always been a time consuming process getting it to fully function. I tried oracle monitor version 2.1.1.111 Pro but still have the same problem.

When it's functioning it shows queries when pressing this search button:

om-working.jpg


This is a screenshot of when it's not showing anything when pressing that button

om-notworking.jpg


One idea I had was maybe if I could edit this source in some way to allow me to debug the problem

om-source.jpg


or some explanations on how the app that includes the oraclemonitor unit communicates with the oracle monitor application, then maybe I could look at the communication going back and forth there to figure out if there's a problem there
 
Last edited:
I've been messing around with it more. It looks to be less reliable when the executable I'm trying to read queries off of is launched from the network. At that point it shows almost no queries about 40% of the time, half of the queries about 50% of the time, and once in a while it'll show everything. Whereas if I have the executable running off of the network in the local environment then oracle monitor looks to capture everything. It's something about opening the executable over the network that is making it less reliable. Any ideas what can be done to address that?
 
Hello I've been researching the problem now and have a better grasp on where the problem is occurring.

The issue occurs when the LoadLibrary command is called on a DLL that also has OracleMonitor as a unit. If I remove OracleMonitor from the DLL project then oracle monitor continues to report correctly. But that solution would not work because the DLL loads reports and without OracleMonitor included in the DLL project then oracle monitor does not show queries when the reports are being run.

This shows the log queries added and the 2nd query not displaying

loadlibraryafternotshown.jpg


Then the queries do display when I take oraclemonitor out of the DLL

loadlibraryaftershown.jpg


So LoadLibrary messes things up when the library being loaded has oraclemonitor in it also. I already tried using SafeLoadLibrary, it made no difference. I thought maybe there is a line of code I could add somewhere that would kick it into working again or a code change I could add to oracle monitor to fix this maybe?
 
The workaround that seems to work is re-create a couple of globally used datasets after the loading of the dll's. The queries called from these global datasets were the ones not being shown. Anyway hopefully the issue is resolved after so many years of dealing with it. Thanks for all the help (tongue and cheek)
 
Back
Top