멀티 데이터소스 문제
- 작성자 :
- 강*석
- 작성일 :
- 2013-07-09 11:27:08
- 조회수 :
- 1,109
- 구분 :
- 실행환경
- 진행상태 :
- 완료
Q
안녕하십니까. 궁굼한 사항이 있어서 질문을 드립니다.
DataSource를 두개를 사용하여 로그인 한 유저 별로 다른 DB를 사용하고자 합니다. 트랜잭션은 발생하지만 한 트랜잭션 안에 오직 한개의 DataSource 만 관계합니다. 인터넷을 검색해보니 이럴경우에는 JTA나 JOTM을 사용하라고 하는데 과연 이제 맞는지 모르겠습니다. 다른 방법은 없는지요? 그리고 개발 시에는 로컬에서 TOMCAT을 이용하고 테스트 서버는 JEUS를 사용합니다. 이렇게 WAS가 다를 경우에는 JTOM을 이용하는 것이 맞는지요?
비록 DataSource는 두개를 사용하지만 서로 한트랜잭션에 걸릴 일이 없는데 다른방법은 없는지 답답해서 문의드립니다. 로그인 한 사용자 별로 sqlmapclient를 가 가지고 있는 DataSource정보를 다르게 할 수는 없는지요. 어차피 한 datasource만 사용하니까요.
감사합니다.
DataSource를 두개를 사용하여 로그인 한 유저 별로 다른 DB를 사용하고자 합니다. 트랜잭션은 발생하지만 한 트랜잭션 안에 오직 한개의 DataSource 만 관계합니다. 인터넷을 검색해보니 이럴경우에는 JTA나 JOTM을 사용하라고 하는데 과연 이제 맞는지 모르겠습니다. 다른 방법은 없는지요? 그리고 개발 시에는 로컬에서 TOMCAT을 이용하고 테스트 서버는 JEUS를 사용합니다. 이렇게 WAS가 다를 경우에는 JTOM을 이용하는 것이 맞는지요?
비록 DataSource는 두개를 사용하지만 서로 한트랜잭션에 걸릴 일이 없는데 다른방법은 없는지 답답해서 문의드립니다. 로그인 한 사용자 별로 sqlmapclient를 가 가지고 있는 DataSource정보를 다르게 할 수는 없는지요. 어차피 한 datasource만 사용하니까요.
감사합니다.
A
안녕하세요. 강영석님.
두개의 DataSource 중 하나만 transaction으로 처리하고 다른 하나는 select만 하신다면 JTA나 JOTM이 필요 없으십니다.
이런 경우는 다음과 같이 처리하시면 되실 것 같습니다.
1. DataSource 추가 정의 (context-datasource.xml OtherDataSource 참조)
2. sqlMapClient 추가 정의 (context-sqlMap.xml OtherSqlMapClient 참조)
3. AbstraceDAO 추가 (egovframework.template.dataaccess.OtherAbstractDAO 참조)
4. 개발 DAO 구현 (추가된 AbstractDAO 상속)
괄호안은 "알림마당 -> 자료실"의 25번 자료인 "기술지원용 template 프로젝트" 소스 상에 참조 부분입니다. (해당 템플릿 자체는 이전 버전으로 작성되어 있지만, 여러 DataSource 접근 처리는 현행 버전으로도 적용하실 수 있음)
참고로 기존 dataSource는 DataSourceTransactionManager에 의해 관리되도록 유지하시면 추가하는 dataSource는 transaction 보장 없이 처리됩니다.
그럼, 즐거운 하루되십시오.
감사합니다.
두개의 DataSource 중 하나만 transaction으로 처리하고 다른 하나는 select만 하신다면 JTA나 JOTM이 필요 없으십니다.
이런 경우는 다음과 같이 처리하시면 되실 것 같습니다.
1. DataSource 추가 정의 (context-datasource.xml OtherDataSource 참조)
2. sqlMapClient 추가 정의 (context-sqlMap.xml OtherSqlMapClient 참조)
3. AbstraceDAO 추가 (egovframework.template.dataaccess.OtherAbstractDAO 참조)
4. 개발 DAO 구현 (추가된 AbstractDAO 상속)
괄호안은 "알림마당 -> 자료실"의 25번 자료인 "기술지원용 template 프로젝트" 소스 상에 참조 부분입니다. (해당 템플릿 자체는 이전 버전으로 작성되어 있지만, 여러 DataSource 접근 처리는 현행 버전으로도 적용하실 수 있음)
참고로 기존 dataSource는 DataSourceTransactionManager에 의해 관리되도록 유지하시면 추가하는 dataSource는 transaction 보장 없이 처리됩니다.
그럼, 즐거운 하루되십시오.
감사합니다.