Я пытаюсь запустить 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
может ли a использовать связанный сервер :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
на обоих серверах.