我目前正在我的应用程序上使用Grails-2.2.4,最近我遇到了一个奇怪的问题。在我的产品战中,应用程序经常在一段时间后失去mysql连接,并且应用程序需要重新启动连接才能再次工作,并且在另外几天内可以正常工作。我正在使用tomcat jdbc-pool:7.0.47,这里是我的数据源属性
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
minEvictableIdleTimeMillis=1800000
timeBetweenEvictionRunsMillis=1800000
numTestsPerEvictionRun=3
validationQuery="SELECT 1"
validationInterval=15000
testWhileIdle=true
testOnBorrow=true
testOnReturn=true
jdbcInterceptors = "ConnectionState"
defaultTransactionIsolation = java.sql.Connection.TRANSACTION_READ_COMMITTED
}
}在其他应用程序中,我有相同的配置,并且它一直在运行,没有任何问题。
发布于 2015-10-12 07:35:55
尝试在数据源URL中添加autoreconnect参数:
dataSource {
url = "jdbc:mysql://localhost:3306/mydb?autoReconnect=true"
}更新
另一个原因可能是TCP防火墙在空闲一段时间后放弃连接。因此,您需要修改TCP超时设置。关于如何在亚马逊EC2 http://docs.aws.amazon.com/redshift/latest/mgmt/connecting-firewall-guidance.html上实现这一点,我给出了一个相关的文档。你可以为你的提供者这样做,这应该是一样的。
https://stackoverflow.com/questions/33075007
复制相似问题