【发布时间】:2012-02-19 22:32:51
【问题描述】:
我有一个每 15 分钟运行一次的 oracle 批处理作业。由于某些原因,批处理作业中执行的业务逻辑可能需要超过 15 分钟。有什么方法可以检查批处理作业是否仍在进行中?
即
批处理作业运行(过程 1)需要 20 分钟 15 分钟后,相同的批处理作业运行(过程 2).. 我想检查具有此名称的批处理作业是否已经在运行。
有一个procedure 将大量数据从一条记录复制到另一条记录。此过程每 15 分钟执行一次,使用dbms_scheduler 即DBMS_SCHEDULER.CREATE_SCHEDULER,使用DBMS_SCHEDULER.CREATE_PROGRAM 创建程序并在DBMS_SCHEDULER.CREATE_JOB 中使用这两个
【问题讨论】:
-
提供有关此“批处理作业”功能的更多详细信息会很有帮助。这是通过
DBMS_JOB或DBMS_SCHEDULER在数据库中安排的吗?V$SESSION表中是否有将会话标识为属于批处理作业的内容?是否有一些可以查询的表更新?你能修改批处理作业来做这些事情吗? -
有一个
procedure将大量数据从一条记录复制到另一条记录。此过程由使用dbms_scheduler安排的dbms_job每15 分钟执行一次。 -
dbms_job和dbms_scheduler是 Oracle 数据库中的两个不同的调度包(dbms_scheduler是更新且增强了很多的版本)。您不太可能同时使用这两个软件包来运行作业——使用其中一个会更有意义。你确定你真的同时使用两者吗?如果有,具体是如何实现的? -
我编辑了我的原始问题并发布了它是如何实现的。我只使用
DBMS_SCHEDULER。
标签: oracle oracle10g scheduling scheduler