Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 LINKED SERVER unable to begin a distributed transaction  [new]
гогол
Member [заблокирован]

Откуда:
Сообщений: 88
Добрый день.

Такой запрос выполняется успешно:
EXECUTE [10.0.0.2].master.dbo.xp_sqlagent_enum_jobs 1,'';




А такой:
insert into @CurrentJobs 
EXECUTE [10.0.0.2].master.dbo.xp_sqlagent_enum_jobs 1,'';


Выдает ошибку:


OLE DB provider "SQLNCLI" for linked server "10.0.0.2" returned message "Диспетчер транзакций отключил поддержку удаленных и сетевых транзакций.".
Сообщение 7391, уровень 16, состояние 2, строка 31
The operation could not be performed because OLE DB provider "SQLNCLI" for linked server "10.0.0.2" was unable to begin a distributed transaction.



При этом
@CurrentJobs - это табличная переменная и запрос с локального сервера в нее выполняется успешно:
insert into @CurrentJobs 
EXECUTE master.dbo.xp_sqlagent_enum_jobs 1,'';



Как присвоить значение табличной переменной из EXECUTE с линкованого сервера?
6 дек 17, 12:57    [21010551]     Ответить | Цитировать Сообщить модератору
 Re: LINKED SERVER unable to begin a distributed transaction  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 7757
гогол,

select * from msdb.dbo.sysjobs и т.п.
6 дек 17, 13:00    [21010561]     Ответить | Цитировать Сообщить модератору
 Re: LINKED SERVER unable to begin a distributed transaction  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 7757
У вас или DTC на обоих серверах не настроен или что-то ещё.
6 дек 17, 13:01    [21010564]     Ответить | Цитировать Сообщить модератору
 Re: LINKED SERVER unable to begin a distributed transaction  [new]
гогол
Member [заблокирован]

Откуда:
Сообщений: 88
Владислав Колосов
гогол,

select * from msdb.dbo.sysjobs и т.п.


Мне нужен статус джоба его там нет ((
6 дек 17, 13:07    [21010590]     Ответить | Цитировать Сообщить модератору
 Re: LINKED SERVER unable to begin a distributed transaction  [new]
гогол
Member [заблокирован]

Откуда:
Сообщений: 88
Владислав Колосов
У вас или DTC на обоих серверах не настроен или что-то ещё.


DTS True
6 дек 17, 13:08    [21010591]     Ответить | Цитировать Сообщить модератору
 Re: LINKED SERVER unable to begin a distributed transaction  [new]
гогол
Member [заблокирован]

Откуда:
Сообщений: 88
Владислав Колосов
У вас или DTC на обоих серверах не настроен или что-то ещё.



я спутал с RPC .



Подскажите пожалуйста где настройки DTC проверить?

К сообщению приложен файл. Размер - 31Kb
6 дек 17, 13:44    [21010781]     Ответить | Цитировать Сообщить модератору
 Re: LINKED SERVER unable to begin a distributed transaction  [new]
человек_ниоткуда
Guest
гогол
-- не явной транзакции нет 
EXECUTE [10.0.0.2].master.dbo.xp_sqlagent_enum_jobs 1,'';


-- не явная транзакция началась (ибо это insert)
insert into @CurrentJobs 
EXECUTE [10.0.0.2].master.dbo.xp_sqlagent_enum_jobs 1,'';



гогол
Как присвоить значение табличной переменной из EXECUTE с линкованого сервера?

Никак. Insert - это всегда транзакция. А если идёт обращение к линкеду то будет распределённая.

Можно на уровне провайдера отключить транзакции (опция distribtx в строке соединения). В provider string прописывается при создании linked'а.

Можно проверить работу DTS: https://www.google.ru/search?q=dtcping и починить то, что не работает https://www.google.ru/search?q=how to use dtcping
Можно настроит сеть для DTS: https://www.google.ru/search?q=distributed transaction service port
6 дек 17, 14:06    [21010926]     Ответить | Цитировать Сообщить модератору
 Re: LINKED SERVER unable to begin a distributed transaction  [new]
гогол
Member [заблокирован]

Откуда:
Сообщений: 88
DTCPing по IP не пингует:

remote host name can only be NetBIOS name


По имени сервера с доменом тоже
6 дек 17, 16:20    [21011713]     Ответить | Цитировать Сообщить модератору
 Re: LINKED SERVER unable to begin a distributed transaction  [new]
гогол
Member [заблокирован]

Откуда:
Сообщений: 88
ага, надо на двух сразу запустить...

пока не нашел где нетбиос имя брать правда...
6 дек 17, 16:24    [21011724]     Ответить | Цитировать Сообщить модератору
 Re: LINKED SERVER unable to begin a distributed transaction  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6801
от DTC можно отказаться переписав через OPENQUERY
6 дек 17, 16:29    [21011748]     Ответить | Цитировать Сообщить модератору
 Re: LINKED SERVER unable to begin a distributed transaction  [new]
гогол
Member [заблокирован]

Откуда:
Сообщений: 88
TaPaK
от DTC можно отказаться переписав через OPENQUERY



Что-то не получается получить значения функции, как уже только не пробовал:


SELECT * FROM  OPENQUERY ( [10.0.0.2] ,'EXECUTE master.dbo.xp_sqlagent_enum_jobs 1,'''';' )
6 дек 17, 16:56    [21011864]     Ответить | Цитировать Сообщить модератору
 Re: LINKED SERVER unable to begin a distributed transaction  [new]
гогол
Member [заблокирован]

Откуда:
Сообщений: 88
гогол
TaPaK
от DTC можно отказаться переписав через OPENQUERY



Что-то не получается получить значения функции, как уже только не пробовал:


SELECT * FROM  OPENQUERY ( [10.0.0.2] ,'EXECUTE master.dbo.xp_sqlagent_enum_jobs 1,'''';' )



Добавил SET FMTONLY OFF и сработало о_О
6 дек 17, 17:00    [21011890]     Ответить | Цитировать Сообщить модератору
 Re: LINKED SERVER unable to begin a distributed transaction  [new]
гогол
Member [заблокирован]

Откуда:
Сообщений: 88
На счет DTCPing .


Запускаю его.

Он создает лог.

В логе прописаны настройки.


Так в этих настройках NetBIOS name пустое
6 дек 17, 17:10    [21011955]     Ответить | Цитировать Сообщить модератору
 Re: LINKED SERVER unable to begin a distributed transaction  [new]
Konst_One
Member

Откуда:
Сообщений: 11517
UDP port 1434, see SQL Server Browser Service
6 дек 17, 17:28    [21012088]     Ответить | Цитировать Сообщить модератору
 Re: LINKED SERVER unable to begin a distributed transaction  [new]
гогол
Member [заблокирован]

Откуда:
Сообщений: 88
Konst_One
UDP port 1434, see SQL Server Browser Service


ничего не понял... причем тут SSBS ?
6 дек 17, 17:42    [21012160]     Ответить | Цитировать Сообщить модератору
 Re: LINKED SERVER unable to begin a distributed transaction  [new]
Konst_One
Member

Откуда:
Сообщений: 11517
проверьте порт, должен быть доступен с обеих сторон
6 дек 17, 17:44    [21012164]     Ответить | Цитировать Сообщить модератору
 Re: LINKED SERVER unable to begin a distributed transaction  [new]
гогол
Member [заблокирован]

Откуда:
Сообщений: 88
Konst_One
проверьте порт, должен быть доступен с обеих сторон


проверил телнотом - доступны.
6 дек 17, 17:57    [21012225]     Ответить | Цитировать Сообщить модератору
 Re: LINKED SERVER unable to begin a distributed transaction  [new]
felix_ff
Member

Откуда: Moscow
Сообщений: 1364
гогол,

what? telnet клиент проверяет доступность только TCP порта.

а вообще проверьте 1) services.msc => включена ли служба MSDTC
2) dcomcfg => используется ли для хоста локальный координатор по умолчанию?
в безопасности учетка входа NT AUTHORITY\Network service
6 дек 17, 18:24    [21012374]     Ответить | Цитировать Сообщить модератору
 Re: LINKED SERVER unable to begin a distributed transaction  [new]
felix_ff
Member

Откуда: Moscow
Сообщений: 1364
ну и DTC имеет доступ к сети и разрешена связь с диспетчером.
6 дек 17, 18:26    [21012380]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить