| [Date Prev] [Date Next] | [Thread Prev] [Thread Next] | [Date Index] [Thread Index] |
Re: [nocol-users] SQLMon
|
"Nathan Clemons [Staff]" wrote:
>
> I made some changes to the SQL monitor provided by Rick. Let me know how
> this works for you all, seems to work beautifully for me.
There are a few problems with it.
foreach $item (@items ) {
# ($host,$ipaddr) = split(/\t/,$item);
$rc = 0;
$failconnect = 0; <-- If you don't initialize this it retains its
value for
the next server
print "(debug) dotest: connecting to database
$data_source{$item} ($username{$item},
$password{$item})\n" if $debug;
if ($dbh = DBI->connect($data_source{$item}, $username{$item},
$password{$item})) {
print "(debug) dotest: running command $query_string{$item}\n" if
$debug;
if (!($rc = $dbh->do($query_string{$item}))) {
print "(debug) $host : $dbh->errstr" if $debug;
Because of the line commented out above, $host doesn't actually contain
anything. Uncomment it or use $item. Also, I have trouble with $dbh->errstr
printing out within quotes. I'm sure there's some special syntax but I
simply changed the print statement to
print "(debug) $item : ".$dbh->errstr."\n" if $debug;
$failconnect = -1;
}
} else {
print "(debug) $host : $DBI::errstr" if $debug; <-- same deal here
$rc = $failconnect = -1; <-- Change this to -2
}
Then down a bit further:
if ($failconnect > -1) { $dbh->disconnect; }
change that to
if ($failconnect > -2) { $dbh->disconnect; }
We need to differentiate between a failure of DBI->connect (which doesn't
need a subsequent disconnect) and a failure of $dbh->do (which still needs
the disconnect).
--
_______________________________________________________________________
Rick Beebe (203) 785-6416
Manager, Systems & Network Engineering FAX: (203) 785-3978
ITS-Med Client & Technology Services Richard.Beebe@yale.edu
Yale University School of Medicine
P.O. Box 208078, New Haven, CT 06520-8078
_______________________________________________________________________
|