Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

有解决方案吗? #4188

Open
safestar opened this issue Mar 4, 2021 · 6 comments · May be fixed by #6143
Open

有解决方案吗? #4188

safestar opened this issue Mar 4, 2021 · 6 comments · May be fixed by #6143

Comments

@safestar
Copy link

safestar commented Mar 4, 2021

有解决方案吗?

Caused by: java.sql.SQLException: connection disabled
at com.alibaba.druid.pool.DruidPooledConnection.checkStateInternal(DruidPooledConnection.java:1162)
at com.alibaba.druid.pool.DruidPooledConnection.checkState(DruidPooledConnection.java:1147)
at com.alibaba.druid.pool.DruidPooledConnection.getAutoCommit(DruidPooledConnection.java:735)
at sun.reflect.GeneratedMethodAccessor272.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at com.atomikos.jdbc.AtomikosConnectionProxy.invoke(AtomikosConnectionProxy.java:141)
at com.sun.proxy.$Proxy159.getAutoCommit(Unknown Source)
at org.mybatis.spring.transaction.SpringManagedTransaction.openConnection(SpringManagedTransaction.java:83)
at org.mybatis.spring.transaction.SpringManagedTransaction.getConnection(SpringManagedTransaction.java:68)
at org.apache.ibatis.executor.BaseExecutor.getConnection(BaseExecutor.java:336)
at org.apache.ibatis.executor.SimpleExecutor.prepareStatement(SimpleExecutor.java:85)
at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:62)
at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:324)
at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:156)
at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:109)
at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:83)
at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:148)
at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:141)
at sun.reflect.GeneratedMethodAccessor281.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:433)
... 82 common frames omitted

Originally posted by @myVictor in #2404 (comment)

@wenshao
Copy link
Member

wenshao commented Mar 6, 2021

连接关闭后重用连接了

@varyuan
Copy link

varyuan commented Mar 26, 2021

配置个检查连接是否可用的sql看看可不可以解决

@734456387
Copy link

有解决方案吗,被折腾好久了

@734456387
Copy link

连接关闭后重用连接了

配置检查连接也不行,Druid 使用的是 1.2.8
spring.datasource.druid.maindb.driverClassName=com.mysql.cj.jdbc.Driver
spring.datasource.druid.maindb.url=jdbc:mysql://xxxxxx/xxxx?characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&autoReconnect=true&useSSL=false&allowMultiQueries=true&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=GMT%2B8&nullCatalogMeansCurrent=true&allowPublicKeyRetrieval=true
spring.datasource.druid.maindb.username=xxxxx
spring.datasource.druid.maindb.password=xxxxx
spring.datasource.druid.maindb.initialSize=5
spring.datasource.druid.maindb.minIdle=5
spring.datasource.druid.maindb.maxActive=80
spring.datasource.druid.maindb.maxWait=120000
spring.datasource.druid.maindb.timeBetweenEvictionRunsMillis=1000
spring.datasource.druid.maindb.minEvictableIdleTimeMillis=30000
spring.datasource.druid.maindb.validationQuery=SELECT 1 FROM DUAL
spring.datasource.druid.maindb.validationQueryTimeout=1
spring.datasource.druid.maindb.testOnBorrow=false
spring.datasource.druid.maindb.testOnReturn=false
spring.datasource.druid.maindb.testWhileIdle=true
spring.datasource.druid.maindb.keepAlive=true
spring.datasource.druid.maindb.socketTimeout=6000
spring.datasource.druid.maindb.poolPreparedStatements=true

@wj20190913
Copy link

解决了吗?

@linghengqian
Copy link

  • I have opened Add property closeConnOnFatalError to match HikariCP's behavior #6143 .
  • By setting closeConnOnFatalError to false, Druid's behavior will align with HikariCP, that is, the connection will no longer be closed when a fatal error defined by Druid occurs. This solves a series of controversies surrounding Hibernate, Flyway, and ShardingSphere. This is a huge regret introduced from 882470b 7 years ago.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

6 participants