ORACLEEBS并发管理系统器.docx
- 文档编号:4933080
- 上传时间:2022-12-11
- 格式:DOCX
- 页数:13
- 大小:792.14KB
ORACLEEBS并发管理系统器.docx
《ORACLEEBS并发管理系统器.docx》由会员分享,可在线阅读,更多相关《ORACLEEBS并发管理系统器.docx(13页珍藏版)》请在冰豆网上搜索。
ORACLEEBS并发管理系统器
关于OracleE-BusinessSuite并发处理机制(CurrentProcessing)
2015-01-2114:
05 2352人阅读 评论(0) 收藏 举报
分类:
OracleEBS(48)
OracleEBSConcurrentProgram(15)
版权声明:
转载请以链接形式注明出处
2012年写过一篇关于OracleE-BusinessSuite并发管理器的文章,回头看之前总结的内容还是比较单薄,很多点没说到,最近在看这块的内容,索性再写一篇稍微完整的文章来。
OracleE-BusinessSuite并发处理机制(CurrentProcessing)的好处
区别于普通功能的处理机制,并发处理机制其实是一个异步处理机制,它把程序放到后台来运行,前台的操作还给用户,允许用户可以继续做其他业务。
技术上将,异步处理的好处是降低系统特定时间点的负载,提升系统资源的整体使用率。
感受上讲,异步的机制可以有效提升整体的使用感受,减少用户无效的等待时间。
什么样的程序可以用并发机制来处理
报表类
报表是一种非常个性化的东西,一般也是每家公司客户化最多的部分,如果为报表需求都开发不同的列表界面来查询、展示,那么工作量将是巨大的。
所以Oracle把报表嵌入到并发处理中,通过一些灵活的配置或少量的开发(Reports/BIPublisherReports)既可以实现用户各类报表的需求.
流程类
多用于批量事务处理,或是长时间运行的业务,如库存管理器批量处理接口表中的临时事务。
并发处理机制(CurrentProcessing)的两类组件
并发处理机制(CurrentProcessing)包括两类组件:
∙并发管理器(ConcurrentManagers)
∙并发请求(ConcurrentRequests)
像公司中“经理”一样,Manager给Worker安排任务,Worker负责具体的执行。
OracleEBS中的ConcurrentManagers就是负责安排工作,ConcurrentRequests负责具体的执行。
并发管理器(ConcurrentManagers)的分类
一家企业一般都有许多的经理,有着高低之分,总裁、总监、经理、主管....OracleEBS这家企业中,同样也有着许多不同层面上的ConcurrentManager,有核心的ConcurrentManagers管理团队(InternalConcurrentManager、StandardManager、ConflictResolutionMananger),也有普通ConcurrentManagers。
核心的ConcurrentManagers团队管理下边普通ConcurrentManagers。
1.核心的三个并发管理器:
∙InternalConcurrentManager(内部管理器) —ThemastermanageriscalledtheInternalConcurrentManager(ICM)becauseitcontrolsthebehaviorofalloftheothermanagers,andbecausetheICMistheboss,itmustberunningbeforeanyothermanagerscanbeactivated.ThemainfunctionsoftheICMaretostartupandshutdowntheindividualconcurrentmanagers,andresettheothermanagersafteronethemhasafailure.
∙StandardManager(标准管理器) —AnotherimportantmasterConcurrentManageriscalledtheStandardManager(SM).TheSMfunctionstorunanyreportsandbatchjobsthathavenotbeendefinedtoruninanyspecificproductmanager.ExamplesofspecificconcurrentmanagersincludetheInventoryManager,CRPInquiryManager,andtheReceivablesTaxManager.Itisnotrecommendedtoaddspecializationrulestothestandardmanagerasitcancauseproblems.
∙ConflictResolutionManager(冲突解决管理器) —TheConflictResolutionManager(CRM)functionstocheckconcurrentprogramdefinitionsforincompatibilityrules.However,theICMcanbeconfiguredtotakeovertheCRM'sjobtoresolveincompatibilities.
小结:
∙InternalConcurrentManager是管理器中的BOSS,总负责人,控制着其他并发管理器的运作。
∙StandardMananger是标准管理器,没有纳入其他特定管理器(SpecificConcurrentManagers)的请求,默认就会由标准管理器管理。
∙ConflictResolutionManager主要用于处理日程冲突。
2.特定用途的并发管理器(SpecificConcurrentManagers,SCM)
除了上边说的三个核心并发管理器,还有众多的特定用途的并发管理器,如库存管理员(InventoryManager),接收事务处理管理器(ReceivingTransactionManager),MRPManager,以及用户自定义的并发管理器。
并发管理器是如何管理并发请求的
并发请求从提交到运行大概的过程是这样的:
用户首先提交并发程序运行请求,并发请求会首先放入请求队列中,再由InternalConcurrentManager根据特定的规则找到对应的ConcurrentManager(是StandardManager,还是特定的并发管理器)来运行这些请求。
下图为一个典型的并发管理器管理并发请求的流程图:
并发管理器的定义
并发管理器(ConcurrentManager)= 参数(缓存大小、节点设置...)+ 特殊规则(SpecializationRules)+ 工作班次(WorkShifts)
并发管理器的定义路径:
系统管理员职责->并发->经理->定义,定义过程也可以参考官方文档:
Link。
以InventoryManager为例,下图为库存管理器的定义界面。
CacheSize:
这个数字表示并发管理器每次读取多少请求来运行。
Enterthenumberofrequestsyourmanagerrememberseachtimeitreadswhichrequeststorun.Forexample,ifamanager'sworkshifthas1targetprocessandacachevalueof3,itwillreadthreerequests,andtrytorunthosethreerequestsbeforereadinganynewrequests.
Tip:
Enteravalueof1whendefiningamanagerthatrunslong,time-consumingjobs,andavalueof3or4formanagersthatrunsmall,quickjobs.
Node:
这个是并发管理器负载均衡的设置,即ParallelConcurrentProcessing(PCP)。
如果服务器是多节点的,那么可以在这里设定并发管理器以哪个节点为主节点运行,哪个节点为辅节点。
Ifyouareoperatinginaparallelconcurrentprocessingenvironmentandyouwantyourmanagertooperateonaspecificnode,selectthenameofthenode.
Theprimarynode,ifavailable,isthenodeyourconcurrentmanageroperateson.Iftheprimarynodeorthedatabaseinstanceonitgoesdown,yourconcurrentmanagermigratestoitssecondarynode.Yourconcurrentmanagermigratesbacktoitsprimarynodewhenthatnodebecomesavailable.
特殊规则(SpecializationRules)中设定并发管理要包括/排除的并发请求。
工作班次(WorkShifts)中赋予InventoryManager并发管理器的运行班次(WorkShift),运行班次决定了并发管理什么日子、什么时间来运行。
流程(Processes):
这个字段OracleEBS中文翻译的有问题,官方翻译成“流程”,我觉翻译成“进程”更好,这个参数表示,对于每个班次,ConcurrentManager能够调用最大操作系统层的进程数量来并发处理请求。
休眠秒(SleepSeconds):
表示班次间的间隔时间。
Thesleeptimeforyourmanagerduringthisworkshift.Sleeptimeisthenumberofsecondsyourmanagerwaitsbetweencheckingthelistofpendingconcurrentrequests(concurrentrequestswaitingtobestarted).Tip:
Setthesleeptimetobeverybriefduringperiodswhenthenumberofrequestssubmittedisexpectedtobehigh.
OracleEBS并发管理器性能调优的最佳实践
一、调整并发参数
-SleepSeconds
-CacheSize
-Purging
-GatherSchemaStatistics
二、负载调整
-SpecializedConcurrentmanagers
三、OutputPostProcessor–OPP
-JavaHeapSize
四、TuningPCP/RAC
五、TransactionManagers
详情可以参考以下文档:
BestPracticesforPerformanceforConcurrentManagersinE-BusinessSuite(DocID 1057802.1)
EBS-TechnologyArea-WebcastRecording'E-BusinessSuite-ConcurrentManagerPerformance-BestPractices'[video](DocID 1367676.1)
Specialized/DedicatedConcurrentManagers(EnhancingPerformance)
ConcurrentmanagerinOracleApps
BestPracticesforPerformanceforConcurrentManagersinE-BusinessSuite
InsidetheOracleConcurrentManager
如何判断并发管理器是否正常运行
系统管理员职责,Concurrent->Managers->Administer,如果Target和Actual相等,并且都大于0,则表示并发管理器为启动和运行状态。
∙TheTargetcolumnliststhenumberofprocessesthatshouldberunningforeachmanagerforthisparticularworkshift.
∙TheActualcolumnliststhenumberofprocessesthatareactuallyrunning.
IftheActualcolumniszero,therearenoprocessesrunningforthismanager.
IftheTargetcolumniszero,theneitheraworkshifthasnotbeenassignedtothismanager,orthecurrentworkshiftdoesnotspecifyanytargetprocesses.
Ifthetargetcolumnisnotzero,thenthemanagerprocesseshaveeitherfailedtostartup,orgonedown.Oneshouldcheckthemanager'slogfileandtheICMlogfile.OnecanalsosearchforOSprocessesusingthe'ps'command.Itispossiblefortheformtobeinaccurate,i.e.itmayshowactualprocesseseventhoughtheyarenotreallyrunning.Whenindoubt,checkforprocessesattheOSlevel.
操作系统下如何检查ConcurrentMananger的运行情况
FNDLIBR进程是否启动,这个表示InternalConcurrentManager进程是否运行
FNDLIBR:
ConcurrentManager
ps-ef|grepFNDLIBR
FNDLIBRprocessindicatesthatconcurrentmnagersareupandrequestsarerunningonthesystem.Sometimesithappensthatevenafterstoppingtheconcurrentmanagersbyadcmctl.shstopapps/appssomeoftherequestsmightcontinuerunning.Insuchcasesyoucanwaitforsay5minutesandthenifitdosnotstopthenyoucankillthoseFNDLIBRprocessesbykill-9
其他ApplicationConcurrentManager
INVLIBRistheprocessforthefollowingManagers
ManagertorunImmediateConcurrentProgramsdefinedinINVLIBR
[oracle@bej301441~]$ps-ef|grepINVLIBR
oracle 7111 7004 0Jul03?
00:
00:
07INVLIBR
oracle 1401613573 019:
40pts/5 00:
00:
00grepINVLIBR
[oracle@bej301441~]$
MRCLIBistheprocessforthefollowingManagers
MRPManager
[oracle@bej301441~]$ps-ef|grepMRCLIB
oracle 7113 7004 0Jul03?
00:
00:
06MRCLIB
oracle 1402413573 019:
40pts/5 00:
00:
00grepMRCLIB
[oracle@bej301441~]$
PALIBRistheprocessforthefollowingManagers
PAStreamlineManager
[oracle@bej301441~]$ps-ef|grepPALIBR
oracle 7110 7004 0Jul03?
00:
00:
06PALIBR
oracle 1400313573 019:
39pts/5 00:
00:
00grepPALIBR
[oracle@bej301441~]$
并发管理器/并发请求的日志在哪里?
可参考MetalinkNote 105133.1:
ConcurrentProcessing-ConcurrentManagerGenericPlatformQuestionsandAnswers
∙Wheredoconcurrentrequestormanagerlogfilesandoutputfilesgo?
∙Whatarethelogfileandoutputfilenamingconventions?
CurrentProcessing Tables
表
说明
FND_CONCURRENT_REQUESTS
Detailsofuserrequests,includingstatus,startdate,andcompletiondate
FND_CONCURRENT_PROGRAMS
Detailsofconcurrentprograms,includingexecutionmethod,whethertheprogramisconstrained,andwhetheritmustberunalone.
FND_CONCURRENT_PROCESSES
Cross-referencesbetweenconcurrentrequestsandqueues,andahistoryofconcurrentmanagerprocesses
FND_CONCURRENT_QUEUES
Informationabouteachoftheconcurrentmanagerqueues
也可以参考我之前的一篇文章:
Oracle原厂提供并发相关的脚本-$FND_TOP/sqlScripts
∙afimchk.sql-TellsthestatusoftheICM
∙afcmstat.sql-Listsactivemanagerprocesses
∙afrqrun.sql-Listsalltherunning,waitingandTerminatingrequests
∙afrqwait.sql-ListsrequeststhatareconstrainedandwaitingfortheICMtoreleasethem.
∙afrqscm.sql-Printslogfilenameofmanagersthatcanrunagivenrequest.
∙afcmcreq.sql-Printsthelogfilenameofthemanagerthatprocessedtherequest
∙afrqstat.sql-Summaryofcompletedconcurrentrequestsgroupedbycompletionstatusandexecutiontype..
∙afimlock.sql-ListslocksthattheICMiswaitingtoget
∙afcmrrq.sql-Listsmanagersthatcurrentlyarerunningarequest
运行步骤:
1.sqlplusapps/apps@instance
2.SQL>@$FND_TOP/sql/afimchk.sql
参考
Specialized/DedicatedConcurrentManagers(EnhancingPerformance)
ConcurrentmanagerinOracleApps
ConcurrentManagersWindow
BestPracticesforPerformanceforConcurrentManagersinE-BusinessSuite(DocID 1057802.1)
BestPracticesforPe
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- ORACLEEBS 并发 管理 系统