【问题标题】:How to set oracle db connection timeout in spring Boot application如何在 Spring Boot 应用程序中设置 Oracle 数据库连接超时
【发布时间】:2018-02-22 13:33:45
【问题描述】:

我必须在 Spring Boot 应用程序中设置 Oracle DB 连接超时。如何设置?

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

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

【问题讨论】:

    标签: java database oracle spring-boot jdbc


    【解决方案1】:

    你可以设置为:

        @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
    

    【讨论】:

    • 红移数据库连接超时有什么想法吗?
    • 嗨 @Nobita,Redshift 只是 PostgreSQL。这将工作spring.datasource.hikari.connectionTimeout=10000
    【解决方案2】:

    如果你使用的是 spring data jpa,试试这个spring.jpa.properties.hibernate.c3p0.timeout 5000

    【讨论】:

    • 应用程序(从连接池)获取连接的超时时间与JDBC/连接超时时间无关。
    猜你喜欢
    • 2019-08-25
    • 2019-05-25
    • 1970-01-01
    • 1970-01-01
    • 2018-09-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-07
    相关资源
    最近更新 更多