2012年写过1篇关于
Oracle E-Business Suite并发管理器的文章,回头看之前总结的内容还是比较单薄,很多点没说到,最近在看这块的内容,索性再写1篇略微完全的文章来。
Oracle E-Business Suite并发处理机制(Current Processing)的好处 区分于普通功能的处理机制,并发处理机制实际上是1个异步处理机制,它把程序放到后台来运行,前台的操作还给用户,允许用户可以继续做其他业务。
技术上将,异步处理的好处是下降系统特定时间点的负载,提升系统资源的整体使用率。感受上讲,异步的机制可以有效提升整体的使用感受,减少用户无效的等待时间。
甚么样的程序可以用并发机制来处理
报表类
报表是1种非常个性化的东西,1般也是每家公司客户化最多的部份,如果为报表需求都开发不同的列表界面来查询、展现,那末工作量将是巨大的。所以
Oracle把报表嵌入到并发处理中,通过1些灵活的配置或少许的开发(Reports/BI Publisher Reports)既可以实现用户各类报表的需求.
流程类
多用于批量事务处理,或是长时间运行的业务,如库存管理器批量处理接口表中的临时事务。
并发处理机制(Current Processing)的两类组件
并发处理机制(Current Processing)包括两类组件:
- 并发管理器(Concurrent Managers)
- 并发要求(Concurrent Requests)
像公司中“经理”1样,Manager给Worker安排任务,Worker负责具体的履行。
Oracle EBS中的Concurrent Managers就是负责安排工作,Concurrent Requests负责具体的履行。
并发管理器(Concurrent Managers)的分类
1家企业1般都有许多的经理,有着高低之分,总裁、总监、经理、主管....
Oracle EBS这家企业中,一样也有着许多不同层面上的Concurrent Manager,有核心的Concurrent Managers管理团队(Internal Concurrent Manager、Standard Manager、Conflict Resolution Mananger),也有普通Concurrent Managers。核心的Concurrent Managers团队管理下边普通Concurrent Managers。
1.核心的3个并发管理器:
- Internal Concurrent Manager(内部管理器) ― The master manager is called the Internal Concurrent Manager (ICM) because it controls the behavior of all of the other managers, and because the ICM is the boss, it must be running before any other managers can be activated. The main functions of the ICM are to start up and shutdown the individual concurrent managers, and reset the other managers after one them has a failure.
- Standard Manager(标准管理器) ― Another important master Concurrent Manager is called the Standard Manager (SM). The SM functions to run any reports and batch jobs that have not been defined to run in any specific product manager. Examples of specific concurrent managers include the Inventory Manager, CRP Inquiry Manager, and the Receivables Tax Manager.It is not recommended to add specialization rules to the standard manager as it can cause problems.
- Conflict Resolution Manager(冲突解决管理器) ― The Conflict Resolution Manager (CRM) functions to check concurrent program definitions for incompatibility rules. However, the ICM can be configured to take over the CRM's job to resolve incompatibilities.
小结:
- Internal Concurrent Manager是管理器中的BOSS,总负责人,控制着其他并发管理器的运作。
- Standard Mananger是标准管理器,没有纳入其他特定管理器(Specific Concurrent Managers)的要求,默许就会由标准管理器管理。
- Conflict Resolution Manager主要用于处理日程冲突。
2.特定用处的并发管理器(Specific Concurrent Managers ,SCM)
除上边说的3个核心并发管理器,还有众多的特定用处的并发管理器,如库存管理员(Inventory Manager),接收事务处理管理器(Receiving Transaction Manager),MRP Manager,和用户自定义的并发管理器。
并发管理器是如何管理并发要求的
并发要求从提交到运行大概的进程是这样的:用户首先提交并发程序运行要求,并发要求会首先放入要求队列中,再由Internal Concurrent Manager根据特定的规则找到对应的Concurrent Manager(是Standard Manager,还是特定的并发管理器)来运行这些要求。下图为1个典型的并发管理器管理并发要求的流程图:
并发管理器的定义
并发管理器(Concurrent Manager) = 参数(缓存大小、节点设置...) + 特殊规则(Specialization Rules) + 工作班次(Work Shifts)
并发管理器的定义路径:系统管理员职责->并发->经理->定义,定义进程也能够参考官方文档:Link。以Inventory Manager为例,下图为库存管理器的定义界面。
Cache Size:这个数字表示并发管理器每次读取多少要求来运行。
Enter the number of requests your manager remembers each time it reads which requests to run. For example, if a manager's work shift has 1 target process and a cache value of 3, it will read three requests, and try to run those three requests before reading any new requests.
Tip: Enter a value of 1 when defining a manager that runs long, time-consuming jobs, and a value of 3 or 4 for managers that run small, quick jobs.
Node:这个是并发管理器负载均衡的设置,即Parallel Concurrent Processing(PCP)。如果
服务器是多节点的,那末可以在这里设定并发管理器以哪一个节点为主节点运行,哪一个节点为辅节点。
If you are operating in a parallel concurrent processing environment and you want your manager to operate on a specific node, select the name of the node.
The primary node, if available, is the node your concurrent manager operates on. If the primary node or the database instance on it goes down, your concurrent manager migrates to its secondary node. Your concurrent manager migrates back to its primary node when that node becomes available.
特殊规则(Specialization Rules)中设定并发管理要包括/排除的并发要求。
工作班次(Work Shifts)中赋予Inventory Manager并发管理器的运行班次(Work Shift),运行班次决定了并发管理甚么日子、甚么时间来运行。
流程(Processes):这个字段
Oracle EBS中文翻译的有问题,官方翻译成“流程”,我觉翻译成“进程”更好,这个参数表示,对每一个班次, Concurrent Manager能够调用最大操作系统层的进程数量来并发处理要求。
休眠秒(Sleep Seconds):表示班次间的间隔时间。
The sleep time for your manager during this work shift. Sleep time is the number of seconds your manager waits between checking the list of pending concurrent requests (concurrent requests waiting to be started).Tip: Set the sleep time to be very brief during periods when the number of requests submitted is expected to be high.
1、调剂并发参数
-Sleep Seconds
-Cache Size
-Purging
-Gather Schema Statistics
2、负载调剂
-Specialized Concurrent managers
3、Output Post Processor
------分隔线----------------------------
------分隔线----------------------------