Unable to begin a distributed transaction

Я пытаюсь выполнить 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 разговаривать друг с другом?

Похожие вопросы


То, что я сделал, не имеет отношения к делу, но я все равно это опубликую.

  1. Убедитесь, что служба Distributed Transaction Coordinator запущена на обеих машинах:

    enter image description here

    enter image description here

  2. Отключите всю безопасность MSDTC на обеих машинах:

    enter image description here

    enter image description here

  3. Включите случайные опции на связанном сервере:

enter image description here

  1. Проклинал и ругался.

  2. Разбил вещи.

  3. Проверил, что SELECT может использовать связанный сервер:

     SELECT * FROM ASILive.CustomerManagementSystem.dbo.Users
     ....
    
     (затронуто 763 строки)
    
  4. Проверено, что клиентский сервер может пинговать удаленный сервер:

     C:\Documents and Settings\avatar>ping asicmstest.contoso.com
    
     Pinging asicmstest.contoso.com [10.0.0.40] с 32 байтами данных:
    
     Ответ от 10.0.0.40: bytes=32 time<1ms TTL=128
     Ответ от 10.0.0.40: bytes=32 time<1ms TTL=128
     Ответ от 10.0.0.40: байты=32 время<1мс TTL=128
     Ответ от 10.0.0.40: байты=32 время<1мс TTL=128
    
     Статистика пинга для 10.0.0.40:
     Пакеты: Отправлено = 4, Получено = 4, Потеряно = 0 (0% потерь),
     Приблизительное время обхода в миллисекундах:
     Минимальное = 0 мс, Максимальное = 0 мс, Среднее = 0 мс.
    
  5. Проверил, что удаленный сервер может общаться обратно, по имени, с инициирующим сервером:

     C:\Documents and Settings\avatar>ping asitestserver.contoso.com
    
     Pinging asitestserver.contoso.com [10.0.0.22] с 32 байтами данных:
    
     Ответ от 10.0.0.22: bytes=32 time<1ms TTL=128
     Ответ от 10.0.0.22: bytes=32 time<1ms TTL=128
     Ответ от 10.0.0.22: байты=32 время<1мс TTL=128
     Ответ от 10.0.0.22: байты=32 время<1мс TTL=128
    
     Статистика пинга для 10.0.0.22:
     Пакеты: Отправлено = 4, Получено = 4, Потеряно = 0 (0% потерь),
     Приблизительное время обхода в миллисекундах:
     Минимальное = 0 мс, Максимальное = 0 мс, Среднее = 0 мс.
    
  6. Проверил, что @@SERVERNAME совпадает с именем сервера на обоих серверах:

     SELECT @@SERVERNAME, SERVERPROPERTY('MachineName')
    
     ------------- -------------
     ASITESTSERVER ASITESTSERVER
    

    и

     SELECT @@SERVERNAME, SERVERPROPERTY('MachineName')
    
     ---------- ----------
     ASIGROBTEST ASIGROBTEST
    
  7. Закричал

  8. Выдал SET XACT_ABORT ON перед выдачей моего запроса:

    SET XACT_ABORT ON
    GO
    НАЧАТЬ РАСПРЕДЕЛЕННУЮ ТРАНЗАКЦИЮ
    SELECT TOP 1 * FROM Sessions
    
  9. Granted Everyone Full Control to:

    HKEY_LOCAL_MACHINE\Software\Microsoft\MSSQLServer
    

    на обоих серверах.

89
задан Community 23 May 2017 в 12:34
поделиться

1 ответ

Я получал ту же ошибку, и я сумел решить ее путем конфигурирования MSDTC правильно на исходном сервере для разрешения исходящий и позволил DTC через брандмауэр окон.

Позволяют Distributed Transaction Coordinator, отмечают домен, частные и общедоступные опции

0
ответ дан 24 November 2019 в 07:22
поделиться
Другие вопросы по тегам:

Похожие вопросы: