电脑故障

位置:IT落伍者 >> 电脑故障 >> 浏览文章

如何彻底停止job


发布日期:2020/3/24
 

现象

在oracle的工作队列里面执行存储过程执行出错导致队列死掉了我使用remove把作业从工作队列里面去除掉重新修改过程可是编译的时候死掉了根据以往的经验是因为过程正在执行的时候不能编译的原因重新启动数据库之后过程编译就正常了

问题请问如何让队列里正在执行的任务彻底停止?否则要重新启动数据库太麻烦了

FW:你可以尝试

: select sid from v$lock where TYPE = JQ;

: select sidserial# from v$session where sid = :sid;

: select ADDR PID SPID SERIAL# from v$process where pid = :sid;

oracle: kill the session

os : kill the process

hope this can help you

估计前提是 执行 job 的进程有多个

job_queue_processes integer

FW:另外一种办法

select vsidvserial#vPROCESS from V$session vDBA_JOBS_RUNNING RDBA_JOBS J

where JWHAT like %你JOB所调用的procdure% and

rjob=jjob and

rsid=vsid

oracle: kill the session

os : kill the process

麻烦的是就算kill session 后其占用的资源也不是马上释放掉

FW:

上一篇:wait等待事件及其处理方法

下一篇:在Win2k下配置使用OEM