使用oracle的系统跟踪功能调试java程序

来源:互联网 发布:淮安淘宝运营培训班 编辑:程序博客网 时间:2024/06/06 05:39
今天在学习配置appfuse连接oracle数据库时,程序报错:org.dbunit.dataset.NoSuchTableException,为查找错误,使用了oracle的整个数据库系统跟踪功能......

使用oracle的系统跟踪功能调试java程序

今天在学习配置appfuse连接oracle数据库时,在执行设置程序ant db-load时程序报错:org.dbunit.dataset.NoSuchTableException,由于每次执行的会话不固定,为查找错误,使用了oracle的整个数据库系统跟踪功能,步骤如下:
 1:使用system登陆数据库


 2:设置全库跟踪,执行以下语句:
alter system set events '10046 trace name context forever,level 1';
其中的level 1是跟踪级别,其他级别如下:
level 1:跟踪SQL语句,等于sql_trace=true
level 4:包括变量的详细信息
level 8:包括等待事件
level 12:包括绑定变量与等待事件

注意:如果要设置级别  〉1,必须要先设置级别意,再设置高级别:

SQL> alter system set events '10046 trace name context forever,level 1';

System altered

SQL> alter system set events '10046 trace name context forever,level 12';

System altered


 3:运行ant db-load


 4:到数据库的udump,根据时间找到跟踪文件


 5:直接察看跟踪文件,或使用tkprof(在dos下输入tkprof有说明)分析后再看:
  tkprof 跟踪文件 输出文件

6:关闭跟踪,用如下语句:
alter system set events '10046 trace name context off';
关闭数据库后,同时关闭了全局跟踪


本次跟踪结果:

SELECT NULL AS table_cat,
       o.owner AS table_schem,
       o.object_name AS table_name,
       o.object_type AS table_type,
       NULL AS remarks
  FROM all_objects o
  WHERE o.owner LIKE 'MYTEST' ESCAPE '/'
    AND o.object_name LIKE '%' ESCAPE '/'
    AND o.object_type IN ('xxx', 'TABLE')
  ORDER BY table_type, table_schem, table_name

需要以后再继续分析

参考资料:http://www.chq.name/content/view/110/59/

0 0
原创粉丝点击