关于Oracle E-Business Suite并发处理机制(Current Processing)

2012年写过一篇关于Oracle E-Business Suite并发管理器的文章,回头看之前总结的内容还是比较单薄,很多点没说到,最近在看这块的内容,索性再写一篇稍微完整的文章来。

Oracle E-Business Suite并发处理机制(Current Processing)的好处

区别于普通功能的处理机制,并发处理机制其实是一个异步处理机制,它把程序放到后台来运行,前台的操作还给用户,允许用户可以继续做其他业务。

技术上将,异步处理的好处是降低系统特定时间点的负载,提升系统资源的整体使用率。感受上讲,异步的机制可以有效提升整体的使用感受,减少用户无效的等待时间。

什么样的程序可以用并发机制来处理

报表类

报表是一种非常个性化的东西,一般也是每家公司客户化最多的部分,如果为报表需求都开发不同的列表界面来查询、展示,那么工作量将是巨大的。所以Oracle把报表嵌入到并发处理中,通过一些灵活的配置或少量的开发(Reports/BI Publisher Reports)既可以实现用户各类报表的需求.

流程类

多用于批量事务处理,或是长时间运行的业务,如库存管理器批量处理接口表中的临时事务。

并发处理机制(Current Processing)的两类组件

并发处理机制(Current Processing)包括两类组件:

  • 并发管理器(Concurrent Managers)
  • 并发请求(Concurrent Requests)

像公司中“经理”一样,Manager给Worker安排任务,Worker负责具体的执行。Oracle EBS中的Concurrent Managers就是负责安排工作,Concurrent Requests负责具体的执行。

并发管理器(Concurrent Managers)的分类

一家企业一般都有许多的经理,有着高低之分,总裁、总监、经理、主管....Oracle EBS这家企业中,同样也有着许多不同层面上的Concurrent Manager,有核心的Concurrent Managers管理团队(Internal Concurrent Manager、Standard Manager、Conflict Resolution Mananger),也有普通Concurrent Managers。核心的Concurrent Managers团队管理下边普通Concurrent Managers。

1.核心的三个并发管理器

  • 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)

除了上边说的三个核心并发管理器,还有众多的特定用途的并发管理器,如库存管理员(Inventory Manager),接收事务处理管理器(Receiving Transaction Manager),MRP Manager,以及用户自定义的并发管理器。

并发管理器是如何管理并发请求的

并发请求从提交到运行大概的过程是这样的:用户首先提交并发程序运行请求,并发请求会首先放入请求队列中,再由Internal Concurrent Manager根据特定的规则找到对应的Concurrent Manager(是Standard Manager,还是特定的并发管理器)来运行这些请求。下图为一个典型的并发管理器管理并发请求的流程图:

并发管理器的定义

并发管理器(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.

如何判断并发管理器是否正常运行

系统管理员职责,Concurrent->Managers->Administer,如果Target和Actual相等,并且都大于0,则表示并发管理器为启动和运行状态。

  • The Target column lists the number of processes that should be running for each manager for this particular workshift.
  • The Actual column lists the number of processes that are actually running.

If the Actual column is zero, there are no processes running for this manager. 
If the Target column is zero, then either a workshift has not been assigned to this manager, or the current workshift does not specify any target processes. 
If the target column is not zero, then the manager processes have either failed to start up,or gone down. One should check the manager‘s logfile and the ICM logfile. One can also search for OS processes using the ‘ps‘ command.It is possible for the form to be inaccurate, i.e. it may show actual processes even though they are not really running. When in doubt, check for processes at the OS level.

操作系统下如何检查Concurrent Mananger的运行情况

FNDLIBR进程是否启动,这个表示Internal Concurrent Manager进程是否运行

FNDLIBR:Concurrent Manager

ps -ef | grep FNDLIBR

FNDLIBR process indicates that concurrent mnagers are up and requests are running on the system.Sometimes it happens that even after stopping the concurrent managers by adcmctl.sh stop apps/apps some of the requests might continue running. In such cases you can wait for say 5 minutes and then if it dos not stop then you can kill those FNDLIBR processes bykill -9 <processid>

其他Application Concurrent Manager

INVLIBR is the process for the following Managers
Manager to run Immediate Concurrent Programs defined in INVLIBR

[[email protected] ~]$ ps -ef | grep INVLIBR
oracle    7111  7004  0 Jul03 ?        00:00:07 INVLIBR                                                                                               
oracle   14016 13573  0 19:40 pts/5    00:00:00 grep INVLIBR
[[email protected] ~]$

MRCLIB is the process for the following Managers
MRP Manager

[[email protected] ~]$ ps -ef | grep MRCLIB
oracle    7113  7004  0 Jul03 ?        00:00:06 MRCLIB                                                                                                
oracle   14024 13573  0 19:40 pts/5    00:00:00 grep MRCLIB
[[email protected] ~]$

PALIBR is the process for the following Managers
PA Streamline Manager

[[email protected] ~]$ ps -ef | grep PALIBR
oracle    7110  7004  0 Jul03 ?        00:00:06 PALIBR                                                                                                
oracle   14003 13573  0 19:39 pts/5    00:00:00 grep PALIBR
[[email protected] ~]$

并发管理器/并发请求的日志在哪里?

可参考Metalink Note 105133.1:Concurrent Processing - Concurrent Manager Generic Platform Questions and Answers

  • Where do concurrent request or manager logfiles and output files go?
  • What are the logfile and output file naming conventions?

Current Processing Tables

说明
FND_CONCURRENT_REQUESTS Details of user requests, including status, start date, and completion date
FND_CONCURRENT_PROGRAMS Details of concurrent programs,including execution method, whether the program is constrained, and whether it must be run alone.
FND_CONCURRENT_PROCESSES Cross-references between concurrent requests and queues,and a history of concurrent manager processes
FND_CONCURRENT_QUEUES Information about each of the concurrent manager queues

也可以参考我之前的一篇文章:http://blog.csdn.net/pan_tian/article/details/7702103

Oracle原厂提供并发相关的脚本 - $FND_TOP/sql Scripts

  • afimchk.sql - Tells the status of the ICM
  • afcmstat.sql - Lists active manager processes
  • afrqrun.sql - Lists all the running, waiting and Terminating requests
  • afrqwait.sql - Lists requests that are constrained and waiting for the ICM to release them.
  • afrqscm.sql - Prints log file name of managers that can run a given request.
  • afcmcreq.sql - Prints the log file name of the manager that processed the request
  • afrqstat.sql - Summary of completed concurrent requests grouped by completion status and execution type..
  • afimlock.sql - Lists locks that the ICM is waiting to get
  • afcmrrq.sql - Lists managers that currently are running a request

运行步骤:

1.sqlplus apps/[email protected]
2.SQL> @$FND_TOP/sql/afimchk.sql

参考

Specialized / Dedicated Concurrent Managers (Enhancing Performance)

Concurrent manager in Oracle Apps

Concurrent Managers Window

Best Practices for Performance for Concurrent Managers in E-Business Suite (Doc ID 1057802.1)

Best Practices for Performance for Concurrent Managers in E-Business Suite

EBS - Technology Area - Webcast Recording ‘E-Business Suite - Concurrent Manager Performance - Best Practices‘ [video] (Doc ID 1367676.1)

Concurrent Manager Questions and Answers Relating to Generic Platform [ID 105133.1]

Basic information about Concurrent Managers (Doc ID 69336.1)

Concurrent Processing - Concurrent Manager Generic Platform Questions and Answers (Doc ID 105133.1)

转载请注明出处:http://blog.csdn.net/pan_tian/article/details/42967585

时间: 2024-11-06 10:58:47

关于Oracle E-Business Suite并发处理机制(Current Processing)的相关文章

[转]Oracle DB 管理数据并发处理

? 描述锁定机制以及Oracle 如何管理数据并发处理 ? 使用SQL 管理数据 ? 识别和管理PL/SQL  对象 ? 描述触发器和触发事件 ? 监视和解决锁定冲突 通过SQL 处理数据 在数据库中使用基本数据操纵语言(DML) 语句来处理数据. INSERT 命令 ? 一次创建一行. ? 插入另一个表中的多行. 使用基本的INSERT 语句一次可创建一行.如果使用所谓的子选择,则可以使用INSERT命令将一个表中的若干行复制到另一个表.这种方法又称为INSERT SELECT 语句. 如以下

Oracle RAC 全局等待事件 gc current block busy 和 gc cr multi block request 说明--转载(http://blog.csdn.net/tianlesoftware/article/details/7777511)

一.RAC 全局等待事件说明 在RAC环境中,和全局调整缓存相关的最常见的等待事件是global cache cr request,global cache busy和equeue. 当一个进程访问需要一个或者多个块时,Oracle会首先检查自己的Cache是否存在该块,如果发现没有,就会先通过global cache赋予这些块共享访问的权限,然后再访问.假如,通过global cache发现这些块已经在另一个实例的Cache里面,那么这些块就会通过Cache Fusion,在节点之间直接传递,

Oracle的SCN与检查点机制

SCN在Oracle的文档上以多种形式出现,一种是System Change Number,另一种是System Commit Number,在大多数情况下,Systems Change Numbers的定义更为确切. SCN(System Change Number)就是通常所说的系统改变号,是数据库中非常重要的一个数据结构,用以标识数据库在某个确切时刻提交的版本.在事务提交时,它被赋予一个唯一的标示事务的SCN.SCN同时被作为Oracle数据库的内部时钟机制,可以被看作逻辑时钟,每个数据库

Oracle Share Pool内部管理机制

SHARE POOL利用堆(HEAP)的内存管理方式管理,在物理上由多个内存区(EXTENT)组成,内存区又由多个不同大小的CHUNK组成.而CHUNK又有可重用和空闲之分,并且它们分别有LRU LIST.FREE LIST.RESERVED LIST串联起来. 堆管理 Shared Pool是利用堆内存管理方式管理的(KGH:Kernel Generic Heap).从Oracle 9i开始,可以有多个最高级堆(TOP-LEVLE HEAP),最高级堆可以分成多个副堆,副堆下面还拥有子堆.堆和

[Oracle] Golden Gate - 概念和机制

Golden Gate(简称OGG)提供异构环境下交易数据的实时捕捉.变换.投递. OGG支持的异构环境有: OGG的特性: 对生产系统影响小:实时读取交易日志,以低资源占用实现大交易量数据实时复制 以交易为单位复制,保证交易一致性:只同步已提交的数据 高性能 智能的交易重组和操作合并 使用数据库本地接口访问 并行处理体系 灵活的拓扑结构:支持一对一.一对多.多对一.多对多和双向复制等 支持数据过滤和转换 可以自定义基于表和行的过滤规则. 可以对实时数据执行灵活影射和变换. 提供数据压缩和加密:

后台使用oracle前台使用easyui分页机制

前台easyui 的datagrid中设置分页属性: pagination:true,//显示分页 pagePosition:'bottom',//分页栏位置 both 上下 bottom.top pageList:[12,24,36]//分页数据大小 后台java代码中 int page ,int rows写set. get方法. page = Integer.parseInt(request.getParameter("page")); rows = Integer.parseIn

Oracle&#39;s Business Intelligence Applications Configuration Manager 基本概念

Oracle's Business Intelligence Applications Configuration Manager :BIACM Once the BIAPPS installation is completed, the newly introduced web-based JAVA applications, BI Configuration Manager (BIACM) and Functional Set-up Manager (FSM), are available

[转帖]SAP S/4 HANA与SAP Business Suite/R3(ECC)的区别

SAP S/4 HANA与SAP Business Suite/R3(ECC)的区别 https://blog.csdn.net/zhongguomao/article/details/53515203 区别于联系 最近让试试搭建一套系统, 这会儿 先研究一下 啥区别儿. 去年SAP推出了新一代商务套件SAP S/4 HANA,无疑是ERP行业创新的一个重磅消息.那么SAP S/4 HANA是什么呢?它与SAP SAP Business Suite又有什么区别呢? SAP S/4 HANA (全

启动Oracle时提示:ORA-01078:failure in processing system parameters

一.使用环境操作系统:CentOS release 6.2 (Final) 数据库:Oracle 12g数据库主目录:/ora12/product/product/12.1.0/db_1 二.问题描述 用sys用户登录sqlplus后,用startup命令启动Oracle时提示:ORA-01078:failure in processing system parametersLRM-00109: could not open parameter file '/ora12/product/prod