熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Oracle >> 正文

如何徹底停止job

2013-11-13 16:07:40  來源: Oracle 

  現象
  在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:
From:http://tw.wingwit.com/Article/program/Oracle/201311/17858.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.