Btrace 定位数据库连接泄露(初试)

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值