【问题标题】:Spring boot actuator trying to make DB connectionSpring Boot 执行器尝试建立数据库连接
【发布时间】:2020-04-13 12:33:44
【问题描述】:

我有一个使用 jhipster 编写的 Spring Boot 应用程序,不久前交给我们的项目。它一直在 WebLogic 下运行,我正在将其移至 Tomcat9,为云迁移做好准备。我发现当我访问 actuator 的 "health" 时,应用程序返回 {"status" : "DOWN"} 并尝试连接到数据库。

我不希望它尝试连接。我尝试查看应用程序,但没有发现似乎导致此问题的设置。不过,我敢肯定它就在某个地方。

有人知道我应该去哪里看吗?

抛出以下异常:

2020-04-13 07:41:32.003 ERROR 16156 --- [nio-8080-exec-9] o.a.tomcat.jdbc.pool.ConnectionPool      : Unable to create initial connections of pool.

java.sql.SQLRecoverableException: IO Error: The Network Adapter could not establish the connection
        at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:743)
        at oracle.jdbc.driver.PhysicalConnection.connect(PhysicalConnection.java:666)
        at oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:32)
        at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:566)
        at org.apache.tomcat.jdbc.pool.PooledConnection.connectUsingDriver(PooledConnection.java:310)
        at org.apache.tomcat.jdbc.pool.PooledConnection.connect(PooledConnection.java:203)
        at org.apache.tomcat.jdbc.pool.ConnectionPool.createConnection(ConnectionPool.java:732)
        at org.apache.tomcat.jdbc.pool.ConnectionPool.borrowConnection(ConnectionPool.java:664)
        at org.apache.tomcat.jdbc.pool.ConnectionPool.init(ConnectionPool.java:479)
        at org.apache.tomcat.jdbc.pool.ConnectionPool.<init>(ConnectionPool.java:154)
        at org.apache.tomcat.jdbc.pool.DataSourceProxy.pCreatePool(DataSourceProxy.java:118)
        .
        .
        .

【问题讨论】:

  • 为什么要部署在tomcat中?您是否考虑过使用嵌入式 tomcat,因为这是 JHipster 团队推荐的部署模型? JHipster 代码不会触发从执行器健康执行 db 的连接尝试,它看起来更像是 Simon Martinelli 所说的 Spring Boot 默认行为;见docs.spring.io/spring-boot/docs/current/reference/html/…
  • 最终它将转到 OCP。部署到Tomcat只是为了确保它可以在Tomcat下运行,与它无关。下一步是将其放入 Docker,然后转到 Openshift。
  • Docker 和可执行 jar 配合得非常好
  • 这只是我们流程中的一个步骤。 Docker 团队会做他们需要做的任何事情。我只需要让它在Tomcat中运行。 :-)

标签: spring-boot jhipster spring-boot-actuator


【解决方案1】:

添加执行器框架时启用数据库健康检查。

您可以使用此属性禁用数据库健康检查:

management.health.db.enabled=false

在此处阅读有关所有执行器属性的更多信息: https://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#actuator-properties

【讨论】:

    猜你喜欢
    • 2015-02-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-23
    相关资源
    最近更新 更多