失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > paip.提高稳定性---自动检测sleep mysql数据库死连接以及kill

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

时间:2023-05-26 04:53:09

相关推荐

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

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

作者Attilax 艾龙, EMAIL:1466519819@

来源:attilax的专栏

地址:/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());

如果觉得《paip.提高稳定性---自动检测sleep mysql数据库死连接以及kill》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。