就象前篇講的Internal Concurrent Manager是管理Concurrent Manager的Concurrent Manager,有點饒。
正因爲如此,即使Internal Concurrent Manager意外掛了,其他Concurrent的processes還是可以正常跑的,
除非是其它Concurrent Manager需要做操作。
而且,如果某個Concurrent Manager 起不來或意外中斷,Internal Concurrent Manager都會監控到,嘗試把它起來。
所以,可能有時侯log裏有一堆ERROR,起來就掛 。
查詢SQL:
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.
有錯誤,也請指出,謝謝!