기존에 보지 못했던 내용들도 있어서 퍼 왔습니다.

--------------------------------------------------

 

1. 양쪽서버 모두에서 MSDTC서비스가 시작되었는지 확인.
'NET START MSDTC'

2. 서버이름으로 서로간에 정상적으로 ping이 되는지 확인 하십시요.

3. 명령창에서 cliconfg를 실행 protocol을 named pipe대신 Tcp/ip를 default로 설정.

5. 둘 중 어느 서버에서든 NIC 를 두개 이상 가진 경우 이것들이 정상적으로 설정 되었는지 확인.

6. 만약 하나의 NIC에 두개 이상의 IP가 할당된 경우 (특히 web server) 하나의 IP만 할당하여 Test .

7. 서버간의 name resolution 방식을 확인 (DNS, WINS or lmhost)
   - 만약 서로 서버를 찾지 못하는 경우 hosts or lmhost file을 수정하여 연결.

위에서 확인된 사항이 모두 확인된 경우에도 동일 error가 발생하면 다음과 같은 일반적인 DTC TroubleShooting을 시도.

1. Transaction timeout을 길게 잡아준다.(즉, 600초 또는 0)
MTS탐색기또는 구성요소서비스관리자에서 내컴퓨터를 우측마우스로 선택후 등록정보의 옵션탭에서 설정한다.

2. MSDTC버전을 확인한다.(윈도우2000은 문제없음, NT4는 SQL 6.5 SP5a이상 또는 SQL7일경우 문제없음

4. Firewall 관련
MSDTC는 RPC를 통해 작동되기 때문에 Firewall을 사이에 두고 MTS/COM+서비스와 SQL 서버가 있을 경우 다음과 같이 하여 RPC가 원활하게 작동하도록 설정한다.
(특히 Internet환경에서)
Regedt32.exe를 실행한다.(시작->실행->regedt32)
다음키와 값을 추가합니다.(Double Quotation은 제외한다.)
HKLM\Software\Microsoft\Rpc\Internet
Ports "3000-3010" REG_MULTI_SZ
PortsInternetAvailable "Y" REG_SZ
UseInternetPorts "Y" REG_SZ

TCP와 UDP Port 135번과 TCP Port 3000-3010이 열려있어야 한다.

SQL DB에 Access하기 위해 반드시 TCP/IP와 Port 1433을 사용해야 한다. (물론 1433 Port는 열려있어야 한다.)

5. Router관련
NetBios Name을 DTC에 바인딩하기 위해 DNS 또는 WINS(또는 Hosts & LMHOSTS파일)를 사용해야만 한다.

이상의 사항으로도 해결이 되지 않는 경우 MSDTC 재설치 고려.

 

출처 : http://blog.korea.com/post/blogpost.aspx?bid=sqldba&mode=view&view=board&pid=9336&index=6&cate=240

'programming > MSSQL' 카테고리의 다른 글

DTC 오류 해결 방법  (0) 2004.08.31
Isolation level  (0) 2004.08.19
미리 보는 유콘 T-SQL의 새로운 기능들  (0) 2004.08.16

+ Recent posts