• 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());

        


  • 相关阅读:
    索引
    convert 时间转换
    SQL中的case when then else end用法
    SVN安装图解
    dos 命令
    阿里云服务器相关知识
    mvc知识应用
    MVC分页
    mvc系统过滤器
    .net 接口
  • 原文地址:https://www.cnblogs.com/attilax/p/15199344.html
Copyright © 2020-2023  润新知