菜单

我很低调嘛
发布于 2024-03-02 / 262 阅读
0
0

EBS 客制化并发管理器

前言

在 Oracle E-Business Suite 中存在一个并发处理机制:并发请求,用户在提交请求后,即可离开界面,请求会在后台继续执行。其包括两类组件:并发管理器并发请求,总体流程是说用户提交请求后,会将进到请求队列中,内部管理器 会根据规则分配给合适的管理器(一般默认标准管理器

问题描述

有一个客户化开票程序 CUX_自动开票主程序 ,每天会定时运行,其间会提交大量标准开票程序 自动开票主程序 ,导致将默认的标准管理器的并发数全部占用,期间其他请求只能等待;且 自动开票主程序 自身在大量同时跑的情况下,也会出现异常错误 APP-AR-11526: ORA-20011: Approximate NDV failed: ORA-00039: 定期操作期间出错

解决方案

客制化并发管理器 CUX_应收开票管理器 ,针对 自动开票主程序 单独管理,设置其最大并发数为 10

设置步骤

1. 标准管理器添加特殊规则,排除自动开票主程序

(1)系统管理员 - 并发 - 经理 - 定义,打开并发管理器定义界面,查找 标准管理器
在这里插入图片描述
(2)打开特殊规则界面,如下添加一行,将 自动开票主程序 排除,保存
在这里插入图片描述

2.新建并发管理器 CUX_应收开票管理器

(1)回到定义页面,新增 CUX_应收开票管理器(可以参考标准管理器进行设置)
在这里插入图片描述
(2)打开特殊规则界面,如下添加一行,将 自动开票主程序 包括
在这里插入图片描述
(3)打开工作班次界面,设置流程数为 10,即标识最大并发数为 10
在这里插入图片描述
(4)保存后退出界面,此时会自动提交请求 建立并发请求队列视图 ,以及对涉及并发管理器重启的请求: Restart Concurrent Manager (重新启动) ,等待运行完成。
ps: 这不重要,后面大概率还是需要重启并发管理器。

3. 重启并发管理器

等上一步自动提交的请求完成,查看并发管理器状态,如果 标准管理器CUX_应收开票管理器 的状态异常,比如卡在 正在重新启动,可以按一般并发管理器启动异常的处理方式,通过脚本重启
进入应用层,执行以下脚本重启并发:

cd $ADMIN_SCRIPTS_HOME
adcmctl.sh stop apps/apps
adcmctl.sh start apps/apps

标准管理器CUX_应收开票管理器 的状态若仍显示需要重新启动或者激活,则点击对应的按钮,等待。

4.其他

设置完毕后,可以通过一下 sql 查看提交请求使用的并发管理器是否和预期一致:

SELECT fcr.request_id
      ,fcpv.user_concurrent_program_name
      ,fcr.requested_start_date
      ,fcr.actual_start_date
      ,fcr.actual_completion_date
      ,fcq.user_concurrent_queue_name
  FROM fnd_concurrent_requests    fcr
      ,fnd_concurrent_programs_vl fcpv
      ,fnd_concurrent_processes   fcp
      ,fnd_concurrent_queues_vl   fcq
 WHERE 1 = 1
   AND fcr.concurrent_program_id = fcpv.concurrent_program_id
   AND fcr.controlling_manager = fcp.concurrent_process_id
   AND fcp.concurrent_queue_id = fcq.concurrent_queue_id
   AND fcpv.user_concurrent_program_name = '自动开票主程序'
   AND fcr.requested_start_date > SYSDATE - 3
 ORDER BY fcr.request_id;

评论