今天谈谈
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.
有错误,也请指出,谢谢!
就象前篇讲的Internal Concurrent Manager是管理Concurrent Manager的Concurrent Manager,有点饶。
正因为如此,即使Internal Concurrent Manager意外挂了,其他Concurrent的processes还是可以正常跑的,
除非是其它Concurrent Manager需要做操作。
而且,如果某个Concurrent Manager 起不来或意外中断,Internal Concurrent Manager都会监控到,尝试把它起来。
所以,可能有时侯log里有一堆ERROR,起来就挂 。
查询SQL:






















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.
有错误,也请指出,谢谢!