這次的案但是遇到Concurrent Program一直無法運行,經檢查後,發現是Internal Manager掛掉了。
Internal Manager是管理所有Concurrent Manager的管理程序,不會影響到EBS的Forms,所以它掛掉並不會影響EBS Forms的操作,所以系統並沒有完全當掉。
進入System Adminisrator,查看Concurent -> Manager -> Administer,檢查Internal Manager的Autual是否>=1 ,如果為0則表示沒有正常運行。
我的作法是先登入到EBS的作業系統,例如我的是Solaris,先執行下列的指令,查出所有Concurrent Request的process(FNDLIBR)後再手動把這些process刪掉。
$ ps -ef |grep FNDLIBR
$ kill -9 <Process ID>
或是直接執行adcmctl.sh把相關的service停下來,並手動把無法停用的process刪掉,這個做法可以減少kill process的數量
$ adcmctl.sh stop apps/XXXXX
$ ps -ef |grep FNDLIBR
$ kill -9 <Process ID>
接著重啟Concurrent Manager:
$ adcmctl.sh start apps/XXXXX
經過上述的步驟,我的ICM終於恢復了,也不用重開整個EBS,接下來要查詢log,以便找出問題。
有三個方式可以找到ICM的log:
$ cd $APPLCSF/$APPLLOG
$ ls -lrt *$TWO_TASK*.mgr
-rw-r--r-- 1 testmgr dba 5900612 Sep 12 10:40 TEST_0826.mgr
SELECT fp.logfile_name as "ICM_LOG_NAME"
FROM fnd_concurrent_processes fp, fnd_concurrent_queues fq
WHERE fp.concurrent_queue_id = fq.concurrent_queue_id
AND fp.queue_application_id = fq.application_id
AND fq.manager_type = '0'
AND fp.process_status_code = 'S';
Go to ->Concurrent -> Manager -> Administer -Processes -> Click button Internal Manager Log.如下圖
找到log後,查到的問題是ORA-04030: out of process memory,是一支concurrent request造成的。
本篇參考我的Blog:https://blog.twtnn.com/