Mycat-Server icon indicating copy to clipboard operation
Mycat-Server copied to clipboard

java.nio.channels.ClosedChannelException: null

Open 3721518 opened this issue 3 years ago • 6 comments

问题描述: 通过mycat连接执行简单select查询,会显示正在查询,一直不返回消息,等待一会关掉查询再打开一个查询窗口就又恢复正常。 使用的mycat版本: Mycat-server-1.6.7.6-release-20210908145008-linux.tar.gz dataHost配置参数: maxCon="1000" minCon="50" balance="1" writeType="0" dbType="mysql" dbDriver="native" switchType="2"
截图信息: image

3721518 avatar Sep 30 '21 08:09 3721518

没见过这个情况

junwen12221 avatar Sep 30 '21 08:09 junwen12221

我也是这样

zrxjava avatar Feb 10 '22 08:02 zrxjava

image 定位到是NIOSocketWR下的write0方法报错出现的异常,在wirte0方法里面 channel.write(buffer) 的时候由于 channel关闭导致无法写入,但是又没有给客户端响应导致客户端无限等待下去,在程序中用 jdbc 连接也会出现这个问题

这个问题能解决下吗,用navicat连接mycat,随便执行一条sql,然后一直不操作,大约过五分钟左右,再去操作,就会失去响应

zrxjava avatar Feb 10 '22 09:02 zrxjava

@zrxjava @3721518 老哥,解决了么?

star4fu avatar Jun 24 '22 03:06 star4fu

@zrxjava @3721518 老哥,解决了么? 我的解决方法是: 1、mycat使用版本:mycat-1.6.7.6-20220119212903。 2、在schema.xml文件中把驱动改为native<dbDriver="native">。 3、加大空闲超时时常idleTimeout=1800000。 4、或参考官方客户端连接配置: https://github.com/MyCATApache/Mycat-Server/wiki/%E5%BC%80%E5%8F%91%E7%AF%87%EF%BC%9A1.0-%E5%AE%A2%E6%88%B7%E7%AB%AF%E8%BF%9E%E6%8E%A5%E9%85%8D%E7%BD%AE

3721518 avatar Jun 27 '22 08:06 3721518

@3721518 thanks a lot! 1、目前我用的版本是Mycat-server-1.6.7.6-release-20211221142218,之前没有这个问题,为了修复log4j漏洞,替换了log4j的几个lib包,然后出现了这个问题。 2、native驱动配置没问题; 3、我这边先修改空闲超时时常idleTimeout试下,但是我怀疑可能跟这个没关系,因为修复漏洞前是没有这个问题的。 实在不行我升级到1.6.7.6最新版本试下。 再次感谢!

star4fu avatar Jun 27 '22 08:06 star4fu