Я намагаюся запустити 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 на обох машинах:
Увімкніть випадкові параметри на пов'язаному сервері:
Прокляв і лаявся.
Розбив речі.
Перевірив, що a
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
на обох серверах.