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 la instancia de Autonomous Database.
- Acerca del manejador de notificaciones definido por el usuario para los 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 Notificación de Trabajo
Proporciona pasos para crear un manejador de notificación de trabajo. - Registro del 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
Database Scheduler 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 relacionada con 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. Según la información, el procedimiento del 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 Notificación de Trabajo.
-
Registre el procedimiento del manejador de notificaciones de trabajos para la base de datos como se describe en: Register the Job Handler Notification Procedure.
-
Disparar el procedimiento del manejador de notificaciones de trabajos como se describe en: Disparar el procedimiento de notificación del manejador de trabajos
-
Anule el registro del procedimiento del manejador de notificaciones de trabajos para la base de datos como se describe en: Anular el registro del procedimiento de notificación del manejador de trabajos.
Creación de un Procedimiento de Manejador de Notificación de Trabajo
Proporciona pasos para crear un manejador de notificaciones de trabajos.
Registro del Procedimiento de Notificación del Manejador de Trabajos
Utilice el procedimiento DBMS_SCHEDULER.SET_SCHEDULER_ATTRIBUTE
para definir el valor de 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 del 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 emite 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 SET_SCHEDULER_ATTRIBUTE Procedure 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 manejador de trabajos
Debe llamar al procedimiento DBMS_SCHEDULER.ADD_JOB_EMAIL_NOTIFICATION
para disparar el procedimiento del manejador de notificaciones de trabajos definido por el usuario.
DBMS_SCHEDULER.ADD_JOB_EMAIL_NOTIFICATION
permite disparar el procedimiento del manejador de notificaciones de trabajos 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 del 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 de procedimiento sobrecargada no envía notificaciones por correo electrónico, puede proporcionar cualquier valor de cadena para el parámetro RECIPIENT
.
Anular Registro del Procedimiento de Notificación del Manejador 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 manejador de trabajos:
BEGIN
DBMS_SCHEDULER.SET_SCHEDULER_ATTRIBUTE ('job_notification_handler','');
END;
/