Página 1 de 1

Determinar tiempo y detener ejecución

NotaPublicado: 2012-10-10 10:54 @496
por Emstro
Hola,

Tengo unos reportes en una interfaz WEB (HTML) los cuales entregan unos resultados dependiendo los filtros de este reporte.

La consulta las hago a Oracle y algunas veces se demora demasiado ya que tengo unos group by y periodos de fechas extensos.

Consulta:

¿Cómo puedo monitorizar el tiempo de respuesta de Oracle y si pasa cierto rango de tiempo detener la consulta, para poder ejecutar un script que mande el reporte a través de correo?

Saludos y gracias.

Re: Determinar tiempo y detener ejecución

NotaPublicado: 2012-10-10 14:44 @656
por explorer
En la documentación de DBI, en la sección Signal Handling and Canceling Operations, se comenta este asunto.

Primero se comenta el uso de cancel() llamado a través de %SIG con una llamada procedente de una señal externa, o de $SIG{ALRM} para el caso de interrumpir pasado un tiempo (más información sobre las señales en perlipc).

También comenta el uso (para el caso de Oracle) de la función sigaction() del módulo POSIX (pone un ejemplo).

Para una implementación más clara, comenta también usar Sys::SigAction. En la página de manual de este módulo viene un ejemplo para DBD::Oracle.

Re: Determinar tiempo y detener ejecución

NotaPublicado: 2012-10-10 16:24 @725
por Emstro
Gracias, explorer, voy a dar un vistazo y te cuento.

Saludos.