On 12/10/2010 6:04 PM, Tim Peiffer wrote: > How do I log into a database at startup/reload, and pass the database > handle, or expose it to subsequent rules? I have successfully logged > into a database and select suitable information. Unfortunately, if I > comment out the 'use DBI' and 'DBI->connect', and insert a rule (rule 1) > that is caught on a startup internal event, the same lookup fails when > dereferencing the database handle. Since the database is defined in a > previous rule, it is unitialized at the time of the call in rule 2. > > How do I pass the database handle from one rule to another?
I find it easiest to encapsulate all my setup like this in a module, then you just do: # load library module on startup/reload type=Single ptype=RegExp continue=TakeNext pattern=(SEC_STARTUP|SEC_RESTART|SEC_SOFTRESTART) desc=SEC Initialization context=SEC_INTERNAL_EVENT action=eval %o (require '/wm/lib/perl/WM/SEC/init.pl'; 1) In our case, we're loading up that init.pl "module" that sets up variables, functions, etc. Each time you reload, it could re-evaluate this, in which case 'do' may be better than 'require'. This module can setup variables, provide function references, etc. Note that this has TakeNext so I can have other unrelated startup rules fire after this one if needed. On my home server, I've been working on a slightly more flexible model: type=Single ptype=RegExp continue=TakeNext pattern=^SEC_(?:STARTUP|RESTART|SOFTRESTART)$ desc=SEC Initialization context=SEC_INTERNAL_EVENT action=eval %o (do '/usr/local/lib/MySEC.pl'; MySEC::init(); 1) type=Calendar time=*/5 * * * * desc=MySEC Reload action=eval %o (MySEC::reload(); 1); The second rule triggers a function periodically that reloads any external data needed by the module. Since I use 'do' here, each reload will refresh the code as well. Regards, Mark -- Mark D. Nagel, CCIE #3177 <mna...@willingminds.com> Principal Consultant, Willing Minds LLC (http://www.willingminds.com) cell: 949-279-5817, desk: 714-495-4001, fax: 949-623-9854 *** Please send support requests to supp...@willingminds.com! *** ------------------------------------------------------------------------------ Oracle to DB2 Conversion Guide: Learn learn about native support for PL/SQL, new data types, scalar functions, improved concurrency, built-in packages, OCI, SQL*Plus, data movement tools, best practices and more. http://p.sf.net/sfu/oracle-sfdev2dev _______________________________________________ Simple-evcorr-users mailing list Simple-evcorr-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/simple-evcorr-users