datasource 커넥션
- 작성자 :
- 개*자
- 작성일 :
- 2021-04-09 09:12:54
- 조회수 :
- 3,806
- 구분 :
- 개발환경 / 3.9
- 진행상태 :
- 완료
Q
Datasource.xml 에서 DB2개를 정의하고 사용중입니다.( 오라클 , MSSQL)
Transaction.xml 에서 aop를 같은 루트(impl)로 걸어놓고 사용중이다 보니 한쪽 DB가 죽으면 전체 어플리케이션이 죽는 현상이 발생하여
MSSQL 쪽 transaction.xml설정을 삭제하였더니 어플리케이션은 동작하고 mssql 쪽 DB를 참조할 때만 exception이 발생하는 걸로 확인했습니다.
질문드립니다.
Q1) 현재 Impl 단에서는 EgovAbstractServiceImpl를 extends 받고 인터페이스된 서비스를 implements받게 되었습니다. Impl단에는 별도로 sqlSession 를 참조하는 부분이 정의되어 있지는 않는데 Datasource.xml에 정의하면 자동으로 DB를 참조해서 쓰는건지 아니면 별도로 정의해놓은 부분이 있는지 문의드립니다.
Q2) transaction.xml에서 mssql부분을 제외하고 사용하려고 하는데 전자정부프레임워크상 문제는 없는지 문의드립니다.
transaction.xml 에 정의된 Exception Rollback처리 부분과 aop point cut 정의된 부분을 없애고 별도로 mssql를 사용하는 impl단에서 @Transaction처리를 할려고합니다.
답변부탁드립니다.
Transaction.xml 에서 aop를 같은 루트(impl)로 걸어놓고 사용중이다 보니 한쪽 DB가 죽으면 전체 어플리케이션이 죽는 현상이 발생하여
MSSQL 쪽 transaction.xml설정을 삭제하였더니 어플리케이션은 동작하고 mssql 쪽 DB를 참조할 때만 exception이 발생하는 걸로 확인했습니다.
질문드립니다.
Q1) 현재 Impl 단에서는 EgovAbstractServiceImpl를 extends 받고 인터페이스된 서비스를 implements받게 되었습니다. Impl단에는 별도로 sqlSession 를 참조하는 부분이 정의되어 있지는 않는데 Datasource.xml에 정의하면 자동으로 DB를 참조해서 쓰는건지 아니면 별도로 정의해놓은 부분이 있는지 문의드립니다.
Q2) transaction.xml에서 mssql부분을 제외하고 사용하려고 하는데 전자정부프레임워크상 문제는 없는지 문의드립니다.
transaction.xml 에 정의된 Exception Rollback처리 부분과 aop point cut 정의된 부분을 없애고 별도로 mssql를 사용하는 impl단에서 @Transaction처리를 할려고합니다.
답변부탁드립니다.
환경정보
-
- OS 정보 : 윈도우서버
- 표준프레임워크 버전 : 3.9
- JDK(JRE) 정보 : 1.8
- WAS 정보 : tomcat9.0
- DB 정보 : oracle 12c
- 기타 환경 정보 :
A
안녕하세요.
표준프레임워크센터 입니다.
트랜잭션이 2개의 DB에 걸려있어서
하나가 죽으면 전체 업무에 영향을 주는것으로 보입니다.
답변1)
EgovAbstractServiceImpl은 서비스 단이고
extends EgovAbstractMapper를 상속받는 부분을 확인하셔야 할듯 합니다.
답변2)
트랜잭션 설정을 각각 DB에 별도로 걸수는 있겠지만
이런경우 2개의 DB 모두 인서트 해야 하는 업무의 경우
트랜잭션 처리가 안되고
오류가 발생하는것은 피할수 없을듯 합니다.
또한 예상치 못한 사이드이펙트도 우려 됩니다.
따라서 문제를 우회하는것보다
한쪽 DB가 죽는 원인을 파악하여
조치를 취하는게 안전하다고 판단됩니다.
감사합니다.
표준프레임워크센터 입니다.
트랜잭션이 2개의 DB에 걸려있어서
하나가 죽으면 전체 업무에 영향을 주는것으로 보입니다.
답변1)
EgovAbstractServiceImpl은 서비스 단이고
extends EgovAbstractMapper를 상속받는 부분을 확인하셔야 할듯 합니다.
답변2)
트랜잭션 설정을 각각 DB에 별도로 걸수는 있겠지만
이런경우 2개의 DB 모두 인서트 해야 하는 업무의 경우
트랜잭션 처리가 안되고
오류가 발생하는것은 피할수 없을듯 합니다.
또한 예상치 못한 사이드이펙트도 우려 됩니다.
따라서 문제를 우회하는것보다
한쪽 DB가 죽는 원인을 파악하여
조치를 취하는게 안전하다고 판단됩니다.
감사합니다.