MS SQLSERVER 의 JDBC XA 드라이버 이용환경 세팅

IT - S/W, Biz/S/W Development


SQL Server 2000 기준이며, 관련업무 진행중 하단 참고 URL들을 참조하여 정리한 내용입니다.


SQL Server JDBC XA Driver 를 사용하려면 SQL Server 에 분산트랜잭션 관련한 세팅이 되어 있어야 합니다. 그렇지 않은 경우 WAS에서 XA Driver 를 이용하여 Pool 생성시
Could not find stored procedure 'master..xp_jdbc_open2' 와 같은 메시지를 만나게 됩니다.

◆ WAS 단 드라이버 세팅
    SQL Server 2000용 Microsoft JDBC 유형 4 드라이버를
    WAS 에서 참조할수 있도록 WAS의 Library 디렉토리에 위치
    ( 드라이버는 여기에서 다운로드 가능  http://technet.microsoft.com/en-us/sqlserver/bb331729.aspx )

◆ SQLServer  분산트랜잭션 관련 세팅
1. SQLServer 필수 패치
2. Microsoft SQL Server JDBC 드라이버 서비스 팩 3a를 설치
    ( 여기에서 다운로드 가능  http://technet.microsoft.com/en-us/sqlserver/bb331729.aspx )
3. sql_jdbc_root\SQLSERVER JTA 디렉토리에서 sql_root\bin 디렉토리로 sqljdbc.dll을 복사
    여기서 sql_root는 SQL Server의 루트 디렉토리이고 sql_jdbc_root는 SQL Server JDBC 드라이버의 루트 디렉토리임.
4. instjdbc.sql 스크립트 실행 : 관련 프로시저가 생성됨.
 
    아래와 같이 ISQL 유틸리티를 사용하여 실행하는 것도 가능함.
    ISQL -U sa -P sa_password -S server_name -i "sql_jdbc_root\SQLSERVER JTA\instjdbc.sql"

    * sa는 SQL Server 시스템 관리자 사용자 ID
    * sa_password는 시스템 관리자의 암호,
    * server_name은 SQL Server가 실행 중인 서버의 이름
    * sql_jdbc_root는 SQL Server JDBC 드라이버의 루트 디렉토리

5. sqljdbc.dll 을 sql server 에서 참조할수 있도록 하기 위해 레지스트에 등록
    * Windows 레지스트리 편집기(regedit)를 열고 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSDTC\XADLL 요소로 이동하십시오.
    * 메뉴 표시줄에서 편집 > 새로 작성 > 문자열 값을 선택하여 해당 요소에 새 매개변수인 sqljdbc.dll을 작성하십시오.
    * 새 매개변수 값을 위의 sqljdbc.dll 파일의 위치로 변경하십시오(예: C:\Program Files\Microsoft SQL Server\MSSQL\Binn\sqljdbc.dll)

6.구성요소 서비스(제어판->관리도구)->구성요소 서비스 ->'내 컴퓨터' 오른쪽 마우스 클릭 -> 속성 ->MDDTC->보안구성->XA 트랜젝션사용 체크->컴퓨터 리부팅

7.서비스(제어판-> 관리도구) ->distributed transaction coodinator 시작

 

◆ 참고자료

http://publib.boulder.ibm.com/infocenter/wpdoc/v510/index.jsp?topic=/com.ibm.wp.ent.doc/wpf/inst_sql.html

 

http://objectmix.com/weblogic/534076-db-connection-test-failing-when-creating-connectionpool.html