Building a custom runner to log all accesses to the 4gi/4go
Posted in 2005
Topics: Connectivity: ESQL/C, 4GL & Embedded SQL, Security, Permissions & Auditing, Internationalization & Character Sets
Hi, We are reengineering our existing informix 4gl environment and to determine which code is actually being run we would like to audit code being run by our users. Is it possible to build a custom runner to perform this task? And if so what function do I need to put our audit code in to ensure that it is called on every entry through to the 4gi's? Or do we need to update our 4gls and or put a shell script around fglgo? Thanks R
I don't know about a runner but auditing each function call will just slow down the system massively and use lots of disc space. You need to talk to the users and remove things they do not use. End of year reports won't show up in what people run now but are still needed!
informix@southriver.com.au wrote: > We are reengineering our existing informix 4gl environment and to > determine which code is actually being run we would like to audit code > being run by our users. > > Is it possible to build a custom runner to perform this task? And if so > what function do I need to put our audit code in to ensure that it is > called on every entry through to the 4gi's? > > Or do we need to update our 4gls and or put a shell script around > fglgo? Are you referring to tracking the applications at the program level - this program is run frequently, this program is run seldom, this program hasn't been run since the last 29th February - or at a more detailed level? David responded in terms appropriate to a more detailed level; my immediate reaction had been to the program level. On rereading your post, I'm not sure which you had in mind. If you are referring to the application level, you could create a custom runner - though I'd be more likely to create a wrapper program that is used and does the logging before invoking the real runner than try hacking into the standard runner's main program to do logging. Alternatively, and depending on your local coding standards, you could rely on the standard startup code that sorts out local issues - such as always starting a log file - and use that as a way of detecting which programs are run when. Of course, if you don't have any standard startup code, then you have to retrofit such code. A shell script around fglgo would also work; that is also routine for me (it sets the environment, etc). If you are thinking of monitoring within a program, then you'll have to devise appropriate changes to your I4GL code. -- Jonathan Leffler #include <disclaimer.h> Email: jleffler@earthlink.net, jleffler@us.ibm.com Guardian of DBD::Informix v2005.02 -- http://dbi.perl.org/