spring - 在 WAS 9 上运行的 Spring Boot 应用程序最终无法连接到 DB2 数据库
问题描述
我们有一个 Spring Boot 应用程序,部署到 WAS 9。它使用 JPA 连接。UI 触发一个后台进程,该进程使用 JPA 将数据读取和写入一个 DB2 数据库。应用程序最终遇到数据库连接错误:
Caused by: org.hibernate.exception.JDBCConnectionException: Unable to acquire JDBC Connection
Caused by: java.sql.SQLTransientConnectionException: HikariPool-1 - Connection is not available, request timed out after 120002ms.
数据库保持可用,发生此异常时WAS和DB服务器上的资源在可操作范围内(CPU,RAM,DISK,Heap和Thread count都很好)
最初,应用程序选择 6000 条记录,然后循环并在其他表中创建相关记录。此过程在 WebSphere 之外没有任何问题。在处理了一定数量的记录后会出现此问题。总是在同一个进步点上。如果我们减少所选记录的初始数量,那么我们可以走得更远,但最终应用程序将失败,并出现与上述相同的错误。
我想知道我们在 WAS 服务器上会遇到什么资源限制或约束?
解决方案
闻起来像连接泄漏。或者同时打开和保持的连接太多。
WAS 配置也可能与 BOOT 配置不同。
推荐阅读
- python - 为什么ureg(0)等于1?
- javascript - 在有限制的情况下单击正文时调用 javascript 程序
- laravel - 如何在 laravel 5.7 中限制排队验证和密码重置通知电子邮件
- javascript - SAPUI5 应用程序登录后端并获取数据
- metaprogramming - 如何在 SML 中自动构造有序数据类型
- javascript - 将不存在的变量从 PHP 传递到 JavaScript 时出现语法错误
- vb.net - 如何找到不同类型的 datagridviewcell 或 datagridviewcolumn(运行时创建)
- javascript - Angular 6+ - 使用输入文本过滤器处理关键事件
- node.js - Node.JS 中间件登录
- arrays - 将 Array[Array[String]] 的 RDD 转换为 DataFrame