程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> Oracle數據庫 >> Oracle教程 >> 關於oracle的任務進程提交後不執行原因

關於oracle的任務進程提交後不執行原因

編輯:Oracle教程

關於oracle的任務進程提交後不執行原因


/* 以下命令在 SQL*Plus 中運行 */
--任務不執行時檢查步驟
--1. 檢查實例會話是否受限制
select instance_name,logins from v$instance;
--   若提示 logins=RESTRICTED 則執行
alter system disable restricted session;
--2. 確保 job_queue_processes > 0
show parameter job_queue_processes;
--3. 檢查任務是否依然在運行
select * from dba_jobs_running;

我遇到的問題是因為之前提交的任務仍然在運行,因此重新提交相同任務時不執行。oracle設定的同時執行任務進程數有限,所以在上一次提交的任務未執行完畢時,再次提交的任務只能在隊列中等待,不會直接執行。

我寫了個視圖,可以方便的查詢當前執行的任務

--查詢正在運行的任務
/* 需要在sys登錄下授予用戶權限
grant select on dba_jobs_running to a2admin;
grant select on v_$session to a2admin;
*/
create or replace view job_run_view
as
select a.job,a.sid,b.SERIAL#,a.failures,a.last_date,a.this_date,a.instance from dba_jobs_running a,v$session b where a.sid=b.sid order by 1;
若需要關閉任務進程,執行以下代碼,相應替換掉sid和serial#

--關閉進程sid,serial#,替換為相應值
--alter system kill session 'sid,serial';

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved