【问题标题】:Grails 3.3.3 war deployed on tomcat 8.5 issue with closed jdbc connectionGrails 3.3.3 战争部署在 Tomcat 8.5 上,关闭 jdbc 连接问题
【发布时间】: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


    【解决方案1】:

    找到了。这是由于三个问题:

    1. 必须提供 tomcat-jdbc 的 gradle 依赖类型,而不是编译以避免冲突(tomcat 安装的 lib 部分)

    2. 在 application.yml(以及 application.yml 的本地文件重载内容)中,“dataSource:”下方用于池化的属性未被其他数据源继承(在锚点“dataSources:”下方定义)

    3. 如果操作未在 removeAbandonedTimeout 内完成:60 (秒),连接被撕掉,触发了 连接失败异常。增加了价值。不幸的是 由于 removeAdbandoned 设置为 true,因此不可见,但并非如此 已放弃日志。

    【讨论】:

      猜你喜欢
      • 2019-03-21
      • 2015-04-22
      • 1970-01-01
      • 2020-10-16
      • 2023-03-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多