概览
OAF框架中的日志API是一个容易使用的工具,它可以把代码运行的日志信息写到数据库中的一个特定的表中或者到中间层的文件中,以便可以在用户友好的诊断页面查看。你也可以配置日志把日志信息直接附加到一个当前页面的后面。
这篇文章介绍了以下三项:
l 日志的工作原理
l 开启日志
l 中间层节点上的FND日志
关于日志的完整信息,参考Applications Release 12 OnlineDocumentation CD中的Oracle E-Business Suite Supportability Guide。关于如何使用Oracle Application Manager Applications Dashboard启用日志、查看日志信息和查看系统警报的完整信息,参考Oracle Applications System Administrator'sGuide – Maintenance中叫做Monitoring Oracle E-Business Suite的章节,可以在Applications Release 12 OnlineDocumentation CD找到。
日志的工作原理
如果你想记录代码运行信息,你必须在你的代码的合适位置先添加对OAF框架的日志API的调用。在运行时,如果启用了日志,每条你想要下来的消息都会记录到数据库表中(或者指定的文本文件中)。
要查看日志信息,选择任意页面中的诊断全局按钮(链接)(这个全局按钮配置为标准全局菜单的一部分并添加到每个页面;这个菜单是否显示是由profile FND: Diagnostics (FND_DIAGNOSTICS)来控制的).
注意:参数”retainAM=Y”添加到诊断全局按钮的URL,并链接到诊断页面。因此,用户要导航到诊断页面的页面AM会保留在诊断页面上。当用户用“返回应用”链接从诊断页面导航出时,AM是否保留依赖于导航到诊断页面的原始页面上的retainAM参数。
在你选择了诊断按钮后,会被导航到诊断页面,你可以选择:
l 显示日志(Show Log)-指引你到Oracle ApplicationsManager查看Oracle E-Business Suite系统的快照。关于如何使用Oracle ApplicationsManager页面的详细信息,请在任意OracleApplications Manager页面上帮助按钮或者参考OracleE-Business Suite System Administrator's Guide - Maintenance里叫做Monitoring OracleApplications的章节,可以在ApplicationsRelease 12 Online Documentation CD找到。
l 在屏幕上显示日志(ShowLog on Screen)-允许你为特定的HTTP请求和回应指定日志等级并在当前页面的后面显示Java日志消息。关于这个功能的更多信息,请参考OracleE-Business Suite Supportability Guide中How to Configure Logging章节叫做How to ConfigureLogging的部分,可以在ApplicationsRelease 12 Online Documentation CD找到。
l 设置跟踪等级(SetTrace Level)-将显示设置跟踪页面,在这个页面上你可以指定在数据库跟踪是收集信息的等级。关于这个功能的更多信息请参考enablinga database trace。
l 显示监视池(ShowPool Monitor)-显示ApplicationPool Monitor,在这个页面上可以你可以查看关于JVM运行时和配置信息的不同方面。关于这个功能的更多信息,请参考Monitoringthe Application Module Pool。
l 诊断(OracleDiagnostics)-是诊断页面上的一个单独的链接(不是弹出列表上的值)。如果你选择这个链接,你会被导航到Oracle Diagnostic的首页。要使用Oracle Diagnostic,请参考OracleE-Business Suite Supportability Guide,可以在ApplicationsRelease 12 Online Documentation CD找到。
性能考虑
如果禁止日志的话,那么在你的代码中调用日志API的成本是微不足道的。OAF框架会为当前用户缓存日志profile,所以一旦日志设置缓存了,在实际写任何日志之前,你仅需要付出调用API来确定是否启用了日志的代价。
如果启用了日志,确实在运行时会有性能影响,但通常用户不会启用日志,除非要诊断系统问题。
日志API
有如下的已公布的日志方法在下面两个类中:
oracle.apps.fnd.framework.webui.OAPageContext和oracle.apps.fnd.framework.server.OADBTransaction,分别用户客户端和服务端代码访问(比如,如果你要在UI控制器里调用日志API,应使用OAPageContext. 如果你想从AM中调用日志API,应使用OADBTransaction)。这两个类中你要使用的方法在Oracle E-Business Suite Supportability Guide的LoggingGuidelines for Developers章节的"How to Log from Java"部分有详细的描述,可以在ApplicationsRelease 12 Online Documentation CD找到。
记录消息内容
每条日志消息都包含了几个组件,都在Oracle E-Business Suite Supportability Guide的LoggingFramework Overview章节里有详细描述,可以在ApplicationsRelease 12 Online Documentation CD找到。
模块
除了等级之外,报告日志消息的模块(完全合格的类名)也会被记录下来。这用于确认消息的来源。
日志等级使用指导
关于日志等级使用的详细指导,请参考Oracle E-Business Suite Supportability Guide的LoggingConfiguration Parameters章节的"AFLOG_LEVEL"部分,可以在ApplicationsRelease 12 Online Documentation CD找到。
警告:日志会有性能成本。小心使用低等级的日志(比如,procedure和statement等级).还有,一定要在连接构造日志消息的字符串之前先检查是否启用了日志。
启用日志
尽管日志特性最终是由一系列profile选项控制的,但你应该使用Oracle Applications Manager Log Setup页面来配置你的日志特性。你再这个页面上的更改会自动更新日志相关的profile.关于如何使用Log Setup 页面的信息,可以参考Oracle E-Business Suite System Administrator'sGuide - Maintenance中"Monitoring Oracle Applications"章节中"SettingUp Logging"部分,可以在ApplicationsRelease 12 Online Documentation CD找到。
Profile使用指导
对一个已部署的模块(相对于正在开发的模块),仅仅UNEXPECTED错误(这些需要管理员的主要)应该被记录.还有,通常的,用户不应该能访问诊断页面。站点级别的profile FND: Diagnostics (FND_DIAGNOSTICS)的值应该设置为No.
如果在客户站点上记录了一个问题,那么系统管理员应该使用把profile FND: Diagnostics (FND_DIAGNOSTICS)设置为Yes的用户登录系统来研究这个问题。
中间层节点上的FND日志
启用日志的步骤
1.Telnet到E-Businesssuite R12中间层instance.
2.使用下面的脚本关闭OC4J服务器
$INST_TOP/admin/scripts/adoacorectl.shstop
或者
$INST_TOP/admin/scripts/adopmnctl.shstopall
3.备份文件$ORA_CONFIG_HOME/10.1.3/opmn/conf/opmn.xmlfile
4.编辑opmn.xml文件的dataid="java-options"节点,并添加下面的代码
-DAFLOG_ENABLED=true-DAFLOG_LEVEL=statement -DAFLOG_MODULE=fnd% -DAFLOG_FILENAME=/tmp/fndlog.txt -Djbo.debugoutput=console
5.更新后的行应该看起来如下(带详细的路径)
<dataid="java-options" value="-server -verbose:gc -Xmx512M -Xms128M -XX:MaxPermSize=160M -XX:NewRatio=2 -XX:+PrintGCTimeStamps-XX:+UseTLAB -XX:+UseParallelGC -XX:ParallelGCThreads=2-Dcom.sun.management.jmxremote -DAFLOG_ENABLED=true -DAFLOG_LEVEL=statement-DAFLOG_MODULE=fnd% -DAFLOG_FILENAME=/tmp/aflog.txt -Djbo.debugoutput=console -Djava.security.policy=$ORACLE_HOME/j2ee/oacore/config/java2.policy -Djava.awt.headless=true -Dhttp.webdir.enable=false -Doracle.security.jazn.config=/nfs/bld/d25/PRUP2X2/inst/apps/PRUP2X2_ap6002bld /ora/10.1.3/j2ee/oacore/config/jazn.xml"/>
6.使用下面的脚本启动OC4J服务器
$INST_TOP/admin/scripts/adoacorectl.shstop
或者
$INST_TOP/admin/scripts/adopmnctl.shstopall
7.然后FND日志会被写入到文件/tmp/fndlog.txt中。
获取FND日志消息的步骤
1. 要在中间层启用日志,通过添加下面的行中的OC4J参数到文件
$INST_TOP/ora/10.1.3/j2ee/oacore/config/oc4j.properties
FND_VALIDATION_LEVEL=Log FND_FUNCTION_VALIDATION_LEVEL=Log FRAMEWORK_VALIDATION_LEVEL=Log AFLOG_ENABLED=TRUE AFLOG_LEVEL=UNEXPECTED AFLOG_MODULE=fnd% AFLOG_FILENAME=/tmp/fnd.log
2. 在数据库层启用日志
使用”System Administrator”职责登陆到EBS并设置下面的系统Profiles在站点级别设置为如下的值:
Profile Name Value
-----------------------------------------------
FND: Debug Log Enabled Yes
FND: Debug Log Module fnd%
FND: Debug Log Level Statement
FND: Debug Log Filename <path>/fnd.log
注意—确认你设置了日志目录为绝对路径替换<path>.在中间层上的日志设置的优先级要比数据库层的要高。
3. 重启下面的服务器:
HTTP 服务器(使用脚本adapcctl.sh)
OC4J服务器(使用脚本adoacorectl.sh)
4.使用下面的SQL脚本获取表fnd_log_messages中最大的序列号:
SQL> selectmax(log_sequence) from fnd_log_messages
5.重现问题
6.上传下面的FND日志信息:
fnd.log
7. 运行下面的SQL脚本并使用excel格式上传结果:
SQL> select module, message_text, log_sequence from fnd_log_messages where module like 'fnd%' and log_sequence > &max(log_sequence) from result-of-stepabove
使用debug.zip文件从客户instance上获取日志详细信息的步骤
1. 使用下面的脚本关闭OC4J服务器
$INST_TOP/admin/scripts/adoacorectl.shstop 或者$INST_TOP/admin/scripts/adopmnctl.sh stopall
2.下载debug.zip文件到中间层节点上,确认debug.zip在我们使用它的位置是可访问的,你可以使用下面的命令.
$ chmod 777debug.zip
3.备份文件
$ORA_CONFIG_HOME/10.1.3/j2ee/oacore/application-deployments/oacore/orion-application.xml
4. 编辑文件orion-application.xml并把debug.zip文件的完全路径作为库类路径的第一入口(这点非常重要)
..... <librarypath="..../debug.zip" />
5.使用下面的脚本启动OC4J服务器
6.$INST_TOP/admin/scripts/adoacorectl.shstop 或者$INST_TOP/admin/scripts/adopmnctl.sh stopall
7.重现问题并上传下面的日志文件
$INST_TOP/logs/ora/10.1.3/opmn/oacore_default_group_1/oacorestd.out
$INST_TOP/logs/ora/10.1.3/j2ee/oacore/oacore_default_group_1/application.log
对其它的日志信息,有一个Metalink的文章,"How to enable Apache, OC4J and OPMN logging in OracleApplications R12" - 419839.1。
相关推荐
在Oracle E-Business Suite(EBS)中,个性化标准OAF页面是指基于Enterprise Object(EO)或SQL的版本,通过替换Value Object(VO)添加客户化属性来实现个性化的页面开发。下面是相关的知识点: 个性化EBS标准OAF...
- **对象类型**:OAF中包含了多种类型的对象,如实体对象(Entity Object)、视图对象(View Object)、视图行(View Row)等。 - **命名规则**:OAF中的对象通常遵循一定的命名规则,以便于管理和识别。 ##### 6.3 JSR ...
在EBS中,OAF(Oracle Application Framework)是一个强大的开发平台,用于构建和定制EBS的应用程序。本文将详细讨论如何通过OAF实现EBS的即时打印功能。 首先,我们要理解OAF的基本概念。OAF是基于JDeveloper的,...
OAF 主要针对 Oracle EBS 环境中的开发工作。 - **OAF 对象概念**:在 OAF 中,对象是用来表示应用程序中各种实体的一种方式,如实体对象、关联对象、视图对象等。 - **OAF 对象命名规则**:为了保持代码的一致性和...
在Oracle EBS OAF(ADF)VO开发中,绑定方式主要有三种:Oracle Named, Oracle Positional以及JDBC Positional。每种绑定方式在参数传递和SQL语句构建方面都有其独特的特点和使用场景。 1. Oracle Named绑定方式: ...
1) Oracle Application Framework(OA Framework)是Oracle提供的基于HTML应用的开发和发布平台 ...4) OAF使用元数据库支持的(整个页面由XML来定义,定义存储于Oracle数据库中)UIX框架作为其视图部分,将BC4
Oracle Application Framework (OAF) 是Oracle公司提供的一种企业级应用开发框架,主要用于构建基于Web的用户界面,尤其在Oracle E-Business Suite (EBS) 中广泛使用。本教程旨在帮助初学者逐步掌握OAF开发的核心...
接下来,"Lesson 2 Search.doc"将介绍如何在OAF中实现搜索功能。在EBS中,用户经常需要查找特定的信息。本课将教你如何创建一个搜索界面,定义查询条件,以及如何处理返回的结果集。理解这个过程对于构建交互性强的...
文档标题和描述中的“OAF开发学习总结教程”指的是Oracle Application Framework(OAF)的学习教程,这是一套用于构建和定制Oracle应用的开发框架。在本文档中,作者南生分享了其对OAF开发的理解和实践经验,主要...
### EBS R12 开发人员手册知识点解析 #### 一、手册概述 **EBS R12 开发人员手册**是一份针对Oracle E-Business Suite(EBS)R12版本的应用程序开发者的重要参考资料。该手册由Oracle公司发布,旨在帮助开发人员更...
OAF中不同类型的组件遵循特定的命名规范: - **EO(Entity Object)**:oracle.apps.Application.scheme.server - **PG(Page Group)** 和 **CO(Component Object)**:oracle.apps.Application.webui - **AM、VO...
Oracle Application Framework (OAF)是Oracle...以上内容构成了OAF开发的基础,对于理解和实践Oracle EBS中的自定义用户界面开发至关重要。通过掌握这些知识点,开发者能够创建出符合业务需求、高效易用的OAF应用程序。
在Oracle E-Business Suite (EBS) 中,Form开发是一个核心部分,用于构建企业级的业务应用程序。在实际应用中,往往需要根据不同用户或部门的需求进行定制化,以提高工作效率和用户体验。"ORACLE ebs FORM开发中form...
在开始开发之前,需要上传FORM文件到EBS系统中。上传步骤如下: 1. 将FORM文件上传到/u01/EBS/app/fs1/EBSapps/appl/cux/12.0.0/forms/ZHS目录下。 2. 切换到cd $AU_TOP/forms/ZHS目录下,编译FORM文件,生成.fmx...
Oracle EBS Form 开发是构建企业级业务应用的关键部分,主要针对Oracle企业资源规划系统(Enterprise Business Suite,EBS)。以下是一些关于Oracle EBS Form开发的重要知识点: 1. **基础开发环境设置**: - ...
以上就是从提供的文档标题、描述和部分内容中提取的相关知识点,涵盖了Oracle EBS开发中的多种形式和报表的基本概念与实践技巧。这些知识点不仅对于初学者而言非常重要,对于经验丰富的开发者来说也有一定的参考价值...