La BD necesita supervisar las coneciones y si no hay actividad las cierra, lo
que debes hacer es una funcion que mande un query baboso cada cierto
tiempo(ejemplo en Perl):
#---------------------------------------------------------#
# Function: Ping([DB handler]) #
#---------------------------------------------------------#
# Objetive: Send a silly query to keep DB connection #
# alive. #
# Params: DB handler #
# Usage: #
# Ping($dbh); #
#---------------------------------------------------------#
sub Ping {
my ($dbh) = @_;
my $ret = 0;
eval {
local $SIG{__DIE__} = sub { return (0); };
local $SIG{__WARN__} = sub { return (0); };
# adapt the select statement to your database:
$ret = $dbh->do('select 1;');
};
return ($@) ? 0 : $ret;
}
y en tu ciclo de control:
while (1) { # Main loop #
...
# Send Ping to DB to mantain the Session Open
$ping_cycle++;
if ($ping_cycle >= 500) {
$ping_cycle = 0;
Ping($dbh);
}
...
} # End of main loop
Saludos... El Pop
On Jun 21, 2010, at 10:54 PM, Jaime Arrieta wrote:
> Apreciados listeros (ras)
>
> He desarrollado una aplicación en real-basic la cual se conecta a PostgresSQL
> que esta instalado en fedora 5.
> La pregunta es la siguiente, cuando me conecto localmente la conección con la
> base de datos se mantiene sin ningún problema, pero
> cuando lo hago desde una sucursal remotamente si el usuario no captura datos
> pasado un tiempo la comunicacion con la base se cae, es necesario ejecutar
> nuevamente la aplicacion, agradesco su gentil ayuda para la solucion de este
> problema.
>
> Cordial saludo
> Jaime A. Arrieta S.