run job example developer create crear 12c oracle scheduler job-scheduling dbms-scheduler dbms-job

oracle - example - DBMS_JOB vs DBMS_SCHEDULER



scheduler job in oracle example (3)

¿Cuál es la diferencia entre DBMS_JOB y DBMS_SCHEDULER?


Una diferencia a tener en cuenta es que, a diferencia de DBMS_JOB, DBMS_SCHEDULER realiza una confirmación, lo que la hace inadecuada para algunos usos. También es bastante engorroso para requisitos más simples. Si bien DBMS_JOB ya no se mejorará, es poco probable que nunca se admita, ya que debe haber miles de sistemas que lo utilizan y dependen de la forma en que funciona, incluido el no realizar un compromiso implícito de la transacción desde la cual se realizó la llamada.

Ver este hilo Ask Tom para más.


Desde otros foros:

Aunque dbms_job todavía existe en 10g y 11g, Oracle recomienda el uso de dbms_scheduler en las versiones 10g y superiores. No se están agregando nuevas funciones a dbms_job y es probable que se encuentre rápidamente con sus limitaciones.

dbms_scheduler es más robusto y completo que dbms_job e incluye las siguientes características que dbms_job no tiene:

  • registro de ejecuciones de trabajos (historial de trabajos)
  • Sintaxis de programación simple pero poderosa (similar pero más potente que la sintaxis cron)
  • Ejecución de trabajos fuera de la base de datos en el sistema operativo.
  • Gestión de recursos entre diferentes clases de trabajos.
  • Uso de argumentos de trabajo, incluido el paso de objetos a procedimientos almacenados.
  • Modelo de seguridad basado en privilegios para trabajos.
  • Nombramiento de trabajos y comentarios en trabajos.
  • horarios almacenados, reutilizables

Las características de las versiones posteriores a la versión 10g 1 incluyen:

  • dependencias entre unidades de trabajo (10gR2 y superiores)
  • programación basada en calendarios financieros y trimestres fiscales (10gR2 y superiores)
  • trabajos basados ​​en eventos que se ejecutan cuando se recibe un evento (10gR2 y superiores)
  • Ejecución de trabajos en máquinas remotas (11gR1 y superiores)
  • Notificaciones por correo electrónico sobre eventos laborales de interés (10gR2 y superiores)
  • iniciar un trabajo basado en la llegada de un archivo (10gR2 en adelante)

A continuación se enumeran algunos de los beneficios que DBMS_SCHEDULER tiene sobre cron:

• Puede hacer que la ejecución de un trabajo dependa de la finalización de otro trabajo

• Equilibrio de recursos robusto y funciones de programación flexibles

• Puede ejecutar trabajos basados ​​en un evento de base de datos

• La sintaxis DBMS_SCHEDULER funciona de la misma manera independientemente del sistema operativo

• Puede ejecutar informes de estado utilizando el diccionario de datos

• Si trabaja en un entorno en clúster, no debe preocuparse por la sincronización de varias tablas cron para cada nodo en el clúster

A continuación se enumeran algunas de las ventajas de usar cron:

• Fácil de usar, simple, probado y verdadero.

• Casi universalmente disponible en todas las cajas de Linux / Unix; en su mayor parte, se ejecuta de manera casi idéntica, independientemente de la plataforma Linux / Unix (sí, hay pequeñas diferencias)

• Base de datos agnóstica; funciona independientemente de la base de datos y funciona de la misma manera independientemente del proveedor de la base de datos o la versión de la base de datos

• Funciona si la base de datos está disponible o no.