[翻译自mos文章]当job_queue_processes=0 时,cjq 进程依然启动

当job_queue_processes=0 时,cjq 进程依然启动
参考原文
CJQ Process Starts Even When job_queue_processes=0 (Doc ID 413399.1)

适用于
oracle server 企业版 10.2.0.1 and later
症状:
当job_queue_processes=0 时, cjq 进程被启动。
文档(http://docs.oracle.com/cd/B19306_01/server.102/b14220/process.htm#i21263)上说:
如果初始化参数job_queue_processes=0,协调器进程(coordinator process)不会被启动。
原因:
这是期望的行为,只要有定义并且活动(active)的scheduler jobs.
从这个文档(http://st-doc.us.oracle.com/10/102/server.102/b14231/schedadmin.htm#sthref3776)中有如下的记载
--->额外注意:上面的这个链接打不开
如果初始化参数被设置为0 ,或者根本就没有设置,那么DBMS_JOB jobs 是不会运行的。
但是,自动启动和停止特性将会被所有的DBMS_SCHEDULER jobs and windows 使用。
如果有DBMS_SCHEDULER job 被执行,the coordinator进程将会被启动,进而 job将会被执行。
--->注意:DBMS_JOB jobs  和  DBMS_SCHEDULER job 是不同的job类型。
解决方案:
若是绝对需要,job可以被disabled掉:
BEGIN
  FOR job_rec IN (SELECT job_name FROM dba_scheduler_jobs) LOOP
    DBMS_SCHEDULER.DISABLE(job_rec.job_name);
  END LOOP;
END;
/
然而,这不是推荐的方法,除非为了测试 当 job_queue_processes=0 的情况下 启动database 时,cjq进程的启动。
--->注意:cjq 是coordinator job queue进程的缩写。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
这段代码是一个关于间片轮法的实现,但是需要注意以下事项: 1. 代码中使用了 `State` 类型,但是没有给出其定义,需要确认其定义是否正确,否则代码会报错。 2. `ready_queue = processes.copy()` 将 `processes` 列表复制一遍,但是如果 `processes` 中的元素是对象,复制得到的只是对象的引用,需要确认是否符合需要。 3. `any(p.state != State.TERMINATED for p in ready_queue)` 用于判断是否还有进程未完成,需要确认代码中是否正确地修改了进程的状态。 4. `processes_in_queue = len(ready_queue)` 用于记录当前队列中的进程数,需要确认代码中是否正确地维护了进程队列。 5. `current_process = ready_queue.pop(0)` 用于从队列中取出下一个进程,需要确认代码中是否正确地维护了队列的顺序。 6. `current_process.run(time_slice)` 用于模拟进程运行,需要确认 `run()` 方法的实现是否正确。 7. `current_process.end_time = current_time` 用于记录进程结束间,需要确认代码中是否正确地记录了间信息。 8. `ready_queue.append(current_process)` 用于将进程重新加入队列,需要确认代码中是否正确地维护了队列的顺序。 9. `return [p.end_time - p.start_time for p in processes],[(p.end_time - p.start_time) / p.cpu_time for p in processes],time_slice` 返回了进程的运行间和 CPU 利用率,需要确认代码中的计算是否正确。 以上是需要注意的事项,希望对你有所帮助。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值