【发布时间】:2018-07-13 10:48:23
【问题描述】:
当我在容器中运行war文件时,它显示为服务器端的连接断开(默认空闲超时为8h)导致异常(根本原因:连接已关闭/上一次成功打包到服务器是0ms 前发送或表示 >8h 的值。这些异常在重新启动容器之前无法恢复。
问题 1) 在 build.grade 中添加 jdbc-tomcat 池作为依赖项时
运行时“org.apache.tomcat:tomcat-jdbc”
不尝试重新连接到断开连接的“除主”数据源(在数据源下方)。无论这些属性如何:
数据源:
汇集:真
jmxExport: 真
driverClassName: com.mysql.jdbc.Driver
方言:org.hibernate.dialect.MySQL5InnoDBDialect
特性:
initialSize: 2 # 连接池大小
最大活动:10
分钟空闲:0
最大空闲:10
removeAbandonedTimeout: 120 # 石英作业使用的免费连接
删除放弃:真
验证查询:选择 1
testOnBorrow: 真
最大等待:10000
最大年龄:600000
timeBetweenEvictionRunsMillis:5000
minEvictableIdleTimeMillis: 60000
验证查询超时:3
验证间隔:15000
testWhileIdle:真
测试返回:假
jdbcInterceptors:连接状态
defaultTransactionIsolation:java.sql.Connection.TRANSACTION_READ_COMMITTED
就 grails/tomcat 组合中的池而言,完全支持“其他”DS。
所以,我从 gradle 中删除了 tomcat-jdbc,并在每个 url 之后放置 ?autoReconnect=true。 不过,某些属性会产生影响。 特性: initialSize: 2 # 连接池大小 最大活动:20 空闲时间:2 最大空闲:20 上面的值导致,在使用 20 次连接(顺序,而不是并行)的闭包内进行 20 次调用后,第 21 个失败。在整个过程中,观察 mariadb 端的打开连接有零个或一个并发 conns。 删除它工作的属性后。为什么这个值会影响 conn 池未加载?
Tomcat 带有自己的 tomcat-jdbc jar,这可能会有所作为。 是否需要在 build.grade 中将 type 更改为“provided”,就像 tomcat 本身一样?
问题 2) 是网络发现,即也在这个论坛中,而且 grails 文档本身也指向 https://grails.org/deployment。 doc 在部署到那里记录的容器时提到了警告......但是当我注册时,我没有收到确认电子邮件并且页面转发到https://grails.org/unauthorized。在我看来,注册好像被破坏了。是否有电子邮件联系方式 - 找不到。
我简直不敢相信我花了这么长时间才能在 Web 容器中拥有一个普通的池。在旧容器版本中也可以正常工作
【问题讨论】:
标签: sqlexception grails3 tomcat8.5 tomcat-jdbc