제 질문을 확인하고 답변을 주셨는지요
- 작성자 :
- 이*민
- 작성일 :
- 2023-10-23 17:18:42
- 조회수 :
- 655
- 구분 :
- 개발환경 / 4.1
- 진행상태 :
- 완료
Q
다중 DB 설정을 질문드린게 아니고,
Datasource 에 다중 DB를 설정했을 경우 발생하는 오류에 대해서 문의 드린 사항입니다.
왜 엉뚱하게 다중 DB 설정에 대한 답변을 주셨는지요?
Multi datasource의 경우 타 프로젝트에서 충분히 많이 구성하여 사용했던 경험이 있었던 바이고
Boot Batch Template 프로젝트를 사용하기 전까지는 한번도 문제 없이 구성을 해왔던 바입니다.
context-batch-datasource에 2개의 DB환경을 구성하였고, job에 각각의 datasource를 Writer와 Reader에 구성한 상태입니다.
그런데 해결할 수 없는 오류가 발생하여 문의를 드린거구요.
아래는 제가 저번주에 문의 드린 내용입니다.
문의 내용과 첨부파일을 꼭 확인하시고 답변 부탁드립니다.
참고로 다른 버전(3.8, 3.5)에서 동일한 소스와 구성으로 테스트 했을 경우 정상 동작합니다.
4.1에서 Boot Batch Template 이용하면 아래와 같은 오류가 떴습니다.
-------------------------------------------------------------------------------------------------------------------------------
Boot Batch Template Project 를 이용하여
DB (SQLite) to DB (Oracle) 배치를 구성하려고 합니다.
Web 서비스 방식이며 JdbcTojdbc 형태의 job으로 등록하여 실행하니 다음과 같은 오류가 발생하였습니다.
[오류내용]
... 생략 ...
nested exception is org.springframework.beans.factory.NoUniqueBeanDefinitionException: No qualifying bean of type 'javax.sql.DataSource' available: expected single matching bean but found 2: dataSource-sqlite,dataSource-oracle
Parameter 0 of method batchDataSourceInitializer in org.springframework.boot.autoconfigure.batch.BatchAutoConfiguration$DataSourceInitializerConfiguration required a single bean, but 2 were found:
- dataSource-sqlite: defined in class path resource [egovframework/batch/context-batch-datasource.xml]
- dataSource-oracle: defined in class path resource [egovframework/batch/context-batch-datasource.xml]
multi datasource 형태로 배치를 구성하여 발생한 오류 같은데
각 각의 datasource를 중복된 bean으로 인식하는 문제를
xml형태로 구성되어 어찌 해결해야 할지 모르겠습니다.
각 설정파일을 첨부하오니, 바쁘시겠지만 검토 부탁드립니다.
감사합니다.
Datasource 에 다중 DB를 설정했을 경우 발생하는 오류에 대해서 문의 드린 사항입니다.
왜 엉뚱하게 다중 DB 설정에 대한 답변을 주셨는지요?
Multi datasource의 경우 타 프로젝트에서 충분히 많이 구성하여 사용했던 경험이 있었던 바이고
Boot Batch Template 프로젝트를 사용하기 전까지는 한번도 문제 없이 구성을 해왔던 바입니다.
context-batch-datasource에 2개의 DB환경을 구성하였고, job에 각각의 datasource를 Writer와 Reader에 구성한 상태입니다.
그런데 해결할 수 없는 오류가 발생하여 문의를 드린거구요.
아래는 제가 저번주에 문의 드린 내용입니다.
문의 내용과 첨부파일을 꼭 확인하시고 답변 부탁드립니다.
참고로 다른 버전(3.8, 3.5)에서 동일한 소스와 구성으로 테스트 했을 경우 정상 동작합니다.
4.1에서 Boot Batch Template 이용하면 아래와 같은 오류가 떴습니다.
-------------------------------------------------------------------------------------------------------------------------------
Boot Batch Template Project 를 이용하여
DB (SQLite) to DB (Oracle) 배치를 구성하려고 합니다.
Web 서비스 방식이며 JdbcTojdbc 형태의 job으로 등록하여 실행하니 다음과 같은 오류가 발생하였습니다.
[오류내용]
... 생략 ...
nested exception is org.springframework.beans.factory.NoUniqueBeanDefinitionException: No qualifying bean of type 'javax.sql.DataSource' available: expected single matching bean but found 2: dataSource-sqlite,dataSource-oracle
Parameter 0 of method batchDataSourceInitializer in org.springframework.boot.autoconfigure.batch.BatchAutoConfiguration$DataSourceInitializerConfiguration required a single bean, but 2 were found:
- dataSource-sqlite: defined in class path resource [egovframework/batch/context-batch-datasource.xml]
- dataSource-oracle: defined in class path resource [egovframework/batch/context-batch-datasource.xml]
multi datasource 형태로 배치를 구성하여 발생한 오류 같은데
각 각의 datasource를 중복된 bean으로 인식하는 문제를
xml형태로 구성되어 어찌 해결해야 할지 모르겠습니다.
각 설정파일을 첨부하오니, 바쁘시겠지만 검토 부탁드립니다.
감사합니다.
환경정보
-
- OS 정보 : Windows10
- 표준프레임워크 버전 : 4.1
- JDK(JRE) 정보 : 16
- WAS 정보 : tomcat
- DB 정보 : oracle
- 기타 환경 정보 :
A
안녕하세요.
표준프레임워크 센터입니다.
해당 오류의 원인은 작성하신 것처럼
다중으로 구성한 DataSource를 중복된 Bean으로 인식해서 발생하는 문제로
첨부해주신 로그
에서 확인할 수 있듯이 @Qualifier를 통해 특정한 Bean으로 인식할 수 있도록
각각 상황에 맞게 주입하여 사용하시면 됩니다.
감사합니다.
표준프레임워크 센터입니다.
해당 오류의 원인은 작성하신 것처럼
다중으로 구성한 DataSource를 중복된 Bean으로 인식해서 발생하는 문제로
첨부해주신 로그
Action: Consider marking one of the beans as @Primary, updating the consumer to accept multiple beans, or using @Qualifier to identify the bean that should be consumed |
각각 상황에 맞게 주입하여 사용하시면 됩니다.
감사합니다.