p6spy我的理解就是:p6spy应用的数据源给劫持了,应用操作数据库其实在调用p6spy的数据源,p6spy
劫持到需要执行的sql或者hql之类的语句之后,他自己去调用一个realDatasource,再去操作数据库,
只要劫持到那些sql之后,能干的事情就很多了。
p6spy 可以输出日志到文件中、控制台、或者传递给 Log4j,而且还能配搭 SQL Profiler 或
IronTrackSQL 图形化监控 SQL 语句,监测到哪些语句的执行是耗时的,逐个优化。关于与 SQL
Profiler 或 IronTrackSQL 的配合使用可参数文件的链接。
p6spy在sourceforge上下载:http://sourceforge.net/projects/p6spy/?source=dlp
p6spy的weblogic配置:
1、首先通过上面链接下载P6spy的jar包
2、把这些jar包放到weblogic的domian的lib目录,例如D:\bea\user_projects\domains\base_domain1\lib将
3、由于weblogic的应用都需要配置数据源(rcu),所以会在domian的config目录下生成对应的jdbc的XML的配置,我们需要把数据源jdbc的驱动更改成p6spy的驱动。
下面是具体代码:
<?xml version='1.0' encoding='UTF-8'?> <jdbc-data-source xmlns="http://www.bea.com/ns/weblogic/jdbc-data-source" xmlns:sec="http://www.bea.com/ns/weblogic/90/security" xmlns:wls="http://www.bea.com/ns/weblogic/90/security/wls" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.bea.com/ns/weblogic/jdbc-data-source http://www.bea.com/ns/weblogic/jdbc-data-source/1.0/jdbc-data-source.xsd"> <name>数据源的名称</name> <jdbc-driver-params> <url>jdbc:oracle:thin:@192.168.0.23:1521:数据库实例</url> <driver-name>com.P6Driver</driver-name> <!-- 把上面这行改成p6的驱动即可--> <properties> <property> <name>用户名</name> <value>表空间</value> </property> </properties> <password-encrypted>数据库密码</password-encrypted> </jdbc-driver-params> <jdbc-connection-pool-params> <initial-capacity>1</initial-capacity> <max-capacity>15</max-capacity> <capacity-increment>1</capacity-increment> <test-table-name>SQL SELECT 1 FROM DUAL</test-table-name> <statement-cache-size>10</statement-cache-size> <statement-cache-type>LRU</statement-cache-type> </jdbc-connection-pool-params> <jdbc-data-source-params> <jndi-name>nstc/jdbc/WebData</jndi-name> <global-transactions-protocol>TwoPhaseCommit</global-transactions-protocol> </jdbc-data-source-params> </jdbc-data-source>
4、发布执行weblogic的应用,当应用需要调用数据源访问数据库时,即可被p6拦截sql语句,并在自己的p6控制台展示相对应的sql,便于调错。
P6spy是一个很好用的开源的sql拦截监控工具,通过解析sql语句可以让我们更清晰的分析错误,从而高效的开发程序。它能支持目前大多数的orm及其他主流框架,SSH,SSI,springMVC等,主流的应用服务器也都支持,如tomcat,weblogic,jboss,WebSphere等。这次是在weblogic上面配置的,只是对p6的初步理解,后面会继续研究在其他服务器和框架上的配置。
转载于:https://blog.51cto.com/yongguang/1685845