1.搭建Btrace环境,下载Btrace bin 包 下载地址: http://kenai.com/projects/btrace/downloads/directory
2.修改环境变量
修改该文件的java——home为你本机java环境的变量如下
3.cmd 命令行 :jps
查到 你的程序运行的 pid
4.编写 Btrace 脚本例如:
package com.test;
import com.sun.btrace.annotations.BTrace;
import com.sun.btrace.annotations.Export;
import com.sun.btrace.annotations.Kind;
import com.sun.btrace.annotations.OnExit;
import com.sun.btrace.annotations.OnMethod;
import com.sun.btrace.annotations.Return;
import com.sun.btrace.annotations.Self;
import com.sun.btrace.annotations.Location;
import static com.sun.btrace.BTraceUtils.*;
@BTrace public class BTraceConnection {
@Export private static long openedCount;
@Export private static long closedCount;
@OnMethod(clazz="/.*PoolingDataSource/", method="getConnection", location=@Location(Kind.RETURN))
public static void m(@Return Object obj) {
openedCount++;
println("One connection is opened!");
println(obj);
print("Total opened connection:");
println(openedCount);
Threads.jstack();
}
@OnMethod(clazz="/.*PoolableConnection/", method="close")
public static void d(@Self Object obj) {
closedCount++;
println("One connection is closed!");
println(obj);
print("Total closed connection:");
println(closedCount);
Threads.jstack();
}
@OnExit
public static void f(){
print("Total opened connection:");
println(openedCount);
print("Total closed connection:");
println(closedCount);
Threads.jstack();
}
}
5:cmd 执行命令:
btrace [-I <include-path>] [-p <port>] [-cp <classpath>] <pid> <btrace-script> [<args>]
示例:
btrace 1200 BTraceConnection.java
6:完成
PS:
linux btrace 环境变量设置
1.
#: export btrace="btrace/bin"
2.
vi 修改 path path:$btrace
3.执行一下命令使生效
#:source /etc/profile
4.赋予权限:
#:chmod 777 btrace