Spring에 commons-dbcp2 쓸 때, BasicDataSource 문제
- 서버 내릴 때 아래와 같은 메세지가 발생
원인
- Spring이 먼저 DataSource 객체의 JMX 정보를 unregist 한다.
- BasicDataSource에서도 close 메소드가 호출되어 이미 내려간 JMX 정보를 내리려고 한다.
- 그과정에서 에러 발생
JMX(Java Management Extensions) : 실행중인 어플리케이션의 상태를 모니터링 하고 설정 변경을 할 수 있게 해주는 API
해결
- 가장 간단한 해결 방법은 BasicDataSource의 close 메소드를 호출하지 않도록 한다.
@Bean(destroyMethod = "getLogWriter")
@Primary
public DataSource dataSource() {
return dataSourceProperties().initializeDataSourceBuilder().build();
}