如何在spring Boot应用程序中设置oracle db connection timeout

时间:2017-09-13 18:14:25

标签: java database oracle spring-boot jdbc

我必须在Spring Boot应用程序中设置Oracle DB连接超时。我该怎么设置它?

在WebLogic服务器中,我可以使用以下属性进行设置:

oracle.jdbc.ReadTimeout=50000
oracle.net.CONNECT_TIMEOUT=20000 

2 个答案:

答案 0 :(得分:0)

如果您使用的是弹簧数据jpa

,请尝试此spring.jpa.properties.hibernate.c3p0.timeout 5000

答案 1 :(得分:0)

您可以将其设置为:

    @Bean
    public HikariDataSource dataSource() {

        HikariDataSource ds = new HikariDataSource();
        ds.setDriverClassName(springDatasourceDriverClassName);
        ds.setJdbcUrl(springDatasourceUrl);
        ds.setUsername(springDatasourceUsername);
        ds.setPassword(springDatasourcePassword);
        ds.setDataSourceProperties(oracleProperties());

        return ds;
    }

    Properties oracleProperties() {
        Properties properties = new Properties();

        properties.put("oracle.net.CONNECT_TIMEOUT", 10000);
        properties.put("oracle.net.READ_TIMEOUT", 10000);
        properties.put("oracle.jdbc.ReadTimeout", 10000);

        return properties;
    }

如果不想为DataSource配置bean(大多数人会这样做),则可以在application.properties中配置网络超时属性:

spring.datasource.hikari.data-source-properties.oracle.net.CONNECT_TIMEOUT=10000
spring.datasource.hikari.data-source-properties.oracle.net.READ_TIMEOUT=10000
spring.datasource.hikari.data-source-properties.oracle.jdbc.ReadTimeout=10000