Tenía curiosidad de cómo el Oralce JDBC thin client implementar tiempo de espera de consulta.
Este ajuste se puede realizar llamando a java.sql.Declaración del setQueryTimeout(int segundos)
método.

Se esta implementado en el propio controlador en el lado del cliente? Es un
nuevo hilo generado y se unió? ¿O es que el controlador JDBC simplemente
enviar un parámetro de Oracle, y luego se aplica el tiempo de espera?

Después de que el tiempo de espera se alcanza, que los recursos en el cliente y
base de datos son liberados, y que cuelgan alrededor? Hace Oracle continuar
para ejecutar la consulta, incluso aunque el cliente abandonado o es
terminado? Hay todavía un objeto cursor en el lado del cliente?

Gracias

InformationsquelleAutor oneself | 2010-03-04

4 Comentarios

  1. 12

    Tanel Poder, escribió un artículo sobre cómo Cancelar funciona a través de la OCI (Oracle Call Interface).
    Supongo que algo similar se hace para JDBC. Si usted está utilizando el controlador de espesor, a través de la OCI, usted podría tratar de seguimiento de la sesión (a través de la configuración de sqlnet.ora) y ver lo que se graba.

    • Así que, ¿esto significa que el controlador JDBC genera otra banda de rodamiento para la consulta y esperar a que se agote el tiempo de espera y, a continuación, envía un OCICancel?
    • No podía decir si es un subproceso independiente o simplemente un bucle diciendo: «Cualquier cosa, desde el servidor…ha agotado…cualquier cosa, desde el servidor…lo tiene agotado….»
  2. 15

    Según JDBC de Oracle preguntas frecuentes

    Declaración subproceso de tiempo de espera. Este tema es creado si usted ejecutar cualquier instrucción con un tiempo de espera. Sólo un hilo está creado, no importa cómo muchas de las declaraciones o de las conexiones. Este hilo dura la vida útil de la máquina virtual.

  3. 2

    Cuando una consulta realidad timesout cuando se utiliza el método setTimeOut, una excepción de SQL con Oracle código de error ORA-01013 - user requested cancel of current operation es arrojado desde el servidor de oracle.

    Esto significa que la operación ha sido cancelada correctamente (en la medida en que oracle está preocupado/como mucho oracle puede) – porque es de oracle el envío de este mensaje.

  4. 1

    Yo sé que la consulta no continuar en el lado del servidor cuando el tiempo de espera es alcanzado. Hay cierta intención/opción de señal enviada al servidor, ya sea antes o después de que el tiempo de espera se alcanza para indicar que el servidor se debe detener. He verificado que este buscando en el servidor en varios V$ tablas para ver si se ejecuta la consulta. (V$SESSION, V$SQL, etc)

Dejar respuesta

Please enter your comment!
Please enter your name here