当前位置: 首页 > 知识库问答 >
问题:

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

毛声
2023-03-14

从历史上看,我们会在耗尽更新后完全停止/重启Tomcat。我们将切换到使用Tomcat管理器并重新部署战争文件的新版本,在某些情况下,还将使用CodeHaus Cargo部署带有版本后缀(例如mywar.war##1234)的战争文件。虽然HikariCP在过去工作顺利,但在Maven和Cargo进行部署/重做后,我们现在看到了致命的错误。错误是:

[致命]爪哇。sql。SQLException:HikariDataSource HikariDataSource(HikariPool-1)已关闭。

我已经尝试将singleton=“true”添加到GlobalResources和每个JNDI中,但这并没有解决问题。

注意:我们的JNDI数据源在~tomcat/conf/server中定义。GlobalNamingResources中的xml,它们在每个war文件的上下文中被引用。xml

这是JNDI配置。另外,要使用的正确MySQL等待超时值是多少?当前设置为60(60秒),略高于jdbc设置中的maxLifetime(55000ms或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"
/>

共有1个答案

欧阳勇
2023-03-14

尝试从服务器中删除drivercassnamexml。这是文件

<!-- 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.
    -->

我有相同的致命错误连接,并通过删除driverClassName解决。我的环境是:

  1. JVM蓝色祖鲁11
  2. Tomcat:7
  3. J/连接器:5.1
  4. MySQL:5.7

希望能有帮助。

 类似资料:
  • 我使用UCanAccess连接到临时访问文件以读取数据,之后我想删除这些临时文件。但是,我总是得到。 这是我的代码 为什么失败?

  • null 提前谢了。

  • 我试图将WAR文件加载到Tomcat 7中,并使用eclipse启动或停止服务器。 我将war文件粘贴到TOMCAT_HOME/webapps文件夹中,启动了服务器。 服务器启动正常,我收到下面的控制台消息。 但当我试图访问我的应用程序时,它给了我错误404,找不到文件。 我查看了TOMCAT_HOME/webapps应用程序,发现了我的war文件和一个同名文件夹——“JavaServerFace

  • 本文向大家介绍关于数据库连接池Druid使用说明,包括了关于数据库连接池Druid使用说明的使用技巧和注意事项,需要的朋友参考一下 根据综合性能,可靠性,稳定性,扩展性,易用性等因素替换成最优的数据库连接池。 Druid:druid-1.0.29 数据库 Mysql.5.6.17 替换目标:替换掉C3P0,用druid来替换 替换原因: 1、性能方面 hikariCP>druid>tomcat-j

  • 问题内容: 我们有一个已部署的WAR文件,但是我们想更改数据库设置。我该怎么做呢?我在IDE中打开WAR文件,大约有2-3个地方具有数据库设置。更改它的正确方法是什么? 谢谢 问题答案: 应当将tomcat实例设置为通过JNDI提供数据源。