gpt4 book ai didi

tomcat - 取消部署 war 文件后数据库池连接关闭

转载 作者:行者123 更新时间:2023-12-04 13:35:33 27 4
gpt4 key购买 nike

从历史上看,我们在部署更新后执行完整的 Tomcat 停止/重新启动。我们正在切换到使用 Tomcat 管理器并重新部署新版本的 war 文件,在某些情况下还使用 CodeHaus Cargo 部署带有版本后缀(例如 mywar.war##1234)的 war 文件。虽然 HikariCP 过去工作顺利,但我们现在在 Maven 和 Cargo 执行部署/重新部署后看到 fatal error 。错误是:
[致命] java.sql.SQLException: HikariDataSource HikariDataSource (HikariPool-1) 已关闭。
我尝试将 singleton="true"添加到 GlobalResources 和每个 JNDI 中,但这并没有解决问题。
注意:我们的 JNDI 数据源在 GlobalNamingResources 中的 ~tomcat/conf/server.xml 中定义,并且它们在每个 war 文件的 context.xml 中被引用
这是 JNDI 配置。另外,要使用的正确 MySQL wait_timeout 值是多少?当前设置为 60(60 秒),略高于我们 jdbc 设置中的 maxLifetime(55000 毫秒或 55 秒)

    <Resource name="jdbc/global_mysql" auth="Container" 
factory="com.zaxxer.hikari.HikariJNDIFactory"
type="javax.sql.DataSource"
minimumIdle="1"
singleton="true"
maximumPoolSize="3"
maxLifetime="55000"
connectionTimeout="300000"
driverClassName="com.mysql.cj.jdbc.Driver"
dataSource.implicitCachingEnabled="true"
dataSource.user="<user>"
dataSource.password="<password>"
dataSource.cachePrepStmts="true"
dataSource.prepStmtCacheSize="250"
dataSource.prepStmtCacheSqlLimit="2048"
dataSource.useServerPrepStmts="true"
dataSource.useLocalSessionState="true"
dataSource.rewriteBatchedStatements="true"
dataSource.cacheResultSetMetadata="true"
dataSource.cacheServerConfiguration="true"
dataSource.elideSetAutoCommits="true"
dataSource.maintainTimeStats="false"
jdbcUrl="jdbc:mysql://<host>:3306/db"
/>

最佳答案

尝试删除 driverClassName来自 server.xml。这是documentation

<!-- driverClassName: Class name for the old mm.mysql JDBC driver is
org.gjt.mm.mysql.Driver - we recommend using Connector/J though.
Class name for the official MySQL Connector/J driver is com.mysql.jdbc.Driver.
-->

我有相同的 fatal error 连接并通过删除 driverClassName 解决。我的环境是:
  • JVM Azul Zulu 11
  • Tomcat :7
  • J/连接器:5.1
  • MySQL:5.7

  • 希望能帮助到你。

    关于tomcat - 取消部署 war 文件后数据库池连接关闭,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62269795/

    27 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com