代码编织梦想

并发管理器

ORACLE EBS 产品在最初就引入了并发管理器的概念,在用户在 FORM 界面进行了数据的基础录入之后,提交并发请求 在后台异步进行数据的加工以及报表的展现。

本章节基础环境

R12.1.3 DB 11.2.0.3 PSU8

本章节作者

虚名

管理并发管理器

在此界面可以看到并发管理器的运行状态。名称:并发管理器名称

节点:当前并发管理器队列处于哪台服务器节点上进程:分为实际与目标两个

目标 为系统设置的并发管理器队列的数量

实际 为当前有效的并发管理器进程数量,一般情况 实际等于目标为好请求:为执行在此管理器队列下的并发程序状态,运行中 与 待定 两列

运行中 已经在执行的并发程序 Running 状态

待定 已经进入并发队列等待有空闲并发管理器进程时再执行 Pending 状态处理:按钮打开管理器队列的状态 。

请求:按钮查看正在执行的并发程序状态。

此六个按钮用来控制并发管理器队列的状态需要注意的是 内部管理器如果被停掉的话,在应用页面是无法重新启动的,只有到服务器上用命令进行启动。

select fcqt.user_concurrent_queue_name, fcq.target_node, fcq.running_processes, fcq.target_processes

from applsys.fnd_concurrent_queues

 

fcq,

applsys.fnd_concurrent_queues_tl fcqt

where fcq.application_id = fcqt.application_id

and fcq.concurrent_queue_id = fcqt.concurrent_queue_id and fcqt.language = 'ZHS'

管理并发管理器=》处理

我们将光标定位到 ACC 标准管理器 点击处理

在管理并发管理器界面 我们看到 ACC 标准管理器 的实际与目标都是 5。

在并发处理里面对应了 5 条有效的,其中并发 为 管理器进程号码 ORACLE 列为 数据库服务器中进程的 PID 号码 系统 为应用服务器进程号码。

服务器层面进程查询方法为 ps -ef |grep 29983

数据库进程号查询方法为 select * from v$process where pid=216这里面的SPID为OS层面 数据库进程号 可以对应到OS层面。

SERIAL# 对应到v$session 可以追查该Session 都做了哪些东西,这些都是细节分析了,在性能优化方面很有用的。

select * from applsys.fnd_concurrent_processes fcp where fcp.concurrent_process_id=31934

管理并发管理器=》请求

我们在请求的运行中发现有一个请求在执行了 点击请求去看看。

原来是我刚刚做为了抓图提交的《统计数据收集模式》 请求,呵呵被抓现行了。这里主要是查看运行中和待定中的请求

定义并发管理器

定义界面用来管理和创建并发管理器队列。

这里比较需要关注的是节点,我抓图的环境两个都是空的,只有口头去讲解了。

在多应用节点的情况下,只要 CONTEXT_FILE 里面的 s_isConc 是 YES 那么这个节点就可以启用并发管理器,如果有多个可以启用并发管理器的节点,那么这里就有玩的了。首先是主要次要的问题,分别定义主要和次要节点后,默认该队列跑在主要节点上面,当主要节点失效时,切换到次要节点。如果是空呢?那么在哪个节点上用 adcmctl.sh 启动并发管理器 ,队列就启动在哪个节点上

定义并发管理器=》特殊规则

这段相对容易理解,第一列 允许/排除 第二列 处理那些类型 一般都是程序 第三四列组合出来模块和并发程序名称。

如果类型是用户的话,那么就是允许某个用户提交的请求在此队列执行或者禁止。

定义并发管理器=》工作班次

这里目前只使用了一个默认的工作班次,每天 24 小时都是使用同样的班次规则。

流程是本队列的并行进程数量,这里是 30 理解成这条高速公路有 30 条车道就行了。休眠是并发队列抓取并发请求间隔时间。

工作班次的设置比较灵活也比较艺术,流程设置多了消耗更多的数据库 process 数量,设置少了呢又无法满足业务高峰期高并发请求量的处理。休眠的数值给的太大了,并发管理器队列会长期处于休眠状态,用户请求在后面都塞车了,这里还在休眠。给的很小例如 5 系统就每隔 5 秒去刷新一次 fnd_concurrent_request 表去检查是否有处于 Pending 状态的请求。

工作班次的设置还和机器的资源有关,本来数据库服务器就已经很忙了,用户提交的请求又大批量的塞车,盲目的加大流程数量只会让并发管理器成为压死数据库的那根稻草。

调整原则,平衡资源分配,在保证用户操作界面有良好用户体验情况下适当增加并发管理器吞吐量,避免服务器处于满载情况。

并发管理器 工作班次

用来细化并发管理器的班次管理,默认只有一个全天的班次。我定义了两个班次,分别是凌晨到 8 点 8 点到半夜的。

拿来控制并发管理器看看,白天忙一点放心时间快一些,晚上闲一点,慢慢来,节省资源。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/2301_76957510/article/details/130822020