当我使用Japser报告生成报告时,我的Spring Boot工作正常。
我面临的问题是应用程序抛出Hibernate异常:
无法获取JDBC连接
在我多次生成报告后,我得到了这个错误。
1 running delayed actions on {type: MASTER, group: null, band: 0}
2018-09-20 14:27:55.536 DEBUG 46148 --- [ XNIO-2 task-27]
n.s.j.engine.fill.JRBaseFiller : Fill 1: ended
2018-09-20 14:27:55.536 DEBUG 46148 --- [ XNIO-2 task-27]
n.s.j.engine.fill.JRFillDataset : Fill 1: closing query executer
2018-09-20 14:27:55.539 DEBUG 46148 --- [ XNIO-2 task-27]
n.s.j.engine.export.JRPdfExporter : glyph renderer block DEVANAGARI
2018-09-20 14:27:55.539 DEBUG 46148 --- [ XNIO-2 task-27]
n.s.j.engine.export.JRPdfExporter : glyph renderer block BENGALI
2018-09-20 14:27:55.539 DEBUG 46148 --- [ XNIO-2 task-27]
n.s.j.engine.export.JRPdfExporter : glyph renderer block TELUGU
2018-09-20 14:27:55.539 DEBUG 46148 --- [ XNIO-2 task-27]
n.s.j.engine.export.JRPdfExporter : glyph renderer block TAMIL
2018-09-20 14:27:55.539 DEBUG 46148 --- [ XNIO-2 task-27]
n.s.j.engine.export.JRPdfExporter : glyph renderer block GUJARATI
2018-09-20 14:27:55.539 DEBUG 46148 --- [ XNIO-2 task-27]
n.s.j.engine.export.JRPdfExporter : glyph renderer block KANNADA
2018-09-20 14:27:55.539 DEBUG 46148 --- [ XNIO-2 task-27]
n.s.j.engine.export.JRPdfExporter : glyph renderer block MALAYALAM
2018-09-20 14:27:55.539 DEBUG 46148 --- [ XNIO-2 task-27]
n.s.j.engine.export.JRPdfExporter : glyph renderer block ORIYA
2018-09-20 14:27:55.539 DEBUG 46148 --- [ XNIO-2 task-27]
n.s.j.engine.export.JRPdfExporter : glyph renderer block GURMUKHI
2018-09-20 14:27:55.539 DEBUG 46148 --- [ XNIO-2 task-27]
n.s.j.engine.export.JRPdfExporter : glyph renderer block SINHALA
2018-09-20 14:27:55.539 DEBUG 46148 --- [ XNIO-2 task-27]
n.s.j.engine.export.JRPdfExporter : glyph renderer block TIBETAN
2018-09-20 14:27:55.539 DEBUG 46148 --- [ XNIO-2 task-27]
n.s.j.engine.export.JRPdfExporter : glyph renderer block KHMER
2018-09-20 14:28:25.549 WARN 46148 --- [ XNIO-2 task-27]
o.h.engine.jdbc.spi.SqlExceptionHelper : SQL Error: 0, SQLState: null
2018-09-20 14:28:25.550 ERROR 46148 --- [ XNIO-2 task-27]
o.h.engine.jdbc.spi.SqlExceptionHelper : HikariPool-1 - Connection is not
available, request timed out after 30000ms.
2018-09-20 14:28:25.556 ERROR 46148 --- [ XNIO-2 task-27]
c.n.xx.aop.logging.LoggingAspect : Exception in
com.xx.xx.web.rest.GrueResource.generateRapportGrue() with cause =
'org.hibernate.exception.JDBCConnectionException: Unable to acquire JDBC
Connection' and exception = 'Could not open JPA EntityManager for
transaction; nested exception is
org.hibernate.exception.JDBCConnectionException: Unable to acquire JDBC
Connection'
org.springframework.transaction.CannotCreateTransactionException: Could not
open JPA EntityManager for transaction; nested exception is
org.hibernate.exception.JDBCConnectionException: Unable to acquire JDBC
Connection
当我使用 jasper 报告时,我确实每 2 天都会遇到同样的问题,并最终通过正确的理解修复了它,因为当我们使用基于查询的报告时,我们有责任关闭我们自己的数据源的连接,以便它返回到池中并可供下次使用。你必须处理多件事 1-从数据源获取连接
DataSourceUtils.getConnection(ds);
2-在任何情况下都必须关闭数据源连接:最好在最终块中关闭它,以便在异常情况下连接不会保持打开状态。
finally{closeConnection(con,dataSource);}
public void closeConnection(Connection con,DataSource ds) {
if (con != null) {
DataSourceUtils.releaseConnection(con, ds);
}
}
3-应用程序中的更改。属性文件
spring.datasource.hikari.connectionTimeout=30000
spring.datasource.hikari.idleTimeout=600000
spring.datasource.hikari.maxLifetime=1800000
spring.datasource.hikari.maximumPoolSize=30
我有一个Hibernate和光数据源的Spring Boot项目。如果我使用注入的SessionFactory对象来获取会话对象,几天后,我会发现与数据库操作相关的任何方法都有这样的异常(只有重新启动才能解决这个问题): 似乎手动使用的会话使此问题。(我有类似的项目,具有相同的配置和功能,但没有注入SessionFactory和Session...我根本没有这样的问题) 应用程序. yaml: 数
我们的项目中有Spring boot/Hibernate/MYSQL应用程序,并使用Hikari作为连接池。服务启动几分钟后,我们发现以下问题: org.springframework.web.util.嵌套异常:请求处理失败;嵌套异常org.springframework.dao.DataAccessResourceFailureExc0019:无法获取JDBC连接;嵌套异常org.hibern
我通过动态创建具有以下属性的数据源来连接mysql数据库,它工作正常,但过了一段时间后,它一直给我错误“无法获取JDBC连接”。 它被托管在AWS和Tomcat环境中。DB是AWS的RDS。 更新: 原因:
我正在运行一个带有Hibernate和Spring数据的Spring启动应用程序。我有以下方法: 当我第四次运行此方法时,我得到了无法获取 JDBC 连接异常。我怀疑当我调用存储过程“callEncrypt”时,Hibernate在作业完成后不会释放连接,因为如果我删除该行,应用程序就可以完美运行,无法手动关闭连接,因为Hibernate正在处理事务(并且没有理由这样做),所以我已经卡住了一段时间
输出:-