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

org.hibernate.exception.jdbcConnectionException:无法获取JDBC连接

程英资
2023-03-14

这是我的服务层代码

@Override
  @Transactional
  public void updateMessageStatus(String status, String sid, String errorCode) throws NotFoundException {

    OutgoingMessage outgoingMessage = outgoingMessageRepository.findByResourceSid(sid);
    if (outgoingMessage == null) {
      throw new NotFoundException(ErrorCode.MESSAGE_NOT_FOUND, sid);
    }


    outgoingMessage.setStatus(status);
    outgoingMessage.setUpdatedTime(Calendar.getInstance().getTime());

    outgoingMessageRepository.save(outgoingMessage);
  }

共有1个答案

毕宏盛
2023-03-14

当应用程序空闲的时间长于服务器的连接超时时间时,通常会发生这种情况。

因此,如果连接空闲的时间超过了这个超时值,服务器将丢弃它。默认情况下,Hibernate使用其内部数据库连接池库,
保持连接打开以便以后重用。Hibernate重用服务器已经丢弃的空闲连接,因此我们得到JDBCConnectionExceptionis错误。

我注意到的是,即使使用以下数据库自动重新连接设置,在这种情况下也不应该起作用。

 spring.datasource.validation-query=select 1
 spring.datasource.testOnBorrow=true
 spring.datasource.hikari.maximum-pool-size=10.
 类似资料:
  • 我有一个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。 更新: 原因:

  • 我正在使用spring hibernate开发一个应用程序,如果我使用的是199.892.2.345这样的数据库,我就可以连接到该数据库并执行cud操作,但是如果我将其更改为spring config中的Vinayaka.cloudapp.net,111这样的云数据库,我会得到下面的错误,下面是我正在使用的spring config文件, 错误

  • 我正在运行一个带有Hibernate和Spring数据的Spring启动应用程序。我有以下方法: 当我第四次运行此方法时,我得到了无法获取 JDBC 连接异常。我怀疑当我调用存储过程“callEncrypt”时,Hibernate在作业完成后不会释放连接,因为如果我删除该行,应用程序就可以完美运行,无法手动关闭连接,因为Hibernate正在处理事务(并且没有理由这样做),所以我已经卡住了一段时间

  • 当我使用Japser报告生成报告时,我的Spring Boot工作正常。 我面临的问题是应用程序抛出Hibernate异常: 无法获取JDBC连接 在我多次生成报告后,我得到了这个错误。