2012-01-26 187 views
0

我有一个每15分钟运行一次的oracle批处理作业。由于某些原因,批处理作业中执行的业务逻辑可能需要15分钟以上的时间。是否有任何可能的方法可以检查批处理作业是否仍在处理中?如何知道批处理作业是否正在运行

批处理作业运行(过程1)需要20分钟 15分钟后,同一批次作业运行(过程2)。我要检查,如果该名字对应的批次是中jobn已经在运行或不。

有一个procedure它将大块数据从一个记录复制到另一个记录。这个过程是通过利用dbms_schedulerDBMS_SCHEDULER.CREATE_SCHEDULER,使用DBMS_SCHEDULER.CREATE_PROGRAM创建程序和使用这些2 DBMS_SCHEDULER.CREATE_JOB

+0

提供有关“批处理作业”功能的更多详细信息将会有所帮助。这是通过“DBMS_JOB”还是“DBMS_SCHEDULER”安排在数据库中? “V $ SESSION”表中是否存在将会话标识为批处理作业的内容?是否有更新的表可以查询?你可以修改批处理作业来完成这些任务吗? –

+0

有一个“过程”,它将大块数据从一个记录复制到另一个记录。此过程每15分钟由一个'dbms_job'执行,该'dbms_job'使用'dbms_scheduler'调度。 –

+0

'dbms_job'和'dbms_scheduler'是Oracle数据库中的两个不同的调度包('dbms_scheduler'是更新和更强化的版本)。你使用这两个软件包来运行一个工作是不太可能的 - 使用其中一个或另一个会更有意义。你确定你实际上在使用两者吗?如果是这样,那究竟是如何实施的? –

回答

0

尝试select * from [dba_scheduler_jobs][1];并查看作业的状态栏,每15分钟执行。

+0

问题:DBSM_SCHEDULER不会确保同一作业的第二个实例不运行吗? –

3
select * from all_scheduler_running_jobs; 
相关问题