본문 바로가기

개발

weblogic11g + MS SQL Server 2008 JDBC XA Driver

linked server를 설정하여 사용 중 분산 트랜잭션 관련한 오류가 발생하였다. 분산 트랜잭션 관련하여 셋팅을 해주었든데도 불구하고 계속 발생을 하여 원인을 찾아보니 이전에 WAS 설정에서 JDBC Driver를 설정하면서 JDBC XA Driver를 설정안했던 것이 문제였던 것이다. 역시 좀더 시간이 걸리더라도 찾아서 확실하게 셋팅했어야 햇는데.... ;;;


관련 글 : http://docs.oracle.com/cd/E17904_01/doc.1111/e13925/troubleshooting.htm#INSOA308


1. Weblogic Server 설치


2. MS SQL Server JDBC XA 프로시저 설치. JTA를 통해 JDBC 분산 트랜잭션을 사용할 수 있습니다. 분산 트랜잭션을 사용할 각각의 MS SQL Server에 반복해서 설치해야 합니다.

  a. SQL Server 버전을 확인하고 적합한 .dll 파일과 instjdbc.sql 파일을 복사합니다.

     (위의 오라클 Troubleshooting 문서에서는 복사할 파일들의 폴더 경로를 bin으로 표시했지만 본인의 경우는 lib에 존재함)

Database

Copy This File...

To This Directory...

SQL Server 2005

WebLogic_Home\server\lib\ 폴더에서

instjdbc.sql 과 본인 플랫폼에 맞는 .dll 파일을 아래에서 선택하여 복사

  • sqljdbc.dll (for 32 bit OS)
  • x64sqljdbc.dll (for 64 bit Intel-based OS)
  • 64sqljdbc.dll (for 64 bit Itanium-based OS)

C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Binn

SQL Server 2008

WebLogic_Home\server\lib\ 폴더에서

instjdbc.sql 과 본인 플랫폼에 맞는 .dll 파일을 아래에서 선택하여 복사

  • sqljdbc.dll (for 32 bit OS)
  • x64sqljdbc.dll (for 64 bit Intel-based OS)
  • 64sqljdbc.dll (for 64 bit Itanium-based OS)

C:\Program Files\Microsoft SQL Server\MSSQL10.INSTANCE_NAME\MSSQL\Binn

 

  b. ISQL을 이용하여 instjdbc.sql을 실행. 본인의 SQL Server 버전에 맞는 경로에서 실행. (만약을 위해 master database를 백업해두세요.)


  • Microsoft SQL Server 2005 :

    C:\Program Files\Microsoft SQL Server\90\Tools\Binn\SQLCMD.EXE -S "DB_HOST\INSTANCE_NAME" -U SA -P SA_PASSWORD -i instjdbc.sql -o LOG_FILE
  • Microsoft SQL Server 2008 :

    C:\program files\Microsoft SQL Server\100\Tools\Binn\SQLCMD.EXE -S "DB_HOST\INSTANCE_NAME" -U SA -P SA_PASSWORD -i instjdbc.sql -o LOG_FILE


DB_HOST는 SQL Server가 설치되어있는 호스트의 이름이고, INSTANCE_NAME은 SQL Server의 인스턴스 이름입니다.

저처럼 인스턴스명을 까먹는 경우에는 아래 링크에 인스턴스명을 찾는 다양한 방법있습니다. ㅎㅎ

(http://www.devpia.com/MAEUL/Contents/Detail.aspx?BoardID=38&MAEULNo=16&no=54563&ref=54563)


instjdbc.sql 스크립트를 실행하면 다음과 같은 메세지가 나오더라도 신경쓰지말고 패스~!!


Msg 156, Level 15, State 1, Server STANA17-1\SQLSERVER123, Line 1 Incorrect syntax near the keyword 'tran'. Msg 319, Level 15, State 1, Server STANA17-1\SQLSERVER123, Line 1 Incorrect syntax near the keyword 'with'. If this statement is a common table expression, an xmlnamespaces clause or a change tracking context clause, the previous statement must be terminated with a semicolon.  


3. Microsoft Distributed Transaction Coordinator (DTC) 설정하기

(참고로 저는 Windosw Server 2008 입니다. 이미 DTC 설정은 다른 분이 해놓은 서버여서 DTC 속성 다이알로그 창에 접근하는 방법이 다를 수 있습니다. troubleshooting 문서를 참고하세요.)


  a. 시작 > 제어판 > 관리도구 > 구성 요소 서비스

      네비게이션에서 콘솔 루트 > 구성 요소 서비스 > 컴퓨터 > 내 컴퓨터 > MSDTC > Distributed Transaction Coordinator > 로컬 DTC

  b. 로컬 DTC 오른쪽 마우스 클릭 후 속성 > 보안 탭

  c. 보안 설정 섹션 내에 네트워크 DTC 액세스 체크, XA 트랜잭션 상용 체크, SNA LU 6.2 트랜잭션 사용 체크

  d. 클라이언트 및 관리 섹션 내에 원격 클라이언트 허용 체크, 원격 관리 허용 체크

  e. 트랜잭션 관리자 통신 섹션 내에 인바운드 허용 체크, 아웃바운드 허용 체크, 인증 필요 없음 선택

  f. OK 클릭


4. Microsoft SQL Server 재시작




728x90

'개발' 카테고리의 다른 글

[JSTL] 많이 사용되는 태그들  (0) 2012.09.19
Disconnect SVN repository  (0) 2012.09.03
Redmine plugin for integration CKEditor  (0) 2012.09.03