É possível configurar o envio de e-mails com notificações sobre as mail para notificação sobre o estado das execuções dos Schedules schedules no banco de dados Oracle, assim, permitindo o monitoramento e que ações preventivas ou corretivas sejam executadas em caso de problemas com as execuções programadas. Para o envio dessas notificações por e-mail, é necessário realizar as configurações para o schedule no definidas pelo fabricante do banco de dados para os schedules desejados.
Este documento tem como objetivo apresentar a uma abordagem inicial do mecanismo nativo do banco de dados e descrever os passos básicos para ativação do monitoramento de schedules utilizando este mecanismo. Por se tratar de uma atividade administrativa, envolvendo configurações e liberações no banco de dados, recomenda-se que a configuração seja realizada por ou sob orientações do DBA responsável pela administração do ambiente.
Informações |
---|
Para mais informações sobre o recurso, acesse consulte a documentação oficial do fabricante do banco de dados. |
...
...
O primeiro passo na para configuração do mecanismo de notificação é informar na tarefa agendada desejada (scheduler) qual servidor SMTP será usado para enviar os e-mails. Você também pode definir, opcionalmente, um endereço de remetente padrão, que será usado caso o parâmetro “sender” “sender” não tenha sido especificado na notificação, que também possui um atributo para configuração de remetente. Mostraremos estas opções no próximo tópico - Adicionando Notificações a um ScheduleScheduler.
Para configurar os dados de notificação na schedule usamos o procedimento “SET DBMS_SCHEDULER.SET_SCHEDULER_ATTRIBUTE.
_ATTRIBUTE”, do pacote DBMS_SCHEDULER. Este procedimento possibilita a mudança de vários atributos do Schedulescheduler, porém, o foco neste momento são os itens referentes ao envio de e-mails para as notificações. São eles:
Atributo | Descrição |
---|
...
email_server |
...
Endereço do servidor SMTP usado para enviar os e-mails quando os eventos configurados para disparo forem atingidos. As notificações por e-mails não poderão ser enviadas se este atributo estiver com o valor padrão “NULL”. |
...
email_sender |
...
Endereço de e-mail configurado como remetente padrão para o disparo das notificações que não informarem um remetente. Caso este parâmetro não seja configurado e a notificação configurada também não possua um remetente, o campo remetente do e-mail será enviado em branco. |
...
email_server_credential |
...
Schema e nome da credencial existente, onde SYS tenha privilégios de execução neste objeto. O padrão para este atributo é “NULL”, ou seja, nenhuma credencial informada para uso. Caso o servidor exija credenciais para o envio de e-mails, este atributo deverá ser configurado. O nome de usuário e senha configurados nesta credencial serão usados para autenticação no servidor de e-mail informado durante a comunicação. |
...
email_server_encryption |
...
Este atributo possibilita a configuração do uso ou não da criptografia pela conexão ao servidor de envio de e-mail. Caso o servidor de envio dos e-mails exija a criptografia, este atributo deverá ser configurado com a opção adequada à necessidade do servidor. Valores possíveis para o atributo:
|
...
|
...
|
...
|
...
|
...
Abaixo, temos um exemplo da chamada do procedimento para definir as propriedades email_server e email_sender.
Bloco de código | ||
---|---|---|
| ||
BEGIN
DBMS |
Para informações mais detalhadas sobre o procedimento, sugerimos uma consulta ao link da documentação oficial de uso.
Segue abaixo a sintaxe padrão do procedimento SET_SCHEDULER_ATTRIBUTE:
...
DBMS_SCHEDULER.SET_SCHEDULER_ATTRIBUTE (
attribute
IN
VARCHAR2,
value
IN
VARCHAR2);
Exemplo de utilização:
...
_SCHEDULER.set_scheduler_attribute('email_server', 'smtp.dominio.com:25'); |
...
DBMS_SCHEDULER.set_scheduler_attribute('email_sender', 'do_not_ |
...
reply@dominio.com'); |
...
END; |
...
/ |
...
É possível também definir um endereço de remetente para cada notificação, usando o parâmetro “sender”. Quando este for informado, substituirá o parâmetro “email_sender” se também configurado diretamente no Schedule.
Sintaxe padrão ADD_JOB_NOTIFICATION:
...
.
...
...
A notificação do exemplo a seguir é acionada quando o Schedule é iniciado ou finalizado de forma bem-sucedida. Ele usa o assunto (Subject) e o corpo (Body) padrão.
Bloco de código | ||
---|---|---|
| ||
BEGIN |
...
DBMS_SCHEDULER.add_job_email_notification ( |
...
job_name = |
...
> 'teste_notificação_schedule', |
...
recipients => |
...
‘destinatario@empresa.com',, |
...
events => 'job_started, job_succeeded'); |
...
END; |
...
/ |
A notificação a seguir será acionada somente se um Schedule falhar com um código de erro "600".
...