【发布时间】:2015-12-05 05:55:35
【问题描述】:
我刚刚迁移了我的数据库以支持从 mysql 到 mariadb 的 2 节点集群数据库的复制。数据库托管在不同的域上并通过 ELB 访问,当我将应用程序指向其中一个节点时,应用程序工作正常,但是当我使用 ELB url 连接数据库时,它会随机波动并经常显示以下错误
Communication Link Failure
could not execute query; nested exception is org.hibernate.exception.JDBCConnectionException: could not execute query
这是我的数据源配置:-
dataSource {
shard = false
pooled = true
driverClassName = "com.mysql.jdbc.Driver"
dbCreate = "update" // one of 'create', 'create-drop','update'
properties {
initialSize=5
maxActive=50
minIdle=5
maxIdle=25
maxWait = 10000
maxAge = 10 * 60000
timeBetweenEvictionRunsMillis=5000
minEvictableIdleTimeMillis=60000
validationQuery="SELECT 1"
validationInterval=15000
testWhileIdle=true
testOnBorrow=true
testOnReturn=false
jdbcInterceptors = "ConnectionState"
defaultTransactionIsolation = java.sql.Connection.TRANSACTION_READ_COMMITTED
}
任何人都可以找出问题所在并提供可能的解决方案
【问题讨论】:
-
您能否尝试增加 DataSourceConfig.groovy 中的 maxWait 和 maxAge,因为有时它可能会花费比平时更多的时间。
-
已经尝试了所有可能的组合
-
如何在 DataSourceConfig 设置中添加一个 autoReconnect 属性。它的默认值为 false。您可能希望将其设置为 true 并查看是否可以解决您的问题。
-
已经有了,我在 jdbc:mysql://
/ ?zeroDateTimeBehavior=convertToNull&autoReconnect=true 中添加了这个
标签: grails datasource mariadb amazon-elb galera