Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Распределённые запросы (DTC)  [new]
stdenis
Member

Откуда: Москва
Сообщений: 67
Добрый день!
Проблема состоит в следующем.
Необходимо с одного SQL сервера (S1) выполнить распределённый запрос, который обращается к данным на другом (S2). Запрос , например, типа:
begin tran
select * from S2.meb.dbo.words
commit tran

Если сервера находятся во внутренней сетке, то запрос проходит. Если S1 вне локальной сети, то вываливается ошибка:
Server: Msg 7391, Level 16, State 1, Line 3
The operation could not be performed because the OLE DB provider 'SQLOLEDB' was unable to begin a distributed transaction.
[OLE/DB provider returned message: New transaction cannot enlist in the specified transaction coordinator. ]

В чём проблема ?

На S1 настроен Linked Server. Локальная сеть защищена firewall'ом и на S2 открыт только 1433.
4 апр 01, 17:26    [5081]     Ответить | Цитировать Сообщить модератору
 RE:Распределённые запросы (DTC)  [new]
Fompro
Member

Откуда:
Сообщений: 363
Вопросы:
1. Что значит вне ЛВС?
2. Почему Linked , а не Remote ?
4 апр 01, 21:38    [5082]     Ответить | Цитировать Сообщить модератору
 RE:Распределённые запросы (DTC)  [new]
AlexLV
Guest
Proverit lexko:

ping 'server name'

esli ne pinguetsja to na S1 nado ispolzovat IP kak imja servera
4 апр 01, 22:55    [5083]     Ответить | Цитировать Сообщить модератору
 RE:Распределённые запросы (DTC)  [new]
stdenis
Member

Откуда: Москва
Сообщений: 67
По вопросам:
1. Значит в Internete (в другой подсетке)
2. Насколько я знаю, Remote используется только для выполнения удалённых сохранёнок.

PS. На firewall смотрел лог для сервера S2, никаких блокировок по другим портам нет (хотя и используется RPC).
5 апр 01, 10:20    [5084]     Ответить | Цитировать Сообщить модератору
 RE:Распределённые запросы (DTC)  [new]
stdenis
Member

Откуда: Москва
Сообщений: 67
По поводу ping.
Всё пингуется.
На S1 настроен alias для S2 (по TCP/IP:1433). И Linked Server создан используя этот alias.

Если выполнить просто
select * from S2.meb.dbo.words
то все ОК. А вот с transaction не выходит.
5 апр 01, 10:30    [5085]     Ответить | Цитировать Сообщить модератору
Между сообщениями интервал более 1 года.
 Re: Распределённые запросы (DTC)  [new]
OLLY
Member

Откуда:
Сообщений: 24
У меня то же такая же фигня. Не могу побороть. Но заметил, что если вызывать удаленную процедуру из локальной процедуры без объявления транзакции, то работает. Если транзакция определена, то вываливается ошибка OLE/DB provider returned message: New transaction cannot enlist in the specified transaction coordinator.
27 сен 02, 11:29    [58341]     Ответить | Цитировать Сообщить модератору
 Re: Распределённые запросы (DTC)  [new]
ziktuw
Member

Откуда:
Сообщений: 3552
Configuring the DTC to Work Through a Firewall
27 сен 02, 11:42    [58357]     Ответить | Цитировать Сообщить модератору
 Re: Распределённые запросы (DTC)  [new]
Nickolay
Member

Откуда: Деревня Б.Г.
Сообщений: 1853
похоже у тебя S2 (куда ты обращаешся) не прописан S1 как Linked. При работе в локальной сети это не нужно, так как имя сервера совпадает с именем в локальной сети и находится через доменный контроллер. При работе через интернет нужно соединение в оба конца (по крайней мере для DTC)
27 сен 02, 12:46    [58407]     Ответить | Цитировать Сообщить модератору
 Re: Распределённые запросы (DTC)  [new]
Вася
Member

Откуда: местный
Сообщений: 543
у меня прописан, все равно не работает :(
28 май 03, 10:19    [212349]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить