Manejador de notificaciones definido por el usuario para trabajos de programador
La adición de un procedimiento de manejador de notificaciones de trabajos del programador permite supervisar los trabajos programados o automatizados que se ejecutan en Autonomous Database.
- Acerca del manejador de notificaciones definido por el usuario para trabajos del programador
El programador de base de datos soporta el procedimiento de manejador de notificaciones de trabajos que puede utilizar código personalizado para llamar a puntos finales HTTP o REST para mejorar la supervisión de los trabajos del programador en una instancia de Autonomous Database. - Creación de un procedimiento de manejador de notificaciones de trabajo
Proporciona pasos para crear un manejador de notificaciones de trabajo. - Registrar el procedimiento de notificación del manejador de trabajos
Utilice el procedimientoDBMS_SCHEDULER.SET_SCHEDULER_ATTRIBUTE
para definir el valor del atributoJOB_NOTIFICATION_HANDLER
para registrar el procedimiento de notificación del manejador de trabajos. - Disparar el procedimiento de notificación del manejador de trabajos
Debe llamar al procedimientoDBMS_SCHEDULER.ADD_JOB_EMAIL_NOTIFICATION
para disparar el procedimiento del manejador de notificaciones de trabajos definido por el usuario. - Anulación del registro del procedimiento de notificación del manejador de trabajos
UtiliceDBMS_SCHEDULER.SET_SCHEDULER_ATTRIBUTE
para anular el registro del procedimiento de notificación del manejador de trabajos.
Tema principal: Desarrollo
Acerca del manejador de notificaciones definido por el usuario para trabajos de programador
El programador de base de datos soporta el procedimiento de manejador de notificaciones de trabajos que puede utilizar código personalizado para llamar a puntos finales HTTP o REST para mejorar la supervisión de los trabajos del programador en una instancia de Autonomous Database.
El procedimiento de manejador recibe toda la información pertinente sobre el trabajo, como el nombre del propietario del trabajo, el nombre de clase, el tipo de evento y el registro de hora en formato JSON. En función de la información, el procedimiento de manejador realiza la acción necesaria.
Consulte DBMS_SCHEDULER para obtener más información sobre Oracle Scheduler.
La configuración del manejador de notificaciones definido por el usuario para los trabajos del programador consta de los siguientes pasos:
-
Cree un procedimiento de manejador de notificaciones de trabajo como se describe en: Creación de un procedimiento de manejador de notificaciones de trabajo.
-
Registre el procedimiento de manejador de notificaciones de trabajo para la base de datos como se describe en: Registro del Procedimiento de Notificación de Manejador de Trabajos.
-
Disparar el procedimiento de manejador de notificaciones de trabajo como se describe en: Disparar el Procedimiento de Notificación de Manejador de Trabajos
-
Anule el registro del procedimiento de manejador de notificaciones de trabajo para la base de datos como se describe en: Anule el registro del procedimiento de notificación de manejador de trabajos.
Creación de un Procedimiento de Manejador de Notificaciones de Trabajo
Proporciona los pasos para crear un manejador de notificaciones de trabajo.
Registrar el procedimiento de notificación del gestor de trabajos
Utilice el procedimiento DBMS_SCHEDULER.SET_SCHEDULER_ATTRIBUTE
para definir el valor del atributo JOB_NOTIFICATION_HANDLER
para registrar el procedimiento de notificación del manejador de trabajos.
El atributo JOB_NOTIFICATION_HANDLER
especifica el procedimiento de notificación del manejador de trabajos que desea utilizar.
-
Conéctese como usuario ADMIN o tenga el privilegio
MANAGE SCHEDULER
. -
Tenga el privilegio
EXECUTE
en el procedimiento de manejador o el privilegio del sistemaEXECUTE ANY PROCEDURE
.
El atributo JOB_NOTIFICATION_HANDLER
y el atributo EMAIL_SERVER
se excluyen mutuamente. El parámetro ATTRIBUTE
del procedimiento SET_SCHEDULER_ATTRIBUTE
puede tener el valor JOB_NOTIFICATION_HANDLER
o EMAIL_SERVER
a la vez. Puede configurar notificaciones por correo electrónico o crear el manejador de notificaciones para los trabajos del programador.
Se produce un error ORA-27488
al intentar definir los atributos globales EMAIL_SERVER
y JOB_NOTIFICATION_HANDLER
.
Ejecute el procedimiento DBMS_SCHEDULER.SET_SCHEDULER_ATTRIBUTE
para registrar el procedimiento de notificación del manejador de trabajos:
BEGIN
DBMS_SCHEDULER.SET_SCHEDULER_ATTRIBUTE('job_notification_handler','ADMIN.SEND_NOTIFICATION');
END;
/
En este ejemplo se registra el procedimiento ADMIN.SEND_NOTIFICATION
como procedimiento de notificación del manejador de trabajos para la base de datos.
Consulte el procedimiento SET_SCHEDULER_ATTRIBUTE para obtener más información.
Ejecute este comando para verificar el manejador de notificaciones de trabajos:
SELECT value FROM dba_scheduler_global_attribute WHERE attribute_name='JOB_NOTIFICATION_HANDLER';
VALUE
---------------
"ADMIN"."SEND_NOTIFICATION"
Consulte DBA_SCHEDULER_GLOBAL_ATTRIBUTE para obtener más información.
Debe asignar el privilegio EXECUTE
para permitir que otros usuarios utilicen el manejador de notificaciones de trabajos. Por ejemplo:
GRANT EXECUTE ON ADMIN.SEND_NOTIFICATION To DWUSER;
Si no tiene privilegios en el procedimiento de notificación del manejador de trabajos, se devuelve el error ORA-27476 ("\"%s\".\"%s\" does not exist")
o ORA-27486 ("insufficient privileges")
.
Disparar el procedimiento de notificación del gestor de trabajos
Debe llamar al procedimiento DBMS_SCHEDULER.ADD_JOB_EMAIL_NOTIFICATION
para disparar el procedimiento de manejador de notificaciones de trabajo definido por el usuario.
DBMS_SCHEDULER.ADD_JOB_EMAIL_NOTIFICATION
permite disparar el procedimiento de manejador de notificaciones de trabajo y enviar una notificación. Sin embargo, estas notificaciones no se envían en forma de correo electrónico cuando se ha registrado el procedimiento de manejador de notificaciones de trabajo. Por lo tanto, los parámetros SUBJECT
y BODY
son opcionales. El parámetro RECIPIENT
sigue siendo obligatorio. Dado que esta forma sobrecargada de procedimiento no envía notificaciones por correo electrónico, puede proporcionar cualquier valor de cadena para el parámetro RECIPIENT
.
Procedimiento de notificación de anulación de registro del gestor de trabajos
Utilice DBMS_SCHEDULER.SET_SCHEDULER_ATTRIBUTE
para anular el registro del procedimiento de notificación del manejador de trabajos.
MANAGE SCHEDULER
.
Ejemplo para anular el registro del procedimiento de notificación del gestor de puestos:
BEGIN
DBMS_SCHEDULER.SET_SCHEDULER_ATTRIBUTE ('job_notification_handler','');
END;
/