ORACLEEBS并发管理系统器Word文档格式.docx
《ORACLEEBS并发管理系统器Word文档格式.docx》由会员分享,可在线阅读,更多相关《ORACLEEBS并发管理系统器Word文档格式.docx(12页珍藏版)》请在冰豆网上搜索。
什么样的程序可以用并发机制来处理
报表类
报表是一种非常个性化的东西,一般也是每家公司客户化最多的部分,如果为报表需求都开发不同的列表界面来查询、展示,那么工作量将是巨大的。
所以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<
processid>
其他ApplicationConcurrentManager
INVLIBRistheprocessforthefollowingManagers
ManagertorunImmediateConcurrentProgramsdefinedinINVLIBR
[oracle@bej301441~]$ps-ef|grepINVLIBR
oracle
7111
7004
0Jul03?
00:
00:
07INVLIBR
1401613573
019:
40pts/5
00grepINVLIBR
[oracle@bej301441~]$
MRCLIBistheprocessforthefollowingManagers
MRPManager
[oracle@bej301441~]$ps-ef|grepMRCLIB
7113
06MRCLIB
1402413573
00grepMRCLIB
PALIBRistheprocessforthefollowingManagers
PAStreamlineManager
[oracle@bej301441~]$ps-ef|grepPALIBR
7110
06PALIBR
1400313573
39pts/5
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
参考
ConcurrentManagersWindow
1057802.1)