Database   InformationDownloadLink
Information Oracle Spy 32-bit.

Can you believe I make a living using Oracle® products?
Oracle® Corporation UK

This is a much improved version of the Oracle Spy Win3.1x program for Win32 clients. So everything I said there applies here as well.

What? You want some instructions? Crikey. OK.

You'll have to have all the usual Oracle stuff installed including SQL*Net. You might also need the DLL 'ociw32.dll', which should be mooching around on your Oracle media somewhere. Just extract the 'ospy32' executable from the zip and you're (almost) away. You'll also need to run the '.pls' file against your database to create the 'oracle_spy' package. It's probably a good idea to grant public execute permissions on this package and create a public synonym to it, that way everyone can use it. And they'll all be happy as Larry, as they fill their code with 'oracle_spy.send' commands. Top tip; instead of just using the default pipe, get each developer to use a different pipe name, then they can all merrily view the output of their own code from the comfort of their own desktops by specifying their pipe name in the connection dialog of the Oracle Spy client.

As with the 16-bit version, this is really for debugging purposes only. Although the package supplied with this executable ('ospy32.pls' which creates 'oracle_spy') is more robust than the example given with the 16-bit version, you might still get problems with pipes locking. This package is supposed to solve that by using an 8Kb FIFO stack and popping old messages off the top when the pipe fills up. I don't think it works quite that well though. If anyone's got any suggestions I'd be glad to hear them.

Of course clever people will have realised that with the new debugging facilities of the latest versions of the database this application's actually a load of pants. Hey, I wrote it before all that stuff was around. I reckon Oracle ripped me off. No. Not really. Oh, God they're gonna whup my ass. Sorry Larry.

If you look at the code you might notice some '#ifdef' statements, this is 'cos I originally tried using flashy multi-media timers instead of all that WM_TIMER tripe. However, the OCI libraries didn't seem to like this, possibly because this type of timer runs multi-threaded. At that time the OCI stuff wasn't MT-safe, I think it is now so you might want to recompile it with the right definitions set. It does make a difference y'know.

Remember kids; Oracle databases are not a toy, get a responsible adult to help you. Or if you can't find a responsible adult I s'pose your DBA would do.
 




G.E.M