Tecnología

Inicio

¿Cómo puedo encontrar los errores de los fracasos de Oracle de empleo?

La base de datos Oracle ofrece un método muy robusto, potente y personalizable para la programación de tareas. En un nivel básico, un trabajo de Oracle es un bloque de PL / SQL, lenguaje de programación de Oracle, código que está programado para ejecutarse en un momento determinado. horarios de trabajo puede ser muy complicado y la ejecución de código para un trabajo de Oracle pueden ser tan básico como una instrucción de inserción una línea o una línea de 10.000 PL / SQL. Por el bien de este ejemplo, los detalles del código PL / SQL que se está ejecutando es irrelevante, ya que se dirigirá a la determinación de la causa de los trabajos con errores de Oracle.

Instrucciones

1 Utilizar el construido en DBMS_SCHEDULER paquete para crear el trabajo. Suponiendo que el efecto deseado es para ejecutar el procedimiento apps.do_something todos los días a las 2:00 pm se vería así:

EMPEZAR

DBMS_SCHEDULER.CREATE_JOB (

job_name => 'example_job',

tipo_de_trabajo => 'STORED_PROCEDURE',

job_action => 'apps.do_something',

fecha_inicial => '20 dec-10 02.00.00 PM ',

repeat_interval => 'FREC = DIARIO,

=> comentarios Comentarios de los puestos de trabajo de aquí ');

FIN;

/

2 Ver las anotaciones de trabajo para los mensajes de éxito o de error. De forma predeterminada, Oracle registra el estado del trabajo en la vista de diccionario de datos DBA_SCHEDULER_JOB_LOG. Alternativamente, si el trabajo es específico para el usuario actual, USER_SCHEDULER_JOB_LOG se puede consultar. Una consulta de ejemplo de este punto de vista es el siguiente:

marca de tiempo SELECT, job_name, job_class, operación de estado de USER_SCHEDULER_JOB_LOG donde job_name = 'example_job';

3 Ver información detallada sobre el trabajo. Para los trabajos que figuran con la operación definida como RUN, RETRY_RUN o RECOVERY_RUN en la vista DBA / USER_SCHEDULED_JOB_LOG, Oracle proporciona detalles adicionales en USER_SCHEDULED_JOB_RUN_DETAILS o DBA_SCHEDULED_JOB_RUN_DETAILS. Por ejemplo:

TIMESTAMP SELECT, job_name, estado, ADDITIONAL_INFO

DE DONDE user_scheduler_job_run_details job_name = 'example_job'