【问题标题】:Could not open JPA EntityManager无法打开 JPA EntityManager
【发布时间】:2018-03-21 05:53:24
【问题描述】:

这个错误我已经有一段时间了,我不知道是什么原因造成的。

问题是它只发生在生产中。我已将应用程序部署到由 Beanstalk 管理的 AWS EC2 容器。每隔几个小时就会出现一次错误;不知道多少钱。

在网上搜索后发现了一些来源,我将数据源配置更改为:

  # Configuration needed to keep the JPA entity open
  # Used from here: https://github.com/GluuFederation/message-consumer/issues/4
  # This would be enough: https://github.com/netgloo/spring-boot-samples/blob/master/spring-boot-mysql-springdatajpa-hibernate/src/main/resources/application.properties
  datasource:
    tomcat:
      initial-size: 34
      max-active: 377
      max-idle: 233
      min-idle: 89
      time-between-eviction-runs-millis: 34000
      min-evictable-idle-time-millis: 55000
      validation-query: SELECT 1
      validation-interval: 4000
      test-on-borrow: true
      remove-abandoned: true
      remove-abandoned-timeout: 55

我已经检查过了,我可以使用 Workbench 直接连接到数据库,并且我做了一些查询没有问题。

AWS 容器的运行状况也很好(据我所知,它是绿色的 :))

对此有什么想法吗?

【问题讨论】:

  • 您得到的实际异常是什么?包括堆栈跟踪。还请包括您在 Stacktrace 中提到的代码。
  • 启用test-while-idle 旁边的test-on-borrow 在应用程序启动时清除断开的连接。另请参阅stackoverflow.com/questions/30451470/…
  • @M.Deinum 一旦我合并了我正在处理的当前分支,我将尝试一下。我会让你知道情况如何。我也在想我应该换成平木吗?

标签: java jpa spring-boot amazon-ec2 spring-data


【解决方案1】:

在尝试了一些事情并失败之后。我决定改用平木

  datasource:
    type: com.zaxxer.hikari.HikariDataSource
    hikari:
      minimum-idle: 5
      maximum-pool-size: 10
      idle-timeout: 30000
      connection-test-query: SELECT 1

使用这种配置,我没有遇到任何麻烦。

我正在使用 Springboot Hiraki 示例 repo 提供的属性

https://github.com/netgloo/spring-boot-samples/blob/master/spring-boot-mysql-springdatajpa-hibernate/src/main/resources/application.properties

【讨论】:

    猜你喜欢
    • 2017-07-25
    • 2019-10-12
    • 2018-04-19
    • 1970-01-01
    • 1970-01-01
    • 2023-03-26
    • 1970-01-01
    • 1970-01-01
    • 2019-05-09
    相关资源
    最近更新 更多