[ORACLE EBS]7. Internal Concurrent Manager

今天談談Internal Concurrent Manager
就象前篇講的Internal Concurrent Manager是管理Concurrent Manager的Concurrent Manager,有點饒。
正因爲如此,即使Internal Concurrent Manager意外掛了,其他Concurrent的processes還是可以正常跑的,
除非是其它Concurrent Manager需要做操作。
而且,如果某個Concurrent Manager 起不來或意外中斷,Internal Concurrent Manager都會監控到,嘗試把它起來。
所以,可能有時侯log裏有一堆ERROR,起來就掛 。

查詢SQL:

SELECT user_concurrent_queue_name manager, node_name node,
       running_processes actual, max_processes target, cache_size buf,
       diagnostic_level, enabled_flag
  
FROM fnd_concurrent_queues_vl
 
WHERE user_concurrent_queue_name = 'Internal Manager'
 
SELECT DISTINCT concurrent_process_id cpid, pid opid, os_process_id osid,
                q.user_concurrent_queue_name manager, p.node_name node,
                TO_CHAR (p.process_start_date,
                         
'YY-MM-DD HH24:MI:SS'
                        ) started_at,
                p.logfile_name, p.process_status_code
           
FROM fnd_concurrent_processes p,
                fnd_concurrent_queues_vl q,
                fnd_v$process
          
WHERE q.application_id = queue_application_id
            
AND (q.concurrent_queue_id = p.concurrent_queue_id)
            
AND (spid = os_process_id)
       
AND user_concurrent_queue_name = 'Internal Manager'
ORDER BY        os_process_id,
                concurrent_process_id,
                q.user_concurrent_queue_name

               
LOG Path:              
/TEST/testcomn/admin/log/TEST/TEST_0126.mgr (11.5.8)
/TEST/testcomn/admin/log/TEST_servername/TEST_0126.mgr (11.5.10)
/TEST/inst/apps/TEST_servername/logs/appl/conc/log/TEST_0225.mgr (R12)
在11.5.8時,沒有後綴的,後來的這個後綴應該日期。

PROCESS:
FNDLIBR FND CPMGR FNDCPMBR sysmgr="" diag=N logfile=/...

Parameter:
ICM有三個參數,
PMON cycle ,default = 20, 這個參數需要和SLEEP TIME結合起來,PMON cycle*Sleep Time,得到秒數, 所以DEFAULT是20分鐘。但是有怪事,在下面。
用來check是否有concurrent managers掛了的一個時間間隔週期。
Queue Size ,default = 1,  好象沒人改這個,這個不太理解。
( 可以自己翻譯一下The queue size is the number of PMON cycles that the ICM waits between checking for disabled or new concurrent managers.)
Sleep Time ,default = 60,決定兩次查看的sleep間隔時間,單位是秒. 查看是否有等待requests,有的話,就處理,沒有就又進入SLEEP.
所以requests很多的話,可以改小點。

怪事就是當都是default值是, PMON 週期確是2分鐘。
即:
 sleep=60 (default)
 pmon=20 (default)
 quesiz=1  (default)

如果改成pmon=10,就是5分鐘了,
 sleep=60 (default)
 pmon=10
 quesiz=1  (default)

從而得知,default sleep其實是30,pmon應該是4 , 30*4 = 120 秒 = 2 分種.
 sleep=60
 pmon=20
 quesiz=1  (default)
不知道爲何這樣,難道ORACLE暈頭了。
那如何知道的呢?
查看TEST.mgr log 文件,可以看到間隔:
---------------------------
  Process monitor session started : 27-FEB-2008 15:03:04
    Process monitor session ended : 27-FEB-2008 15:03:05

  Process monitor session started : 27-FEB-2008 15:05:05
    Process monitor session ended : 27-FEB-2008 15:05:05

  Process monitor session started : 27-FEB-2008 15:07:05
    Process monitor session ended : 27-FEB-2008 15:07:06

  Process monitor session started : 27-FEB-2008 15:09:06
    Process monitor session ended : 27-FEB-2008 15:09:06
有興趣可以自己試試。

最後,如何修改參數呢?
cd $FND_TOP/bin
vi startmgr
修改最後一行,
eval $@ batchmgr

eval $@ batchmgr pmon=10 sleep=60
然後
restart concurrent manager.

有錯誤,也請指出,謝謝!
 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章