[Java基础知识] [Java高级编程] [Java网络编程] [J2EE]
 [开发工具] [中间件] [Web开发] [J2ME] [JSP] [Web开发]
 [Java与数据库] [Java开源] [设计模式] [在线文档]
下载中心
[Java教程] [开发工具] [代码源码]
[Oracle数据库] [视频教程]

Oracle数据库连接池下如何跟踪终端会话 (2)

发布时间:2008-4-17 23:03:11     来源:赛迪网    作者:赛迪网

Oracle 10g增强

在10g中增强了跟踪,引入了DBMS_MONITOR包,这个包可以使跟踪更加容易。

当前,跟踪自己的会话只需要执行以下命令:

execute dbms_monitor.session_trace_enable(waits=>true, binds=>true)

跟踪其他的数据库会话:

execute dbms_monitor.session_trace_enable(, waits=>true, binds=>true)

在跟踪连接池的会话中,DBMS_MONITOR.CLIENT_ID_TRACE_ENABLE过程特别有用,其允许跟踪一个给定客户端标识符的会话的所有活动。如果多个数据库会话为一个客户端标识符服务,该过程将写入多个跟踪文件。

另一个重要过程是DBMS_MONITOR.SERV_MOD_ACT_TRACE_ENABLE,其允许跟踪service_name, module_name, action_name确定的特定模块,如果应用程序进行了恰当的组织,该过程将比较有用。

另一个提高是trcsess工具,其用来将DBMS_MONITOR创建的多个跟踪文件结合在一起:

trcsess [output=] [session=] [clientid=] \

[service=] [action=] [module=] \

为全部跟踪文件,然后我们可以应用TKPROF到新的文件。

举例说明:

在实际的使用过程中,通过在页面开始时设置会话标识符:

PROCEDURE set_ora_session_id (p_session_id IN VARCHAR2)

IS

BEGIN

dbms_session.set_identifier (p_session_id);

END set_ora_session_id;

在页面结束时清除会话标识符:

PROCEDURE clear_ora_session_id

IS

BEGIN

dbms_session.clear_identifier;

END clear_ora_session_id;

然后我们就可以在会话活动期间进行跟踪:

exec dbms_monitor.client_id_trace_enable('20558307491688865029', waits=> true, binds=> true);

会话退出后关闭监控:

exec dbms_monitor.client_id_trace_disable ('20558307491688865029');

你可以通过DBA_ENABLED_TRACES查看所有正启用的跟踪。(责任编辑:卢兆林)


发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
  相关文章
   
  • 上一篇文章:

  •  
  • 下一篇文章: 没有了
  •        
      网友评论
      精彩友情推荐  

  • 关于我们 | 版权申明 | 网站地图 | 广告指南 | 友情链接 | 联系我们
  • Copyright (C) 2003-2008 Javafan.net, All Rights Reserved 版权所有 Java爱好者 京ICP备05010995号