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.