이번 프로젝트를 하면서 트랜잭션에 대해서 다시 한번 생각해보게 되었고 아래의 사이트들을 통해서 좋은 정보를 얻었다.

트랜잭션에 대한 정리를 잘 해놓은 MS의 장현춘 부장님의 블로그 링크이다.
http://kingcrap.com/entry/닷넷-트랜잭션-정리

System.Transactions(TransactionScope)에 대해서 정리를 해놓은 드원테크놀로지의 유경상 수석님의 블로그링크이다.
http://www.simpleisbest.net/articles/996.aspx

위을 내용을 아주 간단히 요약을 해보겠다~
먼저 트랜잭션 처리는 1. 로컬 트랜잭션(수동) 2. 분산 트랜잭션(자동)으로 나뉜다. 두 가지의 방법은 서로 장단점있는데 속도의 측면에서는 로컬 트랜잭션이 편리성 측면에서는 분산 트랜잭션이 좋다. 하지만 TransactionScope를 사용하면 Promotion이라는 기능이 있고(TransactionScope는 트랜잭션이 발생할 때 로컬 또는 분산 트랜잭션인지를 자동으로 처리해주는데 로컬 트랜잭션으로 실행하다가 다른 DB에 접속을 하는 순간에 자동으로 분산 트랜잭션으로 전환이 되는데 이러한 것을 Promotion이라고 한다.) 이러한 Promotion은 MSSQL 2005, 2008에서만 지원을 한다고 한다.
이번에 내가 한 프로젝트에서 DB가 Oracle여서 TransactinoScope를 사용하려고 했더니 oramts.dll이 필요하다며 예외가 발생했다. Ora MTS를 설치하면 TransactionScope를 사용할 수 있었다.

Ora MTS에 대해서는 아래의 링크를 보자.
http://www.simpleisbest.net/archive/2005/08/23/208.aspx

다음은 Ora MTS를 다운받는 링크이다.
http://www.oracle.com/technology/software/tech/windows/ora_mts/htdocs/utilsoft.html

테스트 환경은 윈도우 서버 2003에서 Oracle 9i 클라이언트와 Ora MTS 9.2.0.7.0 버전을 사용해서 해본 결과 TransactionScope를 사용할 수 있었다. 위의 첫번 째 링크(장현춘님)에 가보면 비스타에서도 Ora MTS 10.2.0.4.0버전을 사용해서 분산 트랜잭션으로 MSSQL과 Oracle을 묶어 프로젝트에서 사용하고 있다는 말이 제일 마지막에 나온다. 하지만 비스타에서 Ora MTS(버전:10.2.0.1, 10.2.0.2) 설치 오류가 나서 테스트를 해볼 수가 없었고 Ora MTS 10.2.0.4.0버전을 구할 수도 없었다. 아마 무엇인가 문제가 있어서 배포를 잠시 중단한게 아닌가 싶다.

<<수정일자 : 12월20일>>
Ora MTS 10.2.0.4.0버전이 아니라 Oracle Database 10g Release 2 (10.2.0.4.0) Patch Set의 버전이다. Ora MTS는 10.2.0.2.0를 설치하면 된다. 또한 Ora MTS가 오류가 나는 것의 원인은 Office 2007 때문이였다. 설치를 하다가 javaw.exe프로세스가 종료되었다는 메시지와 함께 설치가 종료되는데 Office를 지우고 설치를 하면 설치가 된다. 이것이 설치되었다고 해서 비스타에서TransactionScope를 사용해서 분산 트랜잭션을 사용할 수 있는 것이 아니다. Oracle Database 10g Release 2 (10.2.0.4.0) Patch Set까지 설치해야한다. Oracle Meta Link에서 이것을 다운을 받을 수 있는데 Meta Link는 오라클과 계약을 맺어 인증번호가 있어야 사용할 수 있다. 패치까지 받고 테스트는 안해봤지만 아마도 될 것이다. 사용자등록을 했는데 관리자가 있어 패스워드를 받아야한다. 참 하나 해보기 힘들다. 차후에 패치를 받고 테스트를 마친후에 정리를 해야할꺼 같다.
Posted by resisa
,