| DB2-Admin documentation | view source | Contained in the DB2-Admin distribution. |
DB2::Admin::EventParser - Support for processing DB2 event monitor files
use DB2::Admin::EventParser;
my $parser = DB2::Admin::EventParser::->new('Directory' => '/tmp/eventdir');
while (1) {
my $start = time();
# Process all events since last time
my $events = 0;
while (my $event = $parser->GetEvent()) {
... process event ...
$events++;
}
my $elapsed = 0;
if ($events) {
# Clean up events fully processed
$parser->Cleanup();
my $end = time();
$elapsed = $end - $start;
}
if ($elapsed > $scan) {
print "Took [$elapsed] seconds, scan rate [$scan]\n";
} else {
print "Will sleep [", ($scan - $elapsed), "] seconds\n";
sleep ($scan - $elapsed);
}
}
DB2 event monitors can write to a file, to a named pipe, or to DB2
tables. The DB2::Admin::DataStream class cna be used to parse events
written to a file or named pipe.
When events monitors write to a file, DB2 weill switch to a new file if the current file is full; the reading application is responsible to clean up the old file. After a database restart, DB2 continues appending to the latest file.
This class is intended to help process such files. It depends on the
DB2::Admin::DataStream module to parse file contents. The value it
provides is in switching from file to file, being able to restart
reading at a desired point, and deleting files that have been fully
processed.
This method creates a new parser object. It takes a single named
parameter, Directory, which is the name of the directory that
contains the DB2 event monitor files.
The parser object maintains internal styate for the file currently being processed and the position within that file.
This method retrives the next event from the event file. It returns a
DB2::Admin::DataStream object, or undef if all events have been
read.
This method cleans up all files that have been fully processed, assuming the parser has swicthed to a the next event file.
This method is not implicit in GetEvent because having a separate
method gives the programmer the opportunity to delay file deletion
until the events has been archived or acted upon.
This method returns a hash reference with File and Offset fields
describing the current event file and position within the file. It
returns undef if the parser has not started reading any event file.
The return value can be saved at event monitor shutdown time and later
be fed into SetPosition to restart where the event monitor left
off.
This method takes two named parameters, File and Offset, as
returned by a previous call to InquirePosition. It can be used to
resume processing at a position previously inquired and saved.
WARNING: feeding random offsets into this module will cuase the parser to return invalid data and possibly crash.
Hildo Biersma
DB2::Admin(3) DB2::Admin::DataStream(3), DB2::Admin::DataElement(3)
| DB2-Admin documentation | view source | Contained in the DB2-Admin distribution. |