关于job broken的问题

pirateRocy 2007-07-11 10:06:14
我通过pl/sql developer,
或者,编程 sys.dbms_job.broken(job => 1, broken => true)
来设置job为broken,

当时的确是成功的,这个job的确被broken了。

但是,过了几分钟后,这个job又自动变为了broken = false

请大家帮我分析分析,是什么原因?
...全文
998 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
pirateRocy 2007-07-11
  • 打赏
  • 举报
回复
查了半天,查不出原因。不查了,
直接用dbms_job.remove 得了。
WangZWang 2007-07-11
  • 打赏
  • 举报
回复
你好好查一下,应该是有外部因素的影响,或者把Job拿到Oracle Server上去建立看一下情况。
pirateRocy 2007-07-11
  • 打赏
  • 举报
回复
to WangZWang(先来)
-------------------------
奇怪的是,没有手动或者其他事件调用执行了该作业,
但是几分钟后,该作业的broken会自动变为false,标记为作业有效。
WangZWang 2007-07-11
  • 打赏
  • 举报
回复
如果作业标记为broken,那么Oracle不能执行该作。
但是,如果通过手动或者其他事件调用执行了作业,
那么broken会自动变为false,标记为作业有效。
pirateRocy 2007-07-11
  • 打赏
  • 举报
回复
当然已经commit;
只不过是非关键,这里没有写而已。
hongqi162 2007-07-11
  • 打赏
  • 举报
回复
//这里有个范例你参考一下吧

Create Or Replace Procedure Auto_Cljs_Job (v_timestr In Varchar2,v_jobno Out Varchar2,v_msg Out Varchar2) Is

/******************************************************************************
PURPOSE: 自动潮流计算Job的建立与更改

REVISIONS:
Ver Date Author Description
--------- ---------- --------------- ------------------------------------
1.0 2003-10-17 Fred Zhang 1. Created this procedure.
******************************************************************************/
jobno Integer;
jobid Integer;
Begin
Select job Into jobid From all_jobs Where what='AUTO_CLJS;';
dbms_job.Change(jobid,'AUTO_CLJS;',To_Date(To_Char(Sysdate,'yyyy-mm-dd')||' '||V_timestr,'yyyy-mm-dd hh24:mi:ss'),'trunc(sysdate,''mi'')+1');
Commit;
v_jobno:=jobid;
v_msg:='恭喜你!自动计算设定已经成功更改!';
Exception When No_Data_Found Then
dbms_job.submit(jobid,'AUTO_CLJS;',To_Date(To_Char(Sysdate,'yyyy-mm-dd')||' '||V_timestr,'yyyy-mm-dd hh24:mi:ss'),'trunc(sysdate,''mi'')+1');
Commit;
v_jobno:=jobid;
v_msg:='恭喜你!自动计算已经成功设定!';

End Auto_Cljs_Job;





CREATE OR REPLACE PROCEDURE Auto_Cljs_Job_Start_Stop (result OUT VARCHAR2) IS
tmpVar NUMBER;
/******************************************************************************
PURPOSE: 自动潮流计算Job的启动与停止

REVISIONS:
Ver Date Author Description
--------- ---------- --------------- ------------------------------------
1.0 2003-10-18 Fred Zhang 1. Created this procedure.
******************************************************************************/
jobid INTEGER;
job_status VARCHAR2(1);
BEGIN
SELECT job,broken INTO jobid,job_status FROM all_jobs WHERE what='AUTO_CLJS;';
IF job_status='N' THEN
dbms_job.broken(jobid,TRUE);
COMMIT;
result:='恭喜你!自动计算设定已经停止!';
ELSE
dbms_job.broken(jobid,FALSE);
COMMIT;
result:='恭喜你!自动计算设定已经开始!';
END IF;
EXCEPTION
WHEN NO_DATA_FOUND THEN
result:='对不起,你还没有设定此Job!';
WHEN OTHERS THEN
NULL;
END Auto_Cljs_Job_Start_Stop;
/
hongqi162 2007-07-11
  • 打赏
  • 举报
回复
没有commit?

奇怪

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧