Oracle Apps Monitor

本文介绍如何使用OracleApps监控当前在线用户的活动,并提供了几种不同的监控级别。此外还介绍了如何通过Report查看历史用户行为记录。

Monitor Users

如何监控当前哪些用户在干什么,Oracle Apps提供了一个监控这么功能(尽管还是比较简陋)。使用系统管理员用户登陆,到System Administrator职责下,Security > User > Monitor,然后F11, Ctrl-F11,就可以看到当下有哪些用户在干什么,比如这里的截图,用户PROJMFG在Order Information Super User职责下

监控的粒度是由系统Profile “Sign-On:Audit Level”来控制的


  • NONE - No monitoring.
  • USER - Will only show you a list of logged in users.
  • RESPONSIBILITY - Will show you the user logged in and the responsibility they are using.
  • FORM - Will go down to the lowest level of detail and show you the User, Responsibility and Form being accessed.

另外监控用户还可以使用11i : Oracle Application Object Library Active Users Data Collection Test (Doc ID 233871.1)里说的方法,它会输出一个html格式的report,展示当前Active的User数据


Signon Audit Report

"Monitor User"用于监控当下系统中在线用户的行为情况,那么如何查看过往用户行为的历史情况,Oracle提供了几个Report。


Signon Audit Concurrent Requests (shows who submitted what requests)

Signon Audit Forms (shows who accessed what forms)

Signon Audit Responsibilities (shows who accessed what responsibilities)

Signon Audit Unsuccessful Logins (shows who unsuccessfully attempted to sign on as another user)

Signon Audit Users (shows who signed on to Oracle Applications)

以Signon Audit Forms为例

Report运行的结果



转载请注明出处:http://blog.youkuaiyun.com/pan_tian/article/details/7876135
===EOF===

<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]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值