SYS_并发管理系列1_并发程序管理器概要(案例)

简介: 2012-03-01 Created By BaoXinjian 一、摘要 区别于普通功能的处理机制,并发处理机制其实是一个异步处理机制,它把程序放到后台来运行,前台的操作还给用户,允许用户可以继续做其他业务。

2012-03-01 Created By BaoXinjian

一、摘要


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

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

 

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

并发管理器(Concurrent Managers)

并发请求(Concurrent Requests)

像公司中“经理”一样,Manager给Worker安排任务,Worker负责具体的执行。

Oracle EBS中的Concurrent Managers就是负责安排工作,Concurrent Requests负责具体的执行。

 

2. 并发管理器是如何管理并发请求

并发请求从提交到运行大概的过程是这样的,

用户首先提交并发程序运行请求,并发请求会首先放入请求队列中,

再由Internal Concurrent Manager根据特定的规则找到对应的Concurrent Manager(是Standard Manager,还是特定的并发管理器)来运行这些请求。

下图为一个典型的并发管理器管理并发请求的流程图:

 

3. 并发管理器的定义

并发管理器(Concurrent Manager) =  参数(缓存大小、节点设置...) + 特殊规则(Specialization Rules) + 工作班次(Work Shifts)

 

 


4. 并发器分类

(1). Concurrent Manager

并发程式管理器,用于管理并发程式

(2). Internal Concurrent Manager (ICM)

ICM实际上是一个后台进程,用于管理其他Manager(start/stop).DBA要保证ICM处于运行状态,否则其他的Concurrent Manager无法Start/Stop.

(3). Standard Manager (SM)

默 认的Concurrent Manager,如果request没有指定具体的Concurrent Manager(比如Inventory Manager, Receivables Tax Manager, etc),那么SM就会作为默认的Mananger来处理这个Request。

(4).产品相关的Concurrent Manager

有很多产品相关的Concurrent Managers,比如Inventory Manager,MRP Manager,Receiving Transaction Manager。

这些Managers针对特定模块来构建的,用于统一管理特定模块的Program。

 

二、并发管理器预览


1. 并发管理器

2. 内部并发管理器设定

 

三、基本概念


1. 常用的管理器

(1). Internal Manager:用以管理其他并发器

(2). Standard Manager:用户定义的Program等

(3). Inventory Manager: 管理Inventory的Interface交易

(4). Interface Manager

 

四、典型异常处理


1. 出现问题执行后发现状态为inactive,No Manager

2. 检查并发管理器

(1). 正常情况Actual>0

(2). 异常情况下Actual=0

(3). 处理 

Step1 : login as testmgr on hrms-test 

Step2 : cd $INST_TOP/admin/scripts  ( or  cd $ADMIN_SCRIPTS_HOME ) 

Step3 : $ adcmctl.sh start apps/<apps password>

 

五、并发管理器运行状态


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

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

System Admin > Concurrent > Manager > Define > FNDLIBR:Concurrent Manager

[applvis@paleonode1 ~]$ ps -ef | grep FNDLIBR
applvis   4480  4475 0 17:56 pts/1 00:00:01 FNDLIBR applvis 4798 4629 0 17:58 ? 00:00:00 FNDLIBR applvis 4799 4629 0 17:58 ? 00:00:00 FNDLIBR applvis 4800 4629 0 17:58 ? 00:00:00 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>*/

 

2. 如何start/stop Internal Concurrent Manage

/*$COMMON_TOP/admin/scripts for 11i*/
/*$INST_TOP/admin/scripts for R12*/ [applvis@paleonode1 gavin_apps]$ cd $INST_TOP/admin/scripts
[applvis@paleonode1 scripts]$ pwd /u2/VIS/visappl/inst/apps/PROD_paleonode1/admin/scripts
[applvis@paleonode1 scripts]$ adcmctl.sh stop apps/apps You are running adcmctl.sh version 120.17.12010000.3 Shutting down concurrent managers for PROD ... ORACLE Password: oracle Submitted request 5816470 for CONCURRENT FND SHUTDOWN adcmctl.sh: exiting with status 0 adcmctl.sh: check the logfile /u2/VIS/visappl/inst/apps/PROD_paleonode1/logs/appl/admin/log/adcmctl.txt for more information ...

 

3. 如何starting the Internal Concurrent Manager with diag=Y for detailed info

[applvis@paleonode1 scripts]$ adcmctl.sh  start apps/apps diag=Y
You are running adcmctl.sh version 120.17.12010000.3 Starting concurrent manager for PROD ... Starting PROD_0105@PROD Internal Concurrent Manager Default printer is noprint adcmctl.sh: exiting with status 0 adcmctl.sh: check the logfile /u2/VIS/visappl/inst/apps/PROD_paleonode1/logs/appl/admin/log/adcmctl.txt for more information ... 

 

4. 如何checking the Internal Concurrent Manager status

[applvis@paleonode1 scripts]$ adcmctl.sh  start apps/apps diag=Y
You are running adcmctl.sh version 120.17.12010000.3 Starting concurrent manager for PROD ... Starting PROD_0105@PROD Internal Concurrent Manager Default printer is noprint adcmctl.sh: exiting with status 0 adcmctl.sh: check the logfile /u2/VIS/visappl/inst/apps/PROD_paleonode1/logs/appl/admin/log/adcmctl.txt for more information ... [applvis@paleonode1 scripts]$ adcmctl.sh status apps/apps You are running adcmctl.sh version 120.17.12010000.3 Internal Concurrent Manager is Active. adcmctl.sh: exiting with status 0 adcmctl.sh: check the logfile /u2/VIS/visappl/inst/apps/PROD_paleonode1/logs/appl/admin/log/adcmctl.txt for more information ... [applvis@paleonode1 scripts]$ ps -ef | grep FNDLIBR applvis 4480 4475 0 17:56 pts/1 00:00:01 FNDLIBR applvis 8619 8614 0 18:54 pts/2 00:00:00 FNDLIBR applvis 8743 7502 0 18:55 pts/2 00:00:00 grep FNDLIBR 

 

5. Internal Concurrent Manager log file?

ICM log文件位于$APPLCSF/$APPLLOG或者$FND_TOP/$APPLLOG.

ICM日志的格式:<SID>_MMDD.mgr

 

四、并发管理器相关表和脚本


1. 相关表Related Tables

FND_CONCURRENT_PROGRAMS

FND_CONCURRENT_REQUESTS

FND_CONCURRENT_PROCESSES

FND_CONCURRENT_QUEUES

2. 相关视图Related View

FND_CONCURRENT_PROGRAMS_VL

FND_CONCURRENT_QUEUES_VL

FND_CONC_REQ_SUMMARY_V

FND_EXECUTABLES_VL

3. 相关脚本Related Scripts

$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

 

Thanks and Regards

ERP技术讨论群: 288307890
技术交流,技术讨论,欢迎加入
Technology Blog Created By Oracle ERP - 鲍新建
相关文章
|
10月前
|
机器学习/深度学习 数据采集 数据库
使用Python实现智能食品营养分析的深度学习模型
使用Python实现智能食品营养分析的深度学习模型
373 6
|
缓存 负载均衡 Java
Java分布式系统架构设计与实现
【4月更文挑战第2天】在快速发展的互联网时代,Java分布式系统成为应对复杂业务和高用户量的首选。通过服务化拆分、注册发现、负载均衡和缓存等技术,如Spring Cloud和Dubbo,开发者能构建高效、可靠、可扩展的系统。服务注册与发现确保服务间通信,负载均衡分配请求,分布式缓存如Redis提升性能。面对数据一致性和监控等挑战,Java提供工具解决,助力打造现代分布式应用。
787 2
Java分布式系统架构设计与实现
|
11月前
|
移动开发 JavaScript 前端开发
HTML5 表单属性详解
HTML5引入了多种新的表单属性,使表单创建与验证更加便捷高效。新增的输入类型包括`email`、`url`、`tel`等,常用属性有`placeholder`、`required`等。表单元素如`&lt;form&gt;`可设置提交方法和目标URL,`&lt;button&gt;`及`&lt;input type=&quot;submit&quot;&gt;`用于提交。新元素`&lt;datalist&gt;`和`&lt;output&gt;`提供更多功能。HTML5还提供了内置表单验证机制,增强用户体验。
|
分布式计算 数据挖掘 数据处理
Spark如何支持实时数据分析?
【6月更文挑战第16天】Spark如何支持实时数据分析?
253 3
|
11月前
|
Kubernetes 网络协议 网络安全
k8s中网络连接问题
【10月更文挑战第3天】
649 7
|
弹性计算 关系型数据库 数据库
利用阿里云进行性能优化:实践案例分享
在开发在线教育平台过程中,我们遇到了由于用户访问量增加而导致的性能瓶颈问题。通过使用阿里云的多种服务,包括RDS数据库、ECS弹性扩展、SLB负载均衡、OSS存储和CDN加速,我们对数据库、应用服务器和静态资源加载进行了全面优化。优化后的系统性能显著提升,数据库查询速度提高了60%,服务器负载下降了40%,静态资源加载时间减少了70%,从而极大改善了用户体验。本文详细介绍了问题分析、具体解决方案及其实施效果,旨在为其他开发者提供有价值的参考。
464 3
|
12月前
|
负载均衡 安全 Java
微服务 Gateway 使用详解
网关(Gateway)是连接不同网络并进行数据转发的关键组件。在互联网中,路由器常作为默认网关;在现代操作系统中,网关指本地网络上转发数据包的设备。Spring Cloud Gateway是一款基于Spring Framework的API网关,具备反向代理、高性能、负载均衡、安全控制、限流熔断、日志监控等功能。通过简单配置即可实现请求路由和转发,适用于微服务架构中的集中控制、解耦客户端与服务、自动服务发现等场景,提升系统安全性与可扩展性。
1368 4
|
资源调度 分布式计算 Hadoop
实时计算 Flink版操作报错合集之perjob提交给yarn,报错显示无法连接yarn- Connecting to ResourceManager,是什么导致的
在使用实时计算Flink版过程中,可能会遇到各种错误,了解这些错误的原因及解决方法对于高效排错至关重要。针对具体问题,查看Flink的日志是关键,它们通常会提供更详细的错误信息和堆栈跟踪,有助于定位问题。此外,Flink社区文档和官方论坛也是寻求帮助的好去处。以下是一些常见的操作报错及其可能的原因与解决策略。
|
算法 定位技术 网络架构
网络的分类与性能指标
可以分为广域网(WAN)、城域网(MAN)、局域网(LAN)、个人区域网(PAN)。
342 4
|
分布式计算 搜索推荐 Hadoop
03 Hadoop国内外应用案例介绍
03 Hadoop国内外应用案例介绍
776 0