在RHEL服务器上运行WAR文件时遇到Hikari池错误

Hikari Pool Error encountered when running WAR file on RHEL server

提问人:Sara 提问时间:10/30/2023 最后编辑:Mark RotteveelSara 更新时间:11/17/2023 访问量:28

问:

我为Windows机器上的Spring Boot应用程序生成了一个WAR文件。当我使用 java -jar 命令运行 WAR 文件时,它在我的机器上运行良好(有或没有 application.properties)。该WAR文件有一个嵌入式Tomcat服务器。

当我尝试在 Red Hat Linux 服务器上部署包含 application.properties 文件的 WAR 文件时,出现以下错误。

我在 Red Hat Linux 服务器上安装了 Java 17.0.2 和 MySQL 8.0.35(Community Server-GPL)。

我能够从 Linux 命令行连接到 MySQL。我还能够在我生成WAR文件的同一Spring Boot应用程序中使用标准JDBC连接连接到MySQL。

如果我在没有application.properties文件的情况下运行应用程序,它在Linux上运行良好。如果我使用以下代码行将 application.properties 文件添加到 resources 文件夹并在 Linux 上运行 WAR 文件,则会出现以下错误,该错误与 Hikaripool 有关。

我的 pom.xml 文件使用 2.7.0 Spring Boot 入门父级。当我检查Maven依赖项时,我看到HikariCP-4.0.3.jar被拉入。

spring.datasource.url=jdbc:mysql://localhost:3306/heal
spring.datasource.username=root
spring.datasource.password=kkkkooo
spring.jpa.properties.hibernate.dialect = org.hibernate.dialect.MySQL5InnoDBDialect

linux 服务器上的错误:

2023-10-29 17:27:19.686  INFO 3457 --- [           main] com.zaxxer.hikari.HikariDataSource       : HikariPool-1 - Starting...
2023-10-29 17:27:32.413  INFO 3457 --- [           main] com.zaxxer.hikari.HikariDataSource       : HikariPool-1 - Start completed.
2023-10-29 17:27:35.747  INFO 3457 --- [           main] org.hibernate.dialect.Dialect            : HHH000400: Using dialect: org.hibernate.dialect.MySQL5InnoDBDialect
2023-10-29 17:29:06.707 ERROR 3457 --- [onnection adder] com.zaxxer.hikari.pool.HikariPool        : HikariPool-1 - Error thrown while acquiring connection from data source

com.mysql.cj.jdbc.exceptions.CommunicationsException: Communications link failure

如果您想查看 pom.xml 文件,请告诉我。我检查了生成的WAR文件,它使用的是mysql-connector-java-8.0.29 jar。如果您需要查看 WAR 文件的 WEB-INF/lib 文件夹中所有 jar 版本的屏幕截图,请告诉我。

java mysql spring-boot war

评论

0赞 Sara 10/31/2023
我不知道这个问题是否会被重新打开。经过几个小时的调试,我今天发现了这个问题。这是一个内存问题。
0赞 Sara 10/31/2023
我在 AP South 的 AWS t2 微型实例上运行 WAR 文件。尽管据说 t2 micro 有 1 Gig 的内存,但当我在 Linux 上运行“free”命令时,我总共只分配了大约 756MB。其中,MySQL占用了超过500MB。因此,我没有足够的内存可用于我的 Java 应用程序,但 Hikari 池错误让我相信这是一个数据库问题。我切换到 t2 小型实例,我的应用程序现在运行良好。

答: 暂无答案