tipos software patrones para lista ejemplos diseño desarrollo datos creacion bases arquitectura sql oracle plsql dbms-scheduler dbms-job

sql - software - ¿Cómo crear un trabajo programado "singleton" en Oracle?



patrones de diseño para desarrollo web (4)

De la guía de administradores de Oracle 10g:

"El paquete DBMS_JOB ha sido reemplazado por el paquete DBMS_SCHEDULER . En particular, si está administrando trabajos para administrar la carga del sistema, debería considerar deshabilitar DBMS_JOB al revocar el privilegio de ejecución del paquete para los usuarios".

DBMS_SCHEDULER es la forma recomendada por Oracle para hacer esto ahora. Una ventaja que tiene es que puede administrar sus trabajos a través de Enterprise Manager / Grid Control si está usando esto.

Probablemente sea solo el vocabulario que me falta para descubrir cómo hacer esto:

Un trabajo programado para ejecutarse regularmente cada 5 minutos, sin embargo, mantener un seguimiento de que nunca hay dos instancias de ejecución al mismo tiempo, es decir, la siguiente instancia se pospondría o saltaría si la anterior dura más de 5 minutos.

¿Cuál es la forma más fácil / más elegante de lograr esto?


Otra ventaja que dbms_scheduler tiene sobre dbms_job es que puede controlar mejor la carga, el uso de recursos y que también puede ejecutar trabajos externos a la base de datos.

hth, Ronald.


Si por alguna razón dbms_job o dbms_scheduler no funcionan para usted, también puede usar DBMS_APPLICATION_INFO.SET_APPLICATION_INFO para establecer el nombre del módulo de su trabajo y puede consultar v $ session para ver cuántas sesiones están actualmente ejecutando ese módulo.

¿Qué tipo de trabajo es este? ¿Un procedimiento almacenado PL / SQL?


DBMS_JOB se ocupa de eso. Solo úsalo.