【问题标题】:how to know if batch job is running如何知道批处理作业是否正在运行
【发布时间】:2012-02-19 22:32:51
【问题描述】:

我有一个每 15 分钟运行一次的 oracle 批处理作业。由于某些原因,批处理作业中执行的业务逻辑可能需要超过 15 分钟。有什么方法可以检查批处理作业是否仍在进行中?

批处理作业运行(过程 1)需要 20 分钟 15 分钟后,相同的批处理作业运行(过程 2).. 我想检查具有此名称的批处理作业是否已经在运行。

有一个procedure 将大量数据从一条记录复制到另一条记录。此过程每 15 分钟执行一次,使用dbms_schedulerDBMS_SCHEDULER.CREATE_SCHEDULER,使用DBMS_SCHEDULER.CREATE_PROGRAM 创建程序并在DBMS_SCHEDULER.CREATE_JOB 中使用这两个

【问题讨论】:

  • 提供有关此“批处理作业”功能的更多详细信息会很有帮助。这是通过DBMS_JOBDBMS_SCHEDULER 在数据库中安排的吗? V$SESSION 表中是否有将会话标识为属于批处理作业的内容?是否有一些可以查询的表更新?你能修改批处理作业来做这些事情吗?
  • 有一个procedure 将大量数据从一条记录复制到另一条记录。此过程由使用dbms_scheduler 安排的dbms_job 每15 分钟执行一次。
  • dbms_jobdbms_scheduler 是 Oracle 数据库中的两个不同的调度包(dbms_scheduler 是更新且增强了很多的版本)。您不太可能同时使用这两个软件包来运行作业——使用其中一个会更有意义。你确定你真的同时使用两者吗?如果有,具体是如何实现的?
  • 我编辑了我的原始问题并发布了它是如何实现的。我只使用DBMS_SCHEDULER

标签: oracle oracle10g scheduling scheduler


【解决方案1】:
select * from all_scheduler_running_jobs;

【讨论】:

    【解决方案2】:

    尝试select * from [dba_scheduler_jobs][1]; 并查看您的工作的状态列。

    【讨论】:

    • 问题:DBSM_SCHEDULER 是否确保同一作业的第二个实例不运行?
    猜你喜欢
    • 1970-01-01
    • 2014-06-20
    • 2014-09-28
    • 2023-01-25
    • 2020-10-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-19
    相关资源
    最近更新 更多