当数据库关闭时,我的应用程序会卡住。我们的场景是当数据库关闭时我们应该从另一个 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.sql.init.continue-on-error=true
在您的 application.properties 文件中。这应该可以克服 Spring 的快速失败功能并继续启动应用程序。