【发布时间】: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
我必须在 Spring Boot 应用程序中设置 Oracle DB 连接超时。如何设置?
在 WebLogic 服务器中,我可以使用以下属性进行设置:
oracle.jdbc.ReadTimeout=50000
oracle.net.CONNECT_TIMEOUT=20000
【问题讨论】:
标签: java database oracle spring-boot jdbc
你可以设置为:
@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
【讨论】:
spring.datasource.hikari.connectionTimeout=10000。
如果你使用的是 spring data jpa,试试这个spring.jpa.properties.hibernate.c3p0.timeout 5000
【讨论】: