在 EBS 中获取 trace 的常用方法有哪些

作者:郑德鼎 约 6 分钟阅读 更新日期:2025-03-02 1 年前更新 标签:ABAP, 开发

白磊

在EBS中获取trace的常用方法有哪些?

原创 白磊 爱记不记的记忆碎片

在EBS中获取trace的常用方法有哪些?

以EBS 12.1.3及以上版本为例介绍常用的获取trace的方法。

一、Trace概括:

Trace主要是用于程序调优与优化,程序Bug调试,程序运行系统情况跟踪等。

Trace文件路径 :不同的数据库版本,trace文件在数据库服务器上的路径不一样,可通过运行以下SQL获取路径:

►11g数据库:

►12C数据库:

Trace文件名 :trace(非并行)文件名通常的格式为:

<instance>_ora_<ospid>_<identifier>.trc

其中:

<instance>:初始化参数db_name指定的数据库实例名称(v$parameter.db_name)。

<ospid>:操作系统进程ID(v$process.spid)

<identifier>:trace文件标识,EBS中常见生成trace方法对应的标识:

1)通过Form或OAF生成的trace文件名中包括当前用户名或截取的当前用户名,例如:JACK。

2)通过并发请求生成的trace文件名中包括当前用户名或截取的当前用户名和请求ID(适用于EBS 12.2),例如:JACK_CR189323

3)通过配置文件方法或SQL*Plus生成的trace文件名中包括设置会话参数TRACEFILE_IDENTIFIER的值(ALTER SESSION SET TRACEFILE_IDENTIFIER=’XXXXX’)

Trace 级别: Form、OAF和并发请求启用trace时需要指定选项,这里其实是选择10046事件的级别。10046事件是Oracle提供的内部事件,通过设置这个事件可以得到Oracle内部执行系统解析、调用、等待、绑定变量等详细的trace信息。trace级别与选项对应说明:

TKPROF工具 :最原始的trace文件可读性较差,除非一些特定的需求需要查看原始文件,一般我们会使用tkprof工具将trace文件格式化,使输出的文件更具有可读性。tkprof的语法和参数可在数据库服务器的命令行输入tkprof回车后查看。

二、获取Trace

1.       Form

1)将配置文件“公用程序:诊断” 相应级别的值设置为“是”

2)打开对应的表单

3)使用菜单选项启用跟踪:帮助>诊断>跟踪>根据需求选择一个跟踪的选项,选择之后会弹出一个trace文件具体路径的会话,记录该文件名,便于后续在服务器上获取。

4)在表单中执行所需操作

5)操作完成后,使用菜单选项禁用跟踪:帮助>诊断>跟踪>不跟踪

6)用启用trace时弹出的路径及文件名在数据库服务器上查找

7)根据具体需求使用tkprof工具生成格式化文件

2.       OAF

1)将配置文件“FND:诊断” 相应级别的值设置为“是”

2)打开对应的OAF界面

3)点击右上角的诊断 >设置跟踪层>开始>根据需求选择一个跟踪的选项>保存,以EBS 12.1.3为例,操作截图如下:

4)在相关OAF界面执行所需操作

5)完成后,通过单击诊断>设置跟踪层>开始>禁用跟踪>保存 来禁用跟踪,保存前记录左侧的Trace ID Number,这些值就是trace文件名中的操作系统进程ID

6)使用上面显示的进程ID、trace文件标识(操作用户名)或时间戳,从trace文件目录获取原始trace文件。

7)根据具体需求使用tkprof工具生成格式化文件

3.       并发程序

1)将配置文件“并发:允许调试” 相应级别的值设置为“是”

2)打开并发程序界面,查找到对应请求,勾选“启用跟踪”,然后保存

3)导航至请求提交界面,选择该请求,输入相关参数,点击“调试选项”按钮,进入网页界面,勾选SQL跟踪,可以根据需求SQL跟踪的选项之后点击保存,然后运行请求

4)请求运行结束后,回到并发程序定义界面,找到对应请求,取消勾选“启用跟踪”,然后保存

5)通过请求编号查询到请求的操作系统进程ID、trace文件标识(适合EBS 12.2:操作用户名、请求编号)或时间戳,从trace文件目录获取原始trace文件。EBS 12.2获取trace文件路径及名称的SQL语句

6)根据具体需求使用tkprof工具生成格式化文件

4.       配置文件

1)将配置文件“初始化 SQL 语句 - 自定义” 相应级别的值设置为

注意

►请指定一个有意义的标识符,方便后面查找。

►如果当前配置文件中存在现有SQL,则应将上述内容与现有SQL合并。

►需要当前用户再次登陆,因为初始化 SQL语句仅在登录时执行。

►不要在地点层使用,否则可能会导致系统挂掉。

►当操作执行完后 从 初始化SQL语句-自定义 配置文件中删除上面的SQL(确保保留所有原始SQL)并保存。

►如果为并发程序启用了SQL跟踪(并发程序定义窗口中填写的=>启用跟踪=>复选框),那么即使在配置文件选项中指定了级别12(绑定和等待),也会生成级别8跟踪(从11.5.10开始)

2)在EBS系统中执行所需操作

3)操作完毕后,将配置文件 初始化 SQL 语句 - 自定义 相应级别的值设置为空

4)使用指定的trace文件标识,从trace文件目录获取原始trace文件。

5)根据具体需求使用tkprof工具生成格式化文件

5.       会话

1)启用trace,指定trace文件标识,设置事件及级别

1)程序代码

2)关闭trace

4)使用指定的trace文件标识或时间戳,从trace文件目录获取原始trace文件。

5)根据具体需求使用tkprof工具生成格式化文件

获取会话的trace时还可以用dbms_monitor.session_trace_enable和dbms_monitor.session_trace_disable来启用和关闭会话的trace。

作者:白 磊

审核:邓金边

编辑:朱思聪

郑德鼎

关于作者:郑德鼎

企业信息化与 SAP 技术顾问,长期专注 SAP ABAP、FI/CO、MM、SD 等模块的技术分享与实战经验总结。查看更多介绍

来源说明:本文内容由「在EBS中获取trace的常用方法有哪些.docx」整理生成,仅用于内部技术分享与学习交流。