• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

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

mysql 搞代码 4年前 (2022-01-09) 14次浏览 已收录 0个评论

//////检测本应用的泄漏数据库过滤 主要原理是: a.在调用conn时,得到conn的localport,存储为一个list b.从mysql查询本机器所有的连接 检测本机的泄漏数据库连接(大概) select * from information_schema.processlist where user=root and host like 192.168.1

//////检测本应用的泄漏数据库过滤
主要原理是:
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改成来&源gao@dai!ma.com搞$代^码%网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());


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:paip.提高稳定性—自动检测sleepmysql数据库死连接以及kill
喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址