zoukankan      html  css  js  c++  java
  • paip.提高稳定性自动检测sleep mysql数据库死连接以及kill

    paip.提高稳定性---自动检测sleep mysql数据库死连接以及kill

    作者Attilax  艾龙,  EMAIL:1466519819@qq.com
    来源:attilax的专栏
    地址:http://blog.csdn.net/attilax

    //检测本应用的泄漏数据库过滤
    主要原理是:
    a.在调用conn时,得到conn的localport,存储为一个list
    b.从mysql查询本机器所有的连接
     检测本机的泄漏数据库连接(大概)
    select * from information_schema.processlist where user='root' and host like '192.168.1.1:%' and db='dbname' command='sleep' and time>60 and  state='' and info is NULL  
     
    529    root    atipc:8213    test    Sleep    9932    

    c.判断localport,取得交集..就是本应用发出的conn...
    d.循环调用使用kill id ,释放连接..


    最难点的部分在于得到发出的连接对应的localport...
    解开mysql jdbc5.1.7 驱动源码..把MysqlIO.java以及JDBC4Connection.java加入源码包..这样生成的class会先加载

    修改/src/com/mysql/jdbc/MysqlIO.java,不个默认private的Socket改成public的..
      /**attilax o13,change protect to public The connection to the server */
        public Socket mysqlConnection = null;
        
        
    修改JDBC4Connection.java,    不个默认protect的getIO()改成public的..
            /**
         * attilax o13
         */
        public MysqlIO getIO() throws SQLException {
            

            return super.getIO();
        }

    这样走ok兰..代码中调用...
    JDBC4Connection conx=(JDBC4Connection) con;
    MysqlIO mio=conx.getIO();
    System.out.println(mio.mysqlConnection.getLocalPort());

        


  • 相关阅读:
    HDU
    P2458 [SDOI2006]保安站岗[树形dp]
    POJ 2155 Matrix[树状数组+差分]
    P1281 书的复制[二分]
    【清北学堂】广州OI学习游记
    P1736 创意吃鱼法[二维dp]
    P2161 [SHOI2009]会场预约[线段树/树状数组+二分/STL]
    P1972 [SDOI2009]HH的项链[离线+树状数组/主席树/分块/模拟]
    P1273 有线电视网[分组背包+树形dp]
    windows下安装MySQL
  • 原文地址:https://www.cnblogs.com/attilax/p/15199344.html
Copyright © 2011-2022 走看看