Я пытаюсь запустить 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 Severs разговаривать друг с другом?
Связанные вопросы
- Операция не может быть выполнена, поскольку поставщик 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
-
Предоставлено
Everyone
Full Control
до:HKEY_LOCAL_MACHINE\Software\Microsoft\MSSQLServer
на обоих серверах.