Você pode criar um novo trabalho para cada execução ou copiar um trabalho existente com DBMS_SCHEDULER.COPY_JOB
. Em ambos os casos, você pode usar o DBMS_SCHEDULER.GENERATE_JOB_NAME
para gerar nomes exclusivos para os trabalhos.
Precisa: Para que o Oracle inicie um script de shell que execute o processamento em tabelas e dados no banco de dados Oracle. O script é instanciado por atividade específica de clientes da web.
Problema: Os clientes da Web irão instanciar esse trabalho simultaneamente. Para executar scripts de shell do Oracle, você deve fazer isso usando o agendador do Oracle. Este trabalho está definido para executar imediatamente a partir do Oracle. O que estou vendo na documentação do ORA-27477 é que o Oracle não permite que tarefas com o mesmo nome sejam executadas simultaneamente.
Antecedentes: Precisamos executar esse trabalho de processamento específico a partir do shell porque ele usa C para fazer o trabalho pesado. Portar esse código para PL / SQL não é uma opção. Muitos códigos legados em jogo aqui também me deixam triste, mas é a vida.
Tags database shell scheduled-tasks