如何彻底停止job

王朝other·作者佚名  2008-05-19
宽屏版  字体: |||超大  

现象:

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

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

FW:你可以尝试

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

2: select sid,serial# from v$session where sid = :sid;

3: 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 4

FW:另外一种办法

select v.sid,v.serial#,v.PROCESS from V$session v,DBA_JOBS_RUNNING R,DBA_JOBS J

where J.WHAT like '%你JOB所调用的procdure%' and

r.job=j.job and

r.sid=v.sid

oracle: kill the session

os : kill the process

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

FW:

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
© 2005- 王朝网络 版权所有