前段时间需要新增克隆几套ERP环境,请了专业顾问的DBA进行了EBS系统克隆操作,但是在新克隆的ERP环境中,它的MRP请求一直无法正常运行,查阅官网MOS后,也是逐个定位和解决了,在这里简单做个记录。
环境信息
源环境为生产环境,AP * 2 + DB * 2 部署;
目标环境为单节点AP,单节点DB
问题一:
状态为“Pending”待定
-
现象:
- 在克隆部署一套新的EBS系统之后,运行MRP任务请求,一直处于“Pending”待定的状态,且在等待一段时间之后,一直没有反应与后续的动作。
- 取消后重新运行依旧是“Pending”的状态,无法运行后续请求。
-
原因:
- 在对应并发请求的定义页面,在其“会话控制”中,设置了具体的主机节点。
-
处理:
- 将对应请求及其子请求中,“会话控制”配置项中的内容直接清除,或者更改为对应新环境的节点信息
注意:请求及其子请求中的目标节点信息需要全部清除或者更改。
查看哪一些并发请求设置了服务器目标节点信息:
SELECT ps.concurrent_program_id,ps.user_concurrent_program_name,ps.concurrent_program_name,ppp.node_name1FROM fnd_concurrent_programs_vl ps, fnd_conc_prog_onsite_info ppp
WHERE ppp.concurrent_program_id = ps.concurrent_program_idAND ps.concurrent_program_name LIKE 'MR%'AND ppp.node_name1 IS NOT NULL;
涉及到的全部请求为:
- 启动 MPS 供应链计划流程
- MPS 冲减工作流程
- 基于内存的快照
- 快照监控程序
- 快照监控程序
- 快照删除工作流程
- 基于内存的快照工作流程
- 快照删除工作流程
- 装入程序工作流程
- 基于内存的计划员
- 计算总装
问题二:
MRP请求运行报错
-
现象:
- 在克隆环境中运行MRP相关请求任务,在解决第一种的异常问题之后,相关请求任务直接运行报错:
-
报错日志:
- 无法提交程序 MRCMON 的并发请求
- 检查并发程序是否在应用对象程序库注册
- 检查您是否指定了并发程序正确的应用简称
-
参考文档
官方文档:Doc ID 1507748.1 进行数据处理 -
处理方法及步骤:
- 查看系统节点信息
SELECT p.node_name1, p.*FROM applsys.fnd_conc_prog_onsite_info p
WHERE node_name1 LIKE 'CNITERPAPP0%';SELECT p.node_name1, p.*FROM applsys.fnd_conc_prog_onsite_info p
WHERE node_name1 is not null;
- 备份&更新正确数据
CREATE TABLE fnd_conc_prog_onsite_info_1129 ASSELECT * FROM fnd_conc_prog_onsite_info;UPDATE fnd_conc_prog_onsite_infoSET node_name1 = 'new_node_name'
WHERE node_name1 LIKE 'old_node_name%';
commit;
- 查验&确认问题
/*
所有的派生并发请求均需要以下操作(按执行顺序):
启动 MPS 供应链计划流程 —— MRPLPLAN 不需要
MPS 冲减工作流程 —— MRCSCW 需要
基于内存的快照 —— MRCNSP 需要
快照监控程序 —— MRCMON 需要
快照删除工作流程 —— MRCSDW 需要
基于内存的快照工作流程 —— MRCNSP 需要
快照删除工作流程 —— MRCSDW (二次调用)
装入程序工作流程 —— MRCSLD 需要
基于内存的计划员 —— MRCNEW 需要
计算总装 —— MRCEAP 需要
*/
SELECT *FROM fnd_concurrent_programs p,fnd_application a,fnd_conc_prog_onsite_info poi
WHERE a.application_short_name = 'MRP'AND p.application_id = a.application_idAND p.application_id = poi.program_application_idAND p.concurrent_program_id = poi.concurrent_program_idAND p.concurrent_program_name IN ('MRCSCW','MRCNSP','MRCMON','MRCSDW','MRCNSP','MRCSDW','MRCSLD','MRCNEW','MRCEAP');
- 处理步骤
4.1 Enable triggers
alter trigger FND_PROG_ONSITE_INSERT enable;alter trigger FND_PROG_ONSITE_DELETE enable;
4.2 Insert the missing records into fnd_conc_prog_onsite_info
以下三段SQL任选其一即可
-官方SQL-
1.
create table missing_fnd_conc_prog_info as
SELECT application_id,concurrent_program_id,last_update_date,last_updated_by,creation_date,created_by,last_update_login,SYSDATE reset_date,'ERROR' on_failure_log_levelFROM fnd_concurrent_programs
WHERE concurrent_program_id IN(SELECT concurrent_program_idFROM fnd_concurrent_programs aWHERE NOT EXISTS(SELECT 'no record'FROM fnd_conc_prog_onsite_info bWHERE a.concurrent_program_id = b.concurrent_program_id));
2.
INSERT INTO fnd_conc_prog_onsite_info(program_application_id,concurrent_program_id,last_update_date,last_updated_by,creation_date,created_by,last_update_login,reset_date,on_failure_log_level)SELECT * FROM missing_fnd_conc_prog_info;
-合并SQL-
INSERT INTO fnd_conc_prog_onsite_info(program_application_id,concurrent_program_id,last_update_date,last_updated_by,creation_date,created_by,last_update_login,reset_date,on_failure_log_level)SELECT application_id,concurrent_program_id,last_update_date,last_updated_by,creation_date,created_by,last_update_login,SYSDATE reset_date,'ERROR' on_failure_log_levelFROM fnd_concurrent_programsWHERE concurrent_program_id IN(SELECT concurrent_program_idFROM fnd_concurrent_programs aWHERE NOT EXISTS(SELECT 'no record'FROM fnd_conc_prog_onsite_info bWHERE a.concurrent_program_id = b.concurrent_program_id));
-指定并发请求-
INSERT INTO fnd_conc_prog_onsite_info(program_application_id,concurrent_program_id,last_update_date,last_updated_by,creation_date,created_by,last_update_login,reset_date,on_failure_log_level)SELECT application_id,concurrent_program_id,last_update_date,last_updated_by,creation_date,created_by,last_update_login,SYSDATE reset_date,'ERROR' on_failure_log_levelFROM fnd_concurrent_programs sWHERE s.concurrent_program_name IN('MRCSCW','MRCNSP','MRCMON','MRCSDW','MRCNSP','MRCSDW','MRCSLD','MRCNEW','MRCEAP');
Tips:记得调整后做COMMIT;
- 重新提交运行请求~
完毕!
+++==========================================================================+++
以上内容仅为个人学习记录使用。
如有转载,请附有原文出处链接。
参考链接:
https://support.oracle.com/epmos/faces/DocumentDisplay?_afrLoop=452565609103497&id=1507748.1&_afrWindowMode=0&_adf.ctrl-state=fxvilbz1a_4