杀掉当前运行的concurrent program

来源:互联网 发布:淘宝怎么申请解冻 编辑:程序博客网 时间:2024/05/16 05:51
Oracle EBS的concurrent program通常可以通过"Submit Request Submission"表单来取消的,但有时会出现并未释放数据库session和process的情况。因此,需要手动kill并发进程来释放CPU memory。
1. Take the "request_id" of a Concurrent Program which is currently running or which is to be canceled from the database side.
2. Connect to SQLPLUS as APPS User :
SQL> SELECT ses.sid, ses.serial# ,pro.spid FROM v$session ses, v$process pro 
WHERE ses.paddr = pro.addr 
AND pro.spid IN (SELECT oracle_process_id FROM fnd_concurrent_requests WHERE request_id = &request_id);
Note : oracle_process_id is Unix PID and request_id is running concurrent program's request ID. If "sid" and "serial#" value is returning then it means that process is running at database level. When canceling a request from the "Submit Request Submission" form, then it should release associated database process and session but it doesn't mean that it will kill database process immediately. Database process will take their own time to validate concurrent program execution process that has been canceled and then it will kill database process. So ideally when canceling a request from "Submit Request Submission", wait for some time and then check associated database process.
3. Connect to SQLPLUS as the SYSTEM user:
SQL> ALTER SYSTEM KILL SESSION 'sid,serial#';
OR on Linux system user:
$ kill -9 <spid>