Windows Server 2003 또는 Windows XP 서비스 팩 2를 설치한 후 연결된 서버에 대해 분산된 트랜잭션을 실행할 때 SQL Server 2000에서 7391 오류 메시지가 나타날 수 있습니다.

기술 자료 번역 기술 자료 번역
기술 자료: 839279 - 이 문서가 적용되는 제품 보기.
모두 확대 | 모두 축소

이 페이지에서

현상

SQL Server 인스턴스에 대해 분산된 트랜잭션을 실행하면 다음과 유사한 오류 메시지가 나타날 수 있습니다.

서버: 메시지 7391, 수준 16, 상태 1, 줄 1
때문에 작업을 수행할 수 없는 OLE DB 공급자 'SQLOLEDB' 분산된 트랜잭션을 시작할 수 없습니다. [OLE/DB 공급자 메시지를 반환했습니다: 지정한 트랜잭션 코디네이터에 새 트랜잭션을 참여시킬 수 없습니다.] OLE DB 오류 추적 [OLE/DB 공급자 'SQLOLEDB' 0x8004d00a ITransactionJoin::JoinTransaction 반환되는].


이 문제는 다음 조건 중 하나에 해당하는 경우 발생할 수 있습니다.
  • Microsoft Windows Server 2003 또는 Windows XP 서비스 팩 2 (SP2) 분산된 트랜잭션을 시작하고 컴퓨터에 설치됩니다.
  • Microsoft Windows Server 2003 또는 Microsoft Windows XP SP2 Microsoft SQL Server 2000을 실행하는 원격 컴퓨터에 설치되어 있고 해당 컴퓨터가 분산된 트랜잭션을 시작하고 컴퓨터에 연결되어 있습니다.

원인

하나 이상의 다음과 같은 이유로 인해 이 문제가 발생합니다.
  • Microsoft 분산 트랜잭션 코디네이터 (MSDTC) 네트워크 트랜잭션에 사용할 수 없습니다.
  • 컴퓨터에 방화벽이 설정됩니다. 기본적으로 Windows 방화벽은 Microsoft 분산 트랜잭션 차단합니다 코디네이터 (MSDTC) 프로그램.

    참고 이 문제가 발생할 경우에도 Windows 방화벽이 해제되어.

해결 과정

중요한 이 섹션에서는, 메서드 또는 작업이 레지스트리 수정 방법을 알려 주는 단계가 포함되어 있습니다. 그러나 레지스트리를 잘못 수정하면 심각한 문제가 발생할 수 있습니다. 따라서 다음 이 단계를 주의 깊게 따라야 합니다. 추가 보호 기능을 수정하기 전에 레지스트리를 백업해야. 그런 다음 문제가 발생할 경우 레지스트리를 복원할 수 있습니다. 백업 및 복원하는 방법에 대한 자세한 내용은 Microsoft 기술 자료의 다음 문서를 참조하십시오.
322756백업 및 Windows 에서 레지스트리를 복원하는 방법


이 문제를 해결하려면 Windows Server 2003 또는 Windows XP SP2가 설치된 컴퓨터에서 다음 이 단계를 수행하십시오.
  1. MSDTC 서비스의 사용자로 로그온 계정이 네트워크 서비스 계정이 있는지 확인하십시오. 이렇게 하려면 다음과 같이 하십시오.
    1. 시작 을 누른 다음 실행 을 클릭하십시오.
    2. 실행 대화 상자에서 Services.msc 를 입력한 다음 확인 을 누릅니다.
    3. 서비스 창에서 오른쪽 창의 이름 에서 분산 트랜잭션 코디네이터 서비스를 찾습니다.
    4. 네트워크 서비스 또는 로컬 시스템계정으로 계정 여부를 계정으로 열 아래에서 참조하십시오.

      네트워크 서비스계정으로 계정일 경우 2단계로 이동하십시오. 사용자로 로그온 계정이 로컬 시스템 계정이 있으면 이러한 단계를 계속하십시오.
    5. 시작 을 누른 다음 실행 을 클릭하십시오.
    6. 실행 대화 상자에 cmd 를 입력한 다음 확인 을 누릅니다.
    7. Net stop msdtc MSDTC 서비스를 중지하려면 명령 프롬프트에서 입력하십시오.
    8. MSDTC를 제거하려면 Msdtc ?uninstall 명령 프롬프트에서 입력하십시오.
    9. 명령 프롬프트에서 다음 레지스트리 편집기를 열려면 regedit 입력하십시오.
    10. 레지스트리 편집기에서 다음 키를 찾습니다.

      HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSDTC
      레지스트리 키입니다.

      이 키를 삭제하십시오.
    11. 레지스트리 편집기를 종료하십시오.
    12. MSDTC를 설치하려면 Msdtc ?install 명령 프롬프트에서 입력하십시오.
    13. MSDTC 서비스를 시작하려면 시작 msdtc Net 명령 프롬프트에서 입력하십시오.

      MSDTC 서비스의 사용자로 로그온 계정이 네트워크 서비스 설정 참고 계정.
  2. 네트워크 트랜잭션을 허용하려면 MSDTC를 사용하십시오. 이렇게 하려면 다음과 같이 하십시오.
    1. 시작 을 누른 다음 실행 을 클릭하십시오.
    2. 실행 대화 상자에서 dcomcnfg.exe 를 입력한 다음 확인 을 누릅니다.
    3. 구성 요소 서비스 창에서 구성 요소 서비스 를 확장하고, 컴퓨터, 확장 및 다음 내 컴퓨터 를 확장하십시오.
    4. 내 컴퓨터 를 마우스 오른쪽 단추로 클릭한 다음 속성 을 클릭하십시오.
    5. 내 컴퓨터 속성 대화 상자의 MSDTC 탭에서 보안 구성 을 클릭하십시오.
    6. 보안 구성 대화 상자를 클릭하여 네트워크 DTC 액세스 확인란을 선택합니다.
    7. 분산된 트랜잭션을 이 컴퓨터에서 원격 컴퓨터에서 실행할 수 있도록 하려면 인바운드 허용 확인란을 눌러 선택합니다.
    8. 분산된 트랜잭션을 이 컴퓨터에서 원격 컴퓨터에서 실행할 수 있도록 하려면 아웃바운드 허용 확인란을 선택하고 확인란을 선택합니다.
    9. 트랜잭션 관리자 통신 그룹에서 인증 필요 없음 옵션을 선택하려면 클릭하십시오. 인증 필요 없음 클라이언트와 원격 시스템을 모두 설정하십시오.
    10. 보안 구성 대화 상자에서 확인 을 클릭하십시오.
    11. 내 컴퓨터 속성 대화 상자에서 확인 을 클릭하십시오.
  3. MSDTC 프로그램을 포함하도록 및 포트 135를 예외로 포함하도록 Windows 방화벽을 구성하십시오. 이렇게 하려면 다음과 같이 하십시오.
    1. 시작 을 누른 다음 실행 을 클릭하십시오.
    2. 실행 대화 상자에서 Firewall.cpl 를 입력한 다음 확인을 클릭하십시오
    3. 제어판Windows 방화벽은 두 번 클릭하십시오.
    4. Windows 방화벽 대화 상자의 예외 탭에서 "프로그램 추가 클릭하십시오.
    5. 프로그램 추가 대화 상자에서 찾아보기 단추를 클릭한 다음 Msdtc.exe 파일을 찾습니다. 기본적으로 < 설치 드라이브 > 파일이 저장된: \Windows\System32 폴더.
    6. 프로그램 추가 대화 상자에서 확인 을 클릭하십시오.
    7. Windows 방화벽 대화 상자를 클릭하여 프로그램 및 서비스 목록에서 msdtc 옵션을 선택합니다.
    8. 예외 탭에서 포트 추가 클릭하십시오.
    9. 포트 추가 대화 상자에서 135포트 번호 텍스트 상자에 입력한 다음 TCP 옵션을 누릅니다.
    10. 포트 추가 대화 상자에서 이름 텍스트 상자에 예외의 이름을 입력한 다음 확인 을 누릅니다.
    11. Windows 방화벽 대화 상자에서 예외 목록에서 프로그램 및 서비스, j 단계에서 사용되는 이름을 선택하고 확인 을 클릭하십시오.
  4. Netbios 이름 (도메인 없이: 서버 이름)을 사용하여 호스트 서버에 원격 서버 및 원격 서버 호스트 서버에 Ping을 테스트하십시오. Microsoft 분산 트랜잭션 코디네이터 Netbios 이름, 정규화된 도메인 이름을 사용하여 서버를 찾습니다. 이름 확인이 실패한 경우 분산된 트랜잭션이 실패합니다. Netbios 이름을 사용하여 ping 실패하면 다음 기술 자료 문서를 참조하십시오.
    172218Microsoft TCP/IP 호스트 이름 확인 순서

현재 상태

Microsoft는 "본 문서의 정보는 다음의 제품에 적용됩니다." 절에 나열된 Microsoft 제품에서 이 문제를 확인했습니다.

추가 정보

Windows Mobile 기반 스마트폰에 GPRS 연결이 구성되어 있는지 확인합니다

  1. Windows Server 2003 또는 Windows XP SP2가 설치되어 있는 컴퓨터에 로그온하십시오.
  2. 시작 쿼리 분석기입니다.
  3. 연결된 서버로 Microsoft SQL Server 2000을 실행하는 원격 컴퓨터를 추가하십시오. 이렇게 하려면 다음 Transact-SQL 문을 쿼리에서 실행할 분석:
    EXEC sp_addlinkedserver  '<remote_server>',  N'SQL SERVER'
    GO

    참고 연결된 서버로 구성해야 하는 컴퓨터 이름을 remote_server 대체하십시오.
  4. 이 컴퓨터와 원격 컴퓨터 간에 분산된 트랜잭션을 실행하십시오. 이렇게 하려면 쿼리 분석기에서 다음 Transact-SQL 문을 실행하십시오.
    SET xact_abort ON 
    GO
    USE  pubs
    GO
    BEGIN DISTRIBUTED TRANSACTION
    SELECT  *  FROM <remote_server>.pubs.dbo.authors
    COMMIT TRAN
    GO
    
    "현상" 절에서 설명한 오류 메시지가 나타날 수 있습니다.

참조

Windows XP 서비스 팩 2를 사용할 수 있는 SQL Server 2000 구성에 대한 자세한 내용은 Microsoft 기술 자료의 다음 문서를 참조하십시오.
841249SQL Server에서 사용할 Windows XP 서비스 팩 2 구성하는 방법

속성

기술 자료: 839279 - 마지막 검토: 2009년 8월 25일 화요일 - 수정: 4.0
본 문서의 정보는 다음의 제품에 적용됩니다.
  • Microsoft SQL Server 2000 Standard Edition
  • Microsoft Windows XP Embedded
  • Microsoft Windows Server 2003, Standard Edition (32-bit x86)
  • Microsoft Windows Server 2003, Datacenter Edition (32-bit x86)
  • Microsoft Windows Server 2003, Enterprise Edition (32-bit x86)
키워드:?
kbmt kbregistry kberrmsg kbdtc kbdomain kbauthentication kbtransaction kbrpc kbprb KB839279 KbMtko
기계 번역된 문서
중요: 본 문서는 전문 번역가가 번역한 것이 아니라 Microsoft 기계 번역 소프트웨어로 번역한 것입니다. Microsoft는 번역가가 번역한 문서 및 기계 번역된 문서를 모두 제공하므로 Microsoft 기술 자료에 있는 모든 문서를 한글로 접할 수 있습니다. 그러나 기계 번역 문서가 항상 완벽한 것은 아닙니다. 따라서 기계 번역 문서에는 마치 외국인이 한국어로 말할 때 실수를 하는 것처럼 어휘, 구문 또는 문법에 오류가 있을 수 있습니다. Microsoft는 내용상의 오역 또는 Microsoft 고객이 이러한 오역을 사용함으로써 발생하는 부 정확성, 오류 또는 손해에 대해 책임을 지지 않습니다. Microsoft는 이러한 문제를 해결하기 위해 기계 번역 소프트웨어를 자주 업데이트하고 있습니다.

피드백 보내기

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com