Oracle Forms 12c追踪配置:如何显示过程/触发器起止时间?
Oracle Forms 12c 追踪显示起止时间的解决方案
1. 补启用时间戳相关追踪事件
仅开启事件65、66不足以生成起止时间,需额外启用事件10132(专门为Forms执行记录打时间戳)或事件10046(级别8/12),二者均能为追踪日志添加精确时间戳:
- 事件10132:与65、66完全兼容,直接为过程、触发器的起止记录绑定时间戳
- 事件10046级别8:除时间戳外,还能捕获绑定变量和等待事件,适合深度性能排查
配置方式二选一:
- 修改Linux环境下Forms的启动脚本(如
default.env),添加一行:FORMS_TRACE_EVENTS="65,66,10132" - 直接在Oracle Enterprise Manager中修改Forms实例的追踪配置,勾选上述额外事件
2. 开启追踪日志的时间戳输出
检查Forms配置文件formsweb.cfg中的traceoptions参数,确保包含timestamp选项:
traceoptions=timestamp,process_id,thread_id
该参数会强制每条追踪记录带上时间戳,与事件65、66生成的过程/触发器日志形成对应关系。
3. 用tkprof解析追踪文件(替代strings工具)
无需依赖frmxlate,Oracle自带的tkprof工具可直接将.trc文件转换为可读性极强的格式,自动整理时间、耗时等信息:
tkprof your_trace_file.trc parsed_output.txt explain=your_username/your_password@your_database sort=fchela
生成的parsed_output.txt会明确列出每个过程、触发器的开始/结束时间、总耗时,定位问题更高效。
4. 验证配置生效
重启Forms实例后,重新操作表单生成新的.trc文件,此时用strings查看会看到类似以下的带时间戳记录:
[2024-05-20 14:32:45.123] START: PROCEDURE XX_TEST_PROC
[2024-05-20 14:32:46.456] END: PROCEDURE XX_TEST_PROC (DURATION: 1333 ms)
内容的提问来源于stack exchange,提问作者Yuriy Andzheyevskiy
相关产品推荐
相关产品推荐

