Oracle EBS OM处理销售挑库卡在待定事务处理和保留中

写该blog之前,非常感恩网上各位热心朋友出手相助,为本人提供很多方法和建议。

系统版本:

       RDBMS : 9.2.0.6.0

       Oracle应用产品 : 11.5.10.2

问题症状:

1. 销售订单: 1110031700发运事务处理状态:

<think>我们正在讨论如何设置自动监控机制来检测OracleEBS中的待处理事务。根据用户的问题之前的回答,我们需要构建一个自动化的监控方案。结合引用内容,我们可以考虑以下方面: 1. **引用[1]中提到**:系统管理员可以在“请求”窗口监控并发程序的状态,并作出相应处理。这提示我们可以通过并发请求的状态原因来监控待处理事务。 2. **引用[2]中提到**:定期维护,包括收集统计信息清理无效会话,以及使用监控工具(如AWR报告)进行分析。这提示我们在自动监控中需要包括定期作业性能监控。3.**引用[3]中提到**:使用OracleApplications实施向导(AIW)来协调设置活动。虽然不直接相关,但说明Oracle有提供一些向导工具,我们可以利用标准功能或自定义。因此,自动监控机制可以包括以下组成部分: ###方案设计1. **创建并发程序定期检查失败请求**:-编写一个PL/SQL过程,查询`fnd_concurrent_requests`表,找出因待处理事务而失败的请求。-将该PL/SQL程序注册为并发程序,并定期运行(例如每小时一次)。2.**设置报警机制**:-当监控程序发现待处理事务导致的失败作业时,发送通知(邮件、短信等)。3.**定期清理维护**:-设置定期作业清理接口表(如`ap_interface_control`)无效会话,预防事务挂起。4.**利用OracleEBS标准功能**:-使用“并发程序监视器”标准功能,设置预警条件。###具体实施步骤####步骤1:创建监控PL/SQL程序```sqlCREATE ORREPLACE PROCEDURE monitor_pending_txns ASv_countNUMBER;v_message VARCHAR2(4000); BEGINSELECT COUNT(*)INTOv_countFROM fnd_concurrent_requestsWHEREphase_code= 'C'ANDstatus_code= 'E'ANDUPPER(reason)LIKE '%PENDING%TRANS%'AND request_date >SYSDATE -1;--检查最近24小时IF v_count >0THENv_message :='发现'|| v_count ||'个作业因待处理事务失败。请检查并发请求!';--调用发送邮件的过程(需要预先配置邮件发送功能)send_email_alert(v_message);ENDIF;EXCEPTIONWHENOTHERS THEN--异常处理NULL;END;/ ```####步骤2:注册并发程序1.使用系统管理员职责,导航到“应用开发员” >“并发” >“程序”。 2.定义一个新的可执行文件:-执行文件:`monitor_pending_txns`-应用短名:`SQLAP`-执行方法:`PL/SQL存储过程` 3.定义并发程序,关联到上一步的可执行文件。 ####步骤3:设置并发请求集1.创建请求集,将上述并发程序添加到请求集中。 2.安排请求集定期运行(例如每小时一次)。####步骤4:配置邮件报警-在PL/SQL过程中调用`UTL_MAIL`或自定义邮件过程(需配置ACL): ```sqlCREATE PROCEDURE send_email_alert(p_message VARCHAR2)ASBEGINUTL_MAIL.SEND(sender=>'oracle@company.com',recipients=> 'dba@company.com',subject=> 'EBS处理事务警报',message =>p_message); END; ```####步骤5:预防性维护(引用[2])-创建定期作业清理接口表:```sqlBEGINAP_INTERFACE_CONTROL_PKG.delete_interface_rows();END;```-定期收集统计信息:使用`DBMS_STATS.GATHER_SCHEMA_STATS`[^2]。 ####步骤6:利用标准预警功能-在“系统管理员”职责下,导航到“预警管理器”>“定义预警”。-创建基于“并发请求”的预警,条件为:状态=失败,原因包含“PENDING”。###监控机制示意图```mermaidgraphTDA[定时触发监控程序] -->B[查询失败请求]B--> C{存在待处理事务失败?}C --是--> D[发送报警]C--否 -->E[结束]```###注意事项1.**权限要求**:执行数据操作需要DBA权限,系统操作需root权限[^2]。2.**生产环境谨慎操作**:强制释放缓存可能导致性能波动,需评估业务影响[^2]。 3. **监控工具**:结合AWR报告分析系统性能,确认是否需要调整[^2]。 ###扩展建议-将待处理事务的监控集成到现有的系统监控平台(如Zabbix)。-定期生成待处理事务报告,帮助分析根本原因。 §§相关问题§§1.如何配置Oracle EBS的邮件通知功能?2.有哪些方法可以清理OracleEBS中的接口表? 3.如何优化并发管理器以减少待处理事务?</think>### 自动监控Oracle EBS处理事务的完整方案 #### 1. **核心监控机制设置** **a. 创建专用并发程序监控脚本** ```sql CREATE OR REPLACE PROCEDURE monitor_pending_txns AS v_count NUMBER; v_message VARCHAR2(4000); BEGIN -- 检查过去1小时内的待处理事务失败 SELECT COUNT(*) INTO v_count FROM fnd_concurrent_requests WHERE phase_code = 'C' AND status_code = 'E' AND UPPER(reason) LIKE '%PENDING%TRANS%' AND request_date > SYSDATE - 1/24; -- 1小时时间窗口 IF v_count > 0 THEN v_message := '发现 ' || v_count || ' 个待处理事务失败作业! 时间: ' || TO_CHAR(SYSDATE, 'YYYY-MM-DD HH24:MI'); -- 调用邮件报警程序 apps.xxen_util.send_mail( p_sender => 'ebs_monitor@company.com', p_recipient => 'dba_team@company.com', p_subject => 'EBS处理事务警报', p_message => v_message ); END IF; END; / ``` **b. 注册为并发程序** 1. 系统管理员职责 > 并发 > 程序 2. 定义可执行文件: - 执行文件:`monitor_pending_txns` - 应用:`Application Object Library` - 执行方法:`PL/SQL存储过程` 3. 定义并发程序并关联可执行文件 **c. 设置定期计划** - 使用标准`Concurrent: Request Scheduler`[^1] - 安排每30分钟运行一次 - 关键参数:`Interval Minutes = 30` #### 2. **增强型监控方案** **a. 事务级深度监控** ```sql -- 创建监控表存储历史记录 CREATE TABLE pending_txns_log ( request_id NUMBER, program_name VARCHAR2(240), failure_time DATE, reason VARCHAR2(2000), interface_table VARCHAR2(30) ); -- 增强监控过程 INSERT INTO pending_txns_log SELECT fcr.request_id, fcp.user_concurrent_program_name, fcr.request_date, fcr.reason, (SELECT table_name FROM fnd_lookups WHERE lookup_type = 'PENDING_TXN_INTERFACES' AND INSTR(UPPER(fcr.reason), lookup_code) > 0) FROM fnd_concurrent_requests fcr JOIN fnd_concurrent_programs_tl fcp ON fcr.concurrent_program_id = fcp.concurrent_program_id WHERE ... -- 同核心监控条件 ``` **b. 接口表积压监控** ```sql -- AP接口表示例 SELECT COUNT(*) pending_count FROM ap_invoice_interface_all WHERE process_status = 'PENDING' AND creation_date < SYSDATE - 1/24; -- 超过1小时未处理 ``` #### 3. **报警与通知配置** **a. 邮件报警配置** 1. 配置`Workflow Mailer`[^3] 2. 设置SMTP服务器参数: ```sql UPDATE wf_notification_attributes SET TEXT_VALUE = 'smtp.yourcompany.com' WHERE NAME = 'SMTP_HOST'; ``` 3. 测试邮件发送: ```sql apps.fnd_web_pkg.send_mail( p_to => 'test@company.com', p_subj => '测试警报', p_body => 'EBS监控系统测试' ); ``` **b. 移动端报警** - 集成Oracle Mobile Approvals[^1] - 配置PUSH通知规则: ``` 条件: 待处理事务 > 阈值 动作: 发送手机通知给DBA团队 ``` #### 4. **维护与优化** **a. 预防性维护计划** ```sql BEGIN -- 每日清理接口表 AP_INTERFACE_CONTROL_PKG.delete_interface_rows(); -- 每周收集优化统计信息 DBMS_STATS.GATHER_SCHEMA_STATS( ownname => 'APPS', options => 'GATHER AUTO' ); END; / ``` **b. 性能监控集成** - 将待处理事务指标加入AWR报告[^2] - 使用OS Watcher监控相关表空间增长 - 配置ADDM分析建议自动检查事务积压 #### 5. **实施最佳实践** 1. **使用AIW实施向导** 通过Applications Implementation Wizard[^3]部署监控方案: - 向导路径:`System Administrator > Setup > AIW` - 选择"监控配置"流程流 - 自动生成配置文档 2. **权限控制** ```sql GRANT EXECUTE ON monitor_pending_txns TO APPS; REVOKE DELETE ON pending_txns_log FROM PUBLIC; ``` 3. **监控看板配置** ```sql -- 创建BI Publisher实时报表 SELECT TO_CHAR(failure_time, 'YYYY-MM-DD') day, program_name, COUNT(*) failures FROM pending_txns_log GROUP BY TO_CHAR(failure_time, 'YYYY-MM-DD'), program_name ORDER BY 1 DESC, 3 DESC; ``` ### 监控机制示意图 ```mermaid graph TD A[定时监控程序] --> B{检测失败请求} B -->|有失败| C[分析原因] C --> D{接口表积压?} D -->|是| E[清理接口表] D -->|否| F[检查工作流] F --> G[发送警报] G --> H[记录日志] B -->|无失败| I[下一周期] ``` ### 关键注意事项 1. **生产环境验证** - 先在测试实例验证监控脚本 - 使用`DBMS_LOCK.SLEEP`模拟延迟场景 - 逐步调整监控频率(从1小时→30分钟) 2. **性能影响控制** - 添加`/*+ INDEX(fcr FND_CONCURRENT_REQUESTS_N1) */`提示[^2] - 限制每次查询时间范围(`SYSDATE - 1/24`) - 定期归档历史日志 3. **灾备方案** - 创建监控备用程序: ```sql BEGIN monitor_pending_txns; EXCEPTION WHEN OTHERS THEN fallback_monitor; -- 简化版监控 END; ``` > **实施提示**:使用Oracle Applications实施向导(AIW)可标准化部署流程[^3]。首次配置后,通过`System Administrator > Monitoring > Request Monitor`实时查看效果[^1]。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

AlanChen

您的鼓励是我创作的源泉

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值