【发布时间】:2026-02-04 08:35:01
【问题描述】:
我有一个微服务,经过几个小时的工作时间后无法连接到数据库并出现以下错误
检索数据库元数据时出错;嵌套异常是 org.springframework.jdbc.support.MetaDataAccessException: Error while extracting DatabaseMetaData;嵌套异常是 com.microsoft.sqlserver.jdbc.SQLServerException: The connection is closed。
如果我重新部署它,它会起作用,几个小时或几天后错误就会恢复。
这是我的数据库连接配置类(我使用2个不同的数据源)
@Getter
@Configuration
public class ApiConfiguration {
@Autowired
private Environment env;
@Value("${spring.datasource.url}")
private String legacyURL;
@Value("${spring.datasource.username}")
private String legacyUsername;
@Value("${spring.datasource.password}")
private String legacyPassword;
@Value("${spring.datasource.driverClassName}")
private String legacyDriverClassName;
@Bean(name = "legacyDataSource")
@Primary
public JdbcTemplate getLegacyJdbcTemplate() {
DataSource ds = DataSourceBuilder.create()
.url(legacyURL)
.username(legacyUsername)
.password(legacyPassword)
.driverClassName(legacyDriverClassName)
.build();
return new JdbcTemplate(ds);
}
}
application.properties
# Legacy spring.datasource.url=jdbc:sqlserver://${DB_SERVER};PortNumber=${DB_PORT};failoverPartner=${DB_FAILOVER_SERVER};databaseName=${DB_NAME};applicationName=questions-and-answers-api;
spring.datasource.username=${DB_USER}
spring.datasource.password=${DB_PASSWORD}
spring.datasource.driverClassName=com.microsoft.sqlserver.jdbc.SQLServerDriver
【问题讨论】:
标签: database spring-boot connection