2개 이상의 Datasource 설정시 질문 에 대한 추가 질문
- 작성자 :
- 장*주
- 작성일 :
- 2010-10-15 15:52:34
- 조회수 :
- 2,674
- 구분 :
- 실행환경
- 진행상태 :
- 완료
Q
어제질문에대한 2개 이상의 Datasource 설정시 질문 에 대한 추가 질문 입니다...
저한테 설명해 주신점에 대한 궁금점은 모두 풀렸습니다...
그런데 2번에 대한 답변이 없으셔서요...
답변해 주신걸 보면 2번에 질문에 대한 내용을 잘못 알아 들으신듯 한데요..
2번 질문은 다변해주신 3번의 대한 사항과는 약간 차이가 있는데요...
하나의 Service에서 여러 DAO를 호출할 수 있고, 여러 DAO가 여러 DataSource를 호출하는 방식은 3번에대한 질문인데... 그건 의문이 풀렸구요...
하나의 Service1에서 여러 DAO를 호출하고, 여러 DAO가 하나의 DataSource1를 호출 하고 있고, 다시 다른 하나의 Service2에서 여러 DAO를 호출하고, 여러 DAO가
하나의 DataSource2를 호출 할경우에 어떤식으로 트랜잭션을 걸어야 하는지에
대한 질문 입니다...
각, Service1, Service2 별로 따로 트랜잭션 메니져를 만들고, advice를 설정
하고, 각각 따로 AOP를 걸어야 하는건지 아니면 다른 방법이 있는지 여쭤 보는 겁니다.
만약 따로따로 해야 한다면 각각 따로 AOP를 걸때 expression="execution(* egovframework.rte.sample..impl.*Impl.*(..))"
두개의 다른 Service1, Service2 가 충돌이 나지 않게 하기 위해서 패키지명을
다르게 해서 저 expression을 각각 따로 잘 정의해야 할거 같은데....
제가 생각하고 있는게 맞는건지 궁금합니다... 아니면 다른 방법이 있는건지요???
저한테 설명해 주신점에 대한 궁금점은 모두 풀렸습니다...
그런데 2번에 대한 답변이 없으셔서요...
답변해 주신걸 보면 2번에 질문에 대한 내용을 잘못 알아 들으신듯 한데요..
2번 질문은 다변해주신 3번의 대한 사항과는 약간 차이가 있는데요...
하나의 Service에서 여러 DAO를 호출할 수 있고, 여러 DAO가 여러 DataSource를 호출하는 방식은 3번에대한 질문인데... 그건 의문이 풀렸구요...
하나의 Service1에서 여러 DAO를 호출하고, 여러 DAO가 하나의 DataSource1를 호출 하고 있고, 다시 다른 하나의 Service2에서 여러 DAO를 호출하고, 여러 DAO가
하나의 DataSource2를 호출 할경우에 어떤식으로 트랜잭션을 걸어야 하는지에
대한 질문 입니다...
각, Service1, Service2 별로 따로 트랜잭션 메니져를 만들고, advice를 설정
하고, 각각 따로 AOP를 걸어야 하는건지 아니면 다른 방법이 있는지 여쭤 보는 겁니다.
만약 따로따로 해야 한다면 각각 따로 AOP를 걸때 expression="execution(* egovframework.rte.sample..impl.*Impl.*(..))"
두개의 다른 Service1, Service2 가 충돌이 나지 않게 하기 위해서 패키지명을
다르게 해서 저 expression을 각각 따로 잘 정의해야 할거 같은데....
제가 생각하고 있는게 맞는건지 궁금합니다... 아니면 다른 방법이 있는건지요???
A
안녕하세요.. 장선주님..
DataSourceTransactionManager는 하나의 DataSource만이 지정 가능합니다.
따라서 두개의 DataSourceTransactionManager를 만드시고..
AOP의 advice를 두 개로 분리하시면 됩니다. (tx:advice가 transaction-manager를 지정하기 때문)
또 advice가 2개이기 때문에 pointcut도 2개가 됩니다.
이때 expression을 동일하게 정의할 수 있으나.. 하나의 bean이 처리될 때에.. 2개의 AOP가 걸리기 때문에.. 바람직하진 않을 것 같습니다.
따라서 말씀하신 것 처럼 패키지를 분리하셔서 적용하는 것이 나을 것 같습니다.
그럼.. 즐거운 하루되십시오.
감사합니다.
DataSourceTransactionManager는 하나의 DataSource만이 지정 가능합니다.
따라서 두개의 DataSourceTransactionManager를 만드시고..
AOP의 advice를 두 개로 분리하시면 됩니다. (tx:advice가 transaction-manager를 지정하기 때문)
또 advice가 2개이기 때문에 pointcut도 2개가 됩니다.
이때 expression을 동일하게 정의할 수 있으나.. 하나의 bean이 처리될 때에.. 2개의 AOP가 걸리기 때문에.. 바람직하진 않을 것 같습니다.
따라서 말씀하신 것 처럼 패키지를 분리하셔서 적용하는 것이 나을 것 같습니다.
그럼.. 즐거운 하루되십시오.
감사합니다.