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

Reply via email to