有时候我们在通过 adstpall.sh 关闭应用后,然后再使用adstrtal.sh开启。发现并发
管理器不能正常运行, 所以一般开启关闭应用的时候需要做一些检查工作,避免并发管
理器异常的问题,出现并发管理器问题也可以按照这个步骤来操作。
1. 关闭APP: adstpall.sh apps/,这时关闭了应用所有服务及并发管理器,OPMN等。
2. 进行计划的一些操作(比如调整参数,打补丁等) .
3. 准备开启(adstrtal.sh)前做一些检查
3.1 查看用户进程及并发进程是否全部正常关闭
查看数量及进程
ps -fu applgerput | grep FND | wc -l
ps -fu applgerput 查看具体进程
3.3 如果还有并发进程,运行停止并发脚本
cd $ADMIN_SCRIPTS_HOME
adcmctl.sh stop
3.4 观察并发进程状态,并发进程后带有[defunct]字样的都是已僵死进程,不用理会。
如果其他还在运行的并发进程较少,那么可以使用kill -9 加ID号杀掉。如果过多,
使用 kill -9 -1 清理本用户的process .
再次查看并发进程是否还存在:
ps -fu applgerput | grep FND | wc -l
apps登入数据库跑一次脚本 cmclean.sql
同时执行 select SID, SERIAL# from v$session where program like '%ICM%',如果有这个session, 执行 alter system kill session 'SID,SERIAL#'; 杀掉进程 。否则cmclean.sql会一直等待。
如果cmclean.sql执行还存在等待, 那么还需要到数据库查询是否存在row cache lock事件。 在数据库查询是否有“row cache lock”等待事件,如果有,需要清理。
select event,count(*) from gv$session_wait group by event order by count(*) desc;
SELECT s.sid,s.serial#,p.spid, t.sql_text FROM v$session s, v$sql t, v$process p
WHERE s.event LIKE 'row cache lock' AND t.sql_id = s.sql_id AND s.PADDR = p.ADDR ;
Alter system kill session 'SID,SERIAL#' ;
本文转自ITPUB博客tolywang的博客,原文链接:EBS Concurrent Manager(并发管理器)异常处理[final],如需转载请自行联系原博主。