database.sarang.net
UserID
Passwd
Database
DBMS
MySQL
PostgreSQL
Firebird
Oracle
Informix
Sybase
ㆍMS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
MS-SQL Q&A 3876 게시물 읽기
No. 3876
분산환경 DB 에서 트랜잭션 오류가 납니다.
작성자
이티
작성일
2007-11-15 12:10
조회수
14,761

우선,

 

두대의 DB 머신이 있습니다.

 

둘 다 2003 Server / SQL SERVER 2005 사용중입니다.

 

B 머신에서 A 머신에 있는 디비를 참고하는 SP 가 있습니다.

 

두 머신은 Linked Server로 구성되어있구요..

 

B 머신에서, select * from a.aDB.dbo.test  하면 조회가 됩니다. 

 

근데 exec dbo.test  라는 SP를 수행하면, (A DB에 정보를 기록하고, 조회합니다.)

 

연결된 서버 "A"의 OLE DB 공급자 "SQLNCLI"이(가) 메시지 "활성 중인 트랜잭션이 없습니다."을(를) 반환했습니다.
메시지 7391, 수준 16, 상태 2, 프로시저 test , 줄 62
연결된 서버 "A"의 OLE DB 공급자 "SQLNCLI"이(가) 분산 트랜잭션을 시작할 수 없으므로 요청한 작업을 수행할 수 없습니다.

 

라는 오류가 뜨네요..

 

MSDTC 부분도 체크 다 했고,

 

MS에서 제공하는 DTCPing.exe 를 이용해 두 머신간 통신이 되는것도 확인을 했습니다.

 

음..

 

왜 그럴까요??

이 글에 대한 댓글이 총 2건 있습니다.

아래 사항들을 체크해보십시오 


1. 서버환경이 어떻게 되는가?

 

윈도우 2003일 경우에는 구성요소서비스에서 내컴퓨터 -> 등록정보 -> MSDTC -> 보안구성 -> 네트워크 DTC 엑세스의 정보가 허용으로 되어있어야 합니다. 그리고 로그인계정은 NT Authority\NetworkService이어야 하구요

만약 서비스팩을 적용하셨다면 원격클라이언트 허용, 인바운드 아웃바운드 허용, 인증필요없음에도 체크해 주시기 바랍니다. (님의 경우에는 사실 이부분일 가능성이 가장 크겠군요.. ^^;)

 

2. RPC에서 사용하는 135포트가 열려있는지 확인해보시기 바랍니다.

dtcping.exe이란 프로그램을 이용하여 두개 서버간의 통신을 테스트해보시면 쉽게 알 수 있습니다.

만약 여기에서 정상적으로 작동하는데 에러가 발생했다면 거의 보안문제이거나 설치를 잘못하셨을 가능성이 높습니다.

 

3. 레지스트리정보에서

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSDTC\Security에 NetworkDtcAccess => 1

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSDTC\Security에 NetworkDtcAccessTransactions => 1

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSDTC에 TurnOffRpcSecurity => 1

위의 구성정보가 제대로 구성되었는지 확인합니다.

 

4. 분산 트랜잭션 쿼리문에 이상이 없는지 확인하세요~

SET XACT_ABORT ON

BEGIN DISTRIBUTED TRAN

    select * from linked_server.pubs.dbo.jobs

COMMIT TRAN

SET XACT_ABORT OFF

.님이 2007-11-15 12:44에 작성한 댓글입니다. Edit

1.


로그인계정은 NT Authority\NetworkService이고,

원격클라이언트 허용, 인바운드 아웃바운드 허용, 인증필요없음에도 체크를 했습니다.



2.


dtcping.exe이란 프로그램을 통해 정상 작동 되는것을 확인했습니다.



3.


 레지스트리정보 또한 확인되었고,


4.


쿼리에 XACT 옵션도 되어있어요 ㅠㅠ

이티님이 2007-11-15 13:27에 작성한 댓글입니다. Edit
[Top]
No.
제목
작성자
작성일
조회
3879ms-sql 에서 로그파일 무슨 프로그램으로 바야하나요? [1]
권장호
2007-11-16
3378
3878ms-sql 로그파일 어떻게 보죠? [1]
rayan82
2007-11-16
3796
3877Msg 7347 에러...Openquery를 사용해서 DB2에서 데이터를 가지고 올때
로미오
2007-11-15
4289
3876분산환경 DB 에서 트랜잭션 오류가 납니다. [2]
이티
2007-11-15
14761
3875select count(field_name) from tbl_name 처리 속도
MC02
2007-11-15
3308
3874정렬문제 [1]
손님
2007-11-14
3108
3873SQL SERVER 2000에서 가변적으로 Crosstab / Pivot 유형으로 월별 현장/업체별로 금액을 구하는 방법에 대한 문의.. [1]
이쁜이
2007-11-13
4431
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.021초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다