Oracle EBS 11i找出ICM(Internal Manager掛掉)的log與問題

 今天遇到Concurrent Program無法運行,經檢查後,發現是Internal Manager掛掉了。


Internal Manager是管理所有Concurrent Manager的管理程序,不會影響到EBS的Forms,所以它掛掉並不會影響EBS的操作,有時候會沒有發現掛掉了。


進入System Adminisrator,查看Concurent -> Manager -> Administer,檢查Internal Manager的Autual是否>=1 ,如果為0則表示沒有正常運行。


我的作法是先登入到EBS的作業系統,例如我的是Solaris,先執行下列的指令後再手動把這些process刪掉。

$ ps -ef |grep FNDLIBR

$ kill -9 <Process ID>


或是執行adcmctl.sh把相關的service停下來並手動把無法停用的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:


1、以apps User登入到系統,並執行下列指令如下,例如找到log file:TEST_0826.mgr

$ cd $APPLCSF/$APPLLOG

$ ls -lrt *$TWO_TASK*.mgr

-rw-r--r--   1 testmgr  dba      5900612 Sep 12 10:40 TEST_0826.mgr


2、執行下列的SQL,以找出log file

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';

3、在EBS內登入到Sysadmin Administor Responsibility

Go to ->Concurrent -> Manager -> Administer -Processes -> Click button Internal Manager Log.如下圖




找到log後,查到的問題是ORA-04030: out of process memory,是一支concurrent request造成的。