sub ping {
my $self = shift;
- my $query = 'SELECT 1';
- if (!$self->do($query)) {
- # ping failed, reconnect the database
+ if (!$self->{db_connection}->ping()) {
+ # ping failed
+ main::print_msg("Database connection failed, trying to reconnect", WARN);
+ # reconnect the database
$self->reconnect_db_connection();
- if (!$self->do($query)) {
+ if (!$self->{db_connection}->ping()) {
# reconnect failed
+ main::print_msg("Database reconnect failed", ERROR);
return 0;
}
+ main::print_msg("Database reconnected", INFO);
}
return 1;
return 0;
}
+ if (!$self->ping()) {
+ main::print_msg("Database connection failed", ERROR);
+ return 0;
+ }
+
my $result = $self->{db_connection}->do($query);
if (!$result) {
main::print_msg("Could not execute database query: $DBI::errstr", ERROR);
return undef;
}
+ if (!$self->ping()) {
+ main::print_msg("Database connection failed", ERROR);
+ return 0;
+ }
+
my $st = $self->{db_connection}->prepare($query);
if (!$st->execute(@param)) {
main::print_msg("Could not execute database query: $DBI::errstr", ERROR);