How To Kill runaway processes After Terminating Concurrent Request

本文介绍如何在Oracle系统中手动终止并清理长时间运行的并发请求进程。通过特定的SQL查询找到进程ID,并使用系统命令终止会话,从而释放系统资源。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Every concurrent Request uses some resources for running. If we find that the concurrent request is taking long time and decided to terminate the concurrent request , the resources may not be released soon. These processes are called runaway processes. So we need to manually kill the processes at database and os level to have the resources released to the system. Terminate the concurrent request from the front end. Then

SQL>select request_id,oracle_process_id,os_process_id from fnd_concurrent_requests 
where request_id=’&Req_Id’; 
SQL>select p.spid , s.sid , s.serial# from v$session s , v$process p 
where s.paddr = p.addr and s.process = &os_process_id ; 
SQL> alter system kill session ‘session-id,session-serial’ $ kill -9 <server pid>

Complete details about the request can be found using the following query :

SELECT   qt.user_concurrent_queue_name ,
         fcr.Request_Id Request_id     ,
         fu.User_name                  ,
         p.spid                        ,
         s.sid
                  ||’,
         ‘
                  || s.serial# SIDSERIAL ,
         SUBSTR( Fcpv.Concurrent_Program_Name
                  ||’ – ‘
                  || Fcpv.User_Concurrent_Program_Name, 1,46) Program           ,
         TO_CHAR( fcr.actual_start_date, ‘mm/dd hh24:mi’ )    actual_start_date ,
         phase_code                                                             ,
         status_code                                                            ,
         TO_CHAR( TRUNC(SYSDATE) + ( SYSDATE – fcr.actual_start_date ) , ‘hh24:mi:ss’ ) duration
FROM     apps.Fnd_Concurrent_Queues Fcq     ,
         apps.fnd_concurrent_queues_tl qt   ,
         apps.Fnd_Concurrent_Requests Fcr   ,
         apps.Fnd_Concurrent_Programs Fcp   ,
         apps.Fnd_User Fu                   ,
         apps.Fnd_Concurrent_Processes Fpro ,
         v$session s                        ,
         v$process p                        ,
         apps.Fnd_Concurrent_Programs_Vl Fcpv
WHERE    phase_code              = ‘C’
AND      status_Code             = ‘X’
AND      s.paddr                 = p.addr
AND      fcr.requested_by        = user_id
AND      fcq.application_id      = qt.application_id
AND      fcq.concurrent_queue_id = qt.concurrent_queue_id
AND      userenv(’lang’)         = qt.language
AND      fcr.os_process_id       = s.process
AND      fcr.Controlling_Manager = Concurrent_Process_Id
AND
         (
                  fcq.concurrent_queue_id = fpro.concurrent_queue_id
         AND      fcq.application_id      = fpro.queue_application_id
         )
AND
         (
                  fcr.concurrent_program_id  = fcp.concurrent_program_id
         AND      fcr.program_application_id = fcp.application_id
         )
AND
         (
                  fcr.concurrent_program_id  = fcpv.concurrent_program_id
         AND      fcr.program_application_id = fcpv.application_id
         )
ORDER BY fcr.actual_start_date;

source: http://www.appsdba.info/docs/oracle_apps/performance/How_To_Kill_Concurrent_Request.pdf


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值