@wenshao ,数据库和应用在同一台机,数据库用mysql5.6.20,已经升级druid到最新的1.0.7版本,访问的是localhost的mysql,放一个晚上不访问,第二天访问就报错了,重启服务正常,错误提示:
[Request processing failed; nested exception is org.hibernate.exception.GenericJDBCException: could not inspect JDBC autocommit mode] with root cause
java.net.SocketException: Software caused connection abort: socket write error
我按照druid的示例配置了最小连接数,以及检测连接打开,但是没用的?请问怎么看druid的保持连接池最小连接的检测日志输出???我看看有没有检测连接
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
我修改了mysql的配置到24小时以上的wait_timeout配置,就没有问题,难道druid的检测没生效么??这是mysql的问题,链接自动关闭了。。。。或者你在链接的url上加入自动重连也行的我已经加了重连的。。也没用。。。怎么写?<preclass="brush:java;toolbar:true;auto-links:false;"><propertyname="validationQuery"value="select'x'"/><propertyname="testWhileIdle"value="true"/><propertyname="testOnBorrow"value="false"/><propertyname="testOnReturn"value="false"/><propertyname="timeBetweenEvictionRunsMillis"value="600000"/>
?useUnicode=true&characterEncoding=utf8&<spanstyle="color:#E53333;">autoReconnect=true
<spanstyle="line-height:1.5;font-size:10pt;">就是红色那段
testWhileIdle=true配置了没?设置了的,<atarget="_blank"rel="nofollow">@xzfx<atarget="_blank"rel="nofollow">@wenshao目前设置如下:
druid.alias=spring-druiddruid.validationQuery=select1fromtbl_user
<spanstyle="font-family:微软雅黑,Verdana,sans-serif,宋体;font-size:14px;line-height:normal;background-color:#FFFFFF;">现在将mysql的wait_timeout加大了就没问题。。
<spanstyle="color:#E53333;"><spanstyle="font-size:14px;line-height:normal;color:#E53333;">我在想要不要在spring加一个task,7个小时自动执行一个简单的查询语句,保持连接的有效性。。。
昨天我打开了druid的监控,也可以看到druid的监控信息:
*获取连接时检测 false 是否在获得连接后检测其可用性
*空闲时检测 true 是否在连接空闲一段时间后检测其可用性
*连接放回连接池时检测 false 是否在连接放回连接池后检测其可用性
看这里的监控信息,testwhileidle是生效了的。
spring的配置:
<preclass="brush:xml;toolbar:true;auto-links:false;"><beanid="dataSource"class="com.alibaba.druid.pool.DruidDataSource"init-method="init"destroy-method="close"><propertyname="url"value="${druid.driver-url}"/><propertyname="username"value="${druid.user}"/><propertyname="password"value="${druid.password}"/><propertyname="initialSize"value="${druid.initialSize}"/><propertyname="minIdle"value="${druid.minIdle}"/><propertyname="maxActive"value="${druid.maxActive}"/><propertyname="maxWait"value="${druid.maxWait}"/><propertyname="timeBetweenEvictionRunsMillis"value="${druid.timeBetweenEvictionRunsMillis}"/><propertyname="minEvictableIdleTimeMillis"value="${druid.minEvictableIdleTimeMillis}"/><propertyname="validationQuery"value="${druid.validationQuery}"/><propertyname="testWhileIdle"value="${druid.testWhileIdle}"/><propertyname="testOnBorrow"value="false"/><propertyname="testOnReturn"value="false"/><propertyname="poolPreparedStatements"value="true"/><!--closeformysql<propertyname="maxPoolPreparedStatementPerConnectionSize"value="20"/>--></bean><spanstyle="font-family:微软雅黑,Verdana,sans-serif,宋体;font-size:14px;line-height:22px;background-color:#FFFFFF;">Softwarecausedconnectionabort:socketwriteerror
<spanstyle="font-size:14px;line-height:22px;">这个提示是连接上了,但是socket写入有问题。
<spanstyle="font-size:14px;line-height:22px;">
同楼主一样,运行一段时间报错CommunicationsException:Communicationslinkfailure
<preclass="brush:java;toolbar:true;auto-links:false;">com.mysql.jdbc.exceptions.jdbc4.CommunicationsException:CommunicationslinkfailureThelastpacketsentsuccessfullytotheserverwas0millisecondsago.Thedriverhasnotreceivedanypacketsfromtheserver.atsun.reflect.GeneratedConstructorAccessor48.newInstance(UnknownSource)~[na:na]atsun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)~[na:1.7.0_67]atjava.lang.reflect.Constructor.newInstance(Constructor.java:526)~[na:1.7.0_67]atcom.mysql.jdbc.Util.handleNewInstance(Util.java:411)~[mysql-connector-java-5.1.17.jar:na]atcom.mysql.jdbc.SQLError.createCommunicationsException(SQLError.java:1116)~[mysql-connector-java-5.1.17.jar:na]atcom.mysql.jdbc.MysqlIO.<init>(MysqlIO.java:344)~[mysql-connector-java-5.1.17.jar:na]atcom.mysql.jdbc.ConnectionImpl.coreConnect(ConnectionImpl.java:2333)~[mysql-connector-java-5.1.17.jar:na]atcom.mysql.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:2370)~[mysql-connector-java-5.1.17.jar:na]atcom.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2154)~[mysql-connector-java-5.1.17.jar:na]atcom.mysql.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:792)~[mysql-connector-java-5.1.17.jar:na]atcom.mysql.jdbc.JDBC4Connection.<init>(JDBC4Connection.java:47)~[mysql-connector-java-5.1.17.jar:na]atsun.reflect.GeneratedConstructorAccessor46.newInstance(UnknownSource)~[na:na]atsun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)~[na:1.7.0_67]atjava.lang.reflect.Constructor.newInstance(Constructor.java:526)~[na:1.7.0_67]atcom.mysql.jdbc.Util.handleNewInstance(Util.java:411)~[mysql-connector-java-5.1.17.jar:na]atcom.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:381)~[mysql-connector-java-5.1.17.jar:na]atcom.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:305)~[mysql-connector-java-5.1.17.jar:na]atcom.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:142)~[druid-0.2.9.jar:0.2.9]atcom.alibaba.druid.filter.stat.StatFilter.connection_connect(StatFilter.java:211)~[druid-0.2.9.jar:0.2.9]atcom.alibaba.druid.filter.FilterChainImpl.connection_connect(FilterChainImpl.java:136)~[druid-0.2.9.jar:0.2.9]atcom.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1271)~[druid-0.2.9.jar:0.2.9]atcom.alibaba.druid.pool.DruidAbstractDataSource.createPhysicalConnection(DruidAbstractDataSource.java:1325)~[druid-0.2.9.jar:0.2.9]atcom.alibaba.druid.pool.DruidDataSource$CreateConnectionThread.run(DruidDataSource.java:1215)~[druid-0.2.9.jar:0.2.9]Causedby:java.net.ConnectException:Connectionrefused:connectatjava.net.TwoStacksPlainSocketImpl.socketConnect(NativeMethod)~[na:1.7.0_67]atjava.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:339)~[na:1.7.0_67]atjava.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:200)~[na:1.7.0_67]atjava.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:182)~[na:1.7.0_67]atjava.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)~[na:1.7.0_67]atjava.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)~[na:1.7.0_67]atjava.net.Socket.connect(Socket.java:579)~[na:1.7.0_67]atjava.net.Socket.connect(Socket.java:528)~[na:1.7.0_67]atjava.net.Socket.<init>(Socket.java:425)~[na:1.7.0_67]atjava.net.Socket.<init>(Socket.java:241)~[na:1.7.0_67]atcom.mysql.jdbc.StandardSocketFactory.connect(StandardSocketFactory.java:257)~[mysql-connector-java-5.1.17.jar:na]atcom.mysql.jdbc.MysqlIO.<init>(MysqlIO.java:294)~[mysql-connector-java-5.1.17.jar:na]...17commonframesomitted00:00:31.875[Druid-ConnectionPool-Create]ERRORc.alibaba.druid.pool.DruidDataSource-createconnectionerror