我的应用程序卡在 HikariPool-1 上 - 在数据库关闭时启动

问题描述 投票:0回答:1

当数据库关闭时,我的应用程序会卡住。我们的场景是当数据库关闭时我们应该从另一个 api 获取数据。该应用程序暂停

2023-07-26 13:00:25 [scheduling-1] INFO (c.z.h.HikariDataSource:110) - HikariPool-1 - 开始...

我的房产:

spring:
    profiles: dv1
datasource:
    jdbc-url: ${odsdb.dbname}
    username: ${odsdb.userid}
    password: ${odsdb.passwd}
    driver-class-name: oracle.jdbc.OracleDriver
    test-on-borrow: true  
    hikari:
        connectionTimeout: 30000
        idleTimeout: 60000
        maxLifetime: 180000
        maximumPoolSize: 30
        poolName: ns-hirakiri-pool
        connectionTestQuery: SELECT 1
        initialization-fail-fast: false

@Bean
    @ConfigurationProperties(prefix = "datasource")
    public DataSource dataSource() {
        DataSource dataSource = null;
        try {
            dataSource = DataSourceBuilder.create().build();
        } catch (Exception e) {
            LOG.info("Unable to get DataSource:", e);
        }
        return dataSource;
    }

public Connection getOracleDbConnection() {
        Connection con = null;
        try {
            DataSource dataSource = (DataSource) AppContext.getContext().getBean(AddressConstants.DATA_SOURCE);
            con = dataSource.getConnection();
            log.info("In getOracleDbConnection Connection:"+con);
        } catch (SQLException e) {
            log.info("Failed to acquire a database connection: {}", e.getMessage());
        } catch (Exception se) {
            log.info("Exception in getOracleDbConnection", se);
        }
        return con
    }

我们的应用程序未启动。即使我将初始化失败快速设置为“假”,它仍然会卡住。您能提供任何帮助吗?

即使数据库已关闭,如何继续超越 hikaridatasource 设置?

spring spring-boot hikaricp
1个回答
0
投票

我相信你可以设置属性

spring.sql.init.continue-on-error=true

在您的 application.properties 文件中。这应该可以克服 Spring 的快速失败功能并继续启动应用程序。

© www.soinside.com 2019 - 2024. All rights reserved.