diff --git a/ChangeLog b/ChangeLog index 3be0679..8d77ae3 100755 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,5 @@ +* 3.3.2.1 - 2023-02-07 + bugfix in flash-recovery-area-* * 3.3.2 - 2023-02-06 check if flashback is enabled * 3.3.1 - 2023-01-12 diff --git a/configure.ac b/configure.ac index c62a26f..b42e4c1 100644 --- a/configure.ac +++ b/configure.ac @@ -2,7 +2,7 @@ # Process this file with autoconf to produce a configure script. AC_PREREQ([2.69]) -AC_INIT(check_oracle_health,3.3.2) +AC_INIT(check_oracle_health,3.3.2.1) AM_INIT_AUTOMAKE([1.9 tar-pax]) AM_MAINTAINER_MODE([disable]) AC_CANONICAL_HOST diff --git a/plugins-scripts/Nagios/DBD/Oracle/Server/Database.pm b/plugins-scripts/Nagios/DBD/Oracle/Server/Database.pm index 2a6a8b5..b0b1a07 100755 --- a/plugins-scripts/Nagios/DBD/Oracle/Server/Database.pm +++ b/plugins-scripts/Nagios/DBD/Oracle/Server/Database.pm @@ -51,14 +51,17 @@ sub init { select FLASHBACK_ON from v$database; }); } - DBD::Oracle::Server::Database::FlashRecoveryArea::init_flash_recovery_areas(%params); if ($has_flash eq "NO") { $self->add_nagios_ok("flashback is not enabled"); - } elsif (my @flash_recovery_areas = - DBD::Oracle::Server::Database::FlashRecoveryArea::return_flash_recovery_areas()) { - $self->{flash_recovery_areas} = \@flash_recovery_areas; + $self->{flash_recovery_areas} = []; } else { - $self->add_nagios_critical("unable to aquire flash recovery area info"); + DBD::Oracle::Server::Database::FlashRecoveryArea::init_flash_recovery_areas(%params); + if (my @flash_recovery_areas = + DBD::Oracle::Server::Database::FlashRecoveryArea::return_flash_recovery_areas()) { + $self->{flash_recovery_areas} = \@flash_recovery_areas; + } else { + $self->add_nagios_critical("unable to aquire flash recovery area info"); + } } } elsif ($params{mode} =~ /server::database::dataguard/) { $self->{dataguard} = DBD::Oracle::Server::Database::Dataguard->new(%params); diff --git a/plugins-scripts/Nagios/DBD/Oracle/Server/Instance.pm b/plugins-scripts/Nagios/DBD/Oracle/Server/Instance.pm index 581b33f..1fd7c48 100644 --- a/plugins-scripts/Nagios/DBD/Oracle/Server/Instance.pm +++ b/plugins-scripts/Nagios/DBD/Oracle/Server/Instance.pm @@ -187,16 +187,19 @@ sub nagios { $self->{session_usage}, $self->{warningrange}, $self->{criticalrange}); } elsif ($params{mode} =~ /server::instance::session::blocked/) { - if (! @{$self->{sessions}}) { - $self->add_nagios_ok("no blocking sessions"); + my $sessions_blocked = $DBD::Oracle::Server::Instance::Session::sessions_blocked; + if ($sessions_blocked == 0) { + $self->add_nagios_ok("no blocking sessions"); } else { + $self->add_nagios( + $self->check_thresholds($sessions_blocked, 10, 50), + sprintf "%d blocking sessions found", $sessions_blocked); + $self->add_perfdata(sprintf "blocking_sessions=%d;%d;%d", $sessions_blocked, $self->{warningrange}, $self->{criticalrange} + ); foreach (@{$self->{sessions}}) { $_->nagios(%params); $self->merge_nagios($_); } - #if (! $self->{nagios_level} && ! $params{selectname}) { - # $self->add_nagios_ok("no enqueue problem"); - #} } } elsif ($params{mode} =~ /server::instance::processusage/) { $self->add_nagios( diff --git a/plugins-scripts/Nagios/DBD/Oracle/Server/Instance/Session.pm b/plugins-scripts/Nagios/DBD/Oracle/Server/Instance/Session.pm index c562eac..bd285c9 100644 --- a/plugins-scripts/Nagios/DBD/Oracle/Server/Instance/Session.pm +++ b/plugins-scripts/Nagios/DBD/Oracle/Server/Instance/Session.pm @@ -11,6 +11,7 @@ my %ERRORCODES=( 0 => 'OK', 1 => 'WARNING', 2 => 'CRITICAL', 3 => 'UNKNOWN' ); our @sessions = (); our $initerrors = undef; our $session_usage = 0; + our $sessions_blocked = 0; sub add_session { push(@sessions, shift); @@ -98,6 +99,7 @@ my %ERRORCODES=( 0 => 'OK', 1 => 'WARNING', 2 => 'CRITICAL', 3 => 'UNKNOWN' ); %thisparams); add_session($session); $num_sessions++; + $sessions_blocked++; } if (! $num_sessions && $params{mode} !~ /server::instance::session::blocked/) { $initerrors = 1;