연결된 서버에 대해 SQL을 실행하려고하는데 아래 오류가 발생합니다.
BEGIN DISTRIBUTED TRANSACTION
SELECT TOP 1 * FROM Sessions
OLE DB provider "SQLNCLI" for linked server "ASILIVE" returned message "No transaction is active.".
Msg 7391, Level 16, State 2, Line 3
The operation could not be performed because OLE DB provider "SQLNCLI" for linked server "ASILIVE" was unable to begin a distributed transaction.
공급자가 반환 한 두 가지 오류가 있습니다.
오류 # 1 :
Number: $80040E14
Source: Microsoft OLE DB Provider for SQL Server
Description: OLE DB provider "SQLNCLI" for linked server "ASILIVE" returned message "No transaction is active.".
HelpFile:
HelpContext: $00000000
SQLState: 01000
NativeError: 7412
오류 # 2
Number: $80040E14
Source: Microsoft OLE DB Provider for SQL Server
Description: The operation could not be performed because OLE DB provider "SQLNCLI" for linked server "ASILIVE" was unable to begin a distributed transaction.
HelpFile:
HelpContext: $00000000
SQLState: 42000
NativeError: 7391
Microsoft가 보안보다 기능을 선호하도록하려면 어떻게해야합니까?
또는 적어도 두 개의 SQL 서버가 서로 통신하도록하려면 어떻게해야합니까?
관련 질문
- OLE DB 공급자“SQLNCLI10”... (* 연결된 서버 이름은
(null)
) 이므로 작업을 수행 할 수 없습니다. - 분산 트랜잭션 오류? ( Oracle 공급자 사용 )
- NHibernate로 분산 트랜잭션에 참여할 수 없음 ( Hibernate 사용 )
- SQL Server 2008 R2에서 분산 트랜잭션 사용 오류 ( SQL Server 2008 R2, 응답 없음 )
- 코드를 통한 분산 트랜잭션 오류 ( 연결 풀링으로 인해 발생 )
- 연결된 서버에서 분산 트랜잭션 코디네이터를 수행하는 동안 오류가 발생했습니다 ( SQL Server 2008, 응답 없음 ).
- 분산 트랜잭션 오류? ( 수락 된 답변 없음, 답변 만 도움이되지 않음 )
- 트랜잭션 내에서 연결된 서버를 사용하여 원격 테이블에 삽입하는 방법은 무엇입니까? ( 수락 된 답변이 해결되지 않음 )
내가 한 일은 관련이 없지만 어쨌든 게시하겠습니다.
Distributed Transaction Coordinator
두 시스템에서 서비스가 실행 중인지 확인하십시오 .두 컴퓨터에서 모든 MSDTC 보안을 비활성화합니다.
연결된 서버에서 임의 옵션을 켭니다.
저주와 맹세.
박살난 것들.
연결된 서버를
SELECT
사용할 수 있는지 확인했습니다 .SELECT * FROM ASILive.CustomerManagementSystem.dbo.Users .... (763 row(s) affected)
클라이언트 서버가
ping
원격 서버가 될 수 있는지 확인했습니다 .C:\Documents and Settings\avatar>ping asicmstest.contoso.com Pinging asicmstest.contoso.com [10.0.0.40] with 32 bytes of data: Reply from 10.0.0.40: bytes=32 time<1ms TTL=128 Reply from 10.0.0.40: bytes=32 time<1ms TTL=128 Reply from 10.0.0.40: bytes=32 time<1ms TTL=128 Reply from 10.0.0.40: bytes=32 time<1ms TTL=128 Ping statistics for 10.0.0.40: Packets: Sent = 4, Received = 4, Lost = 0 (0% loss), Approximate round trip times in milli-seconds: Minimum = 0ms, Maximum = 0ms, Average = 0ms
원격 서버가 이름으로 시작 서버로 다시 통신 할 수 있는지 확인했습니다.
C:\Documents and Settings\avatar>ping asitestserver.contoso.com Pinging asitestserver.contoso.com [10.0.0.22] with 32 bytes of data: Reply from 10.0.0.22: bytes=32 time<1ms TTL=128 Reply from 10.0.0.22: bytes=32 time<1ms TTL=128 Reply from 10.0.0.22: bytes=32 time<1ms TTL=128 Reply from 10.0.0.22: bytes=32 time<1ms TTL=128 Ping statistics for 10.0.0.22: Packets: Sent = 4, Received = 4, Lost = 0 (0% loss), Approximate round trip times in milli-seconds: Minimum = 0ms, Maximum = 0ms, Average = 0ms
@@SERVERNAME
두 서버의 서버 이름과 일치 하는지 확인했습니다 .SELECT @@SERVERNAME, SERVERPROPERTY('MachineName') ------------- ------------- ASITESTSERVER ASITESTSERVER
과
SELECT @@SERVERNAME, SERVERPROPERTY('MachineName') ---------- ---------- ASIGROBTEST ASIGROBTEST
비명
SET XACT_ABORT ON
내 쿼리를 발행 하기 전에 발행 :SET XACT_ABORT ON GO BEGIN DISTRIBUTED TRANSACTION SELECT TOP 1 * FROM Sessions
-
HKEY_LOCAL_MACHINE\Software\Microsoft\MSSQLServer
두 서버에서.