У меня есть отчет Business Objects Web Intelligence, который выполняет распределенный запрос к двум базам данных.
Когда я запускаю этот запрос, который включает НАЧАЛО РАСПРЕДЕЛЕННОЙ ЗАПРОСА СДЕЛКИ
SET xact_abort ON
GO
ИСПОЛЬЗОВАНИЕ Pipeline2
GO
НАЧАЛО РАСПРЕДЕЛЕННОЙ СДЕЛКИ
SELECT * FROM [CQSR_PROD] .CqUSer.Cq4User1.Defect
COMMIT TRAN
GO
Я получаю эту ошибку:
Сервер: сообщение 7391, уровень 16, состояние 1, строка 2
Операция не может быть выполнена, поскольку поставщик OLE DB 'SQLOLEDB' не смог начать распределенную транзакцию.
[Поставщик OLE / DB возвратил сообщение: новая транзакция не может быть включена в указанный координатор транзакций. ]
Трассировка ошибок OLE DB [поставщик OLE / DB 'SQLOLEDB' ITransactionJoin :: JoinTransaction возвратил 0x8004d00a].
Я хочу устранить эту ошибку. Я видел эту статью KB ...
http://support.microsoft.com/kb/839279
и до сих пор администраторы Sys включили флажок «Разрешить входящий», но это не помогло. Я считаю, что все серверы участвуют в качестве серверов Windows 2003.
Получение изменений, внесенных в производственные серверы, чтобы опробовать оставшиеся опции, объясненные в статье KB, хуже, чем вырывать зубы, поскольку они очень осторожны в отношении своих изменений. В результате я ищу работу вокруг:
Есть ли способ указать BO NOT на выполнение распределенной транзакции при запросе? Если я удаляю «НАЧАЛО РАСПРЕДЕЛЕННОЙ СДЕЛКИ» из вышеупомянутого SQL, все работает. Кажется, BO делает это по умолчанию.