Несколько SQL транзакционные команды через различные соединения с базой данных

Я думаю, что вам нужен внутренний продукт. Для двух векторов v,uR^n или любых других пространствах внутренних произведений) /|v||u|= cos(alpha). (где alpha - это угол между векторами)

, более подробно см .:

http://en.wikipedia.org/wiki/Inner_product_space

6
задан Jason Kanaris 18 September 2009 в 15:40
поделиться

6 ответов

К сожалению, обе официальные документы от обоих поставщиков кажутся счастливыми. упомянуть поставщика взаимодействия или другого, но оба, похоже, не хотят признавать существование предложения другой базы данных.

Возможно, вам потребуется документация по Oracle Services for Microsoft Transaction Server .

  • Документация Oracle:
    • 10g
    • 9i
    • Существуют более старые версии, но, похоже, многое изменилось после 8

Начиная с ODP.NET 10.2.0.3 и далее, вы должны (если вы правильно настроили MS DTC и присутствует DLL OraMTS) иметь возможность просто использовать System.Transactions TransactionScope так же, как если бы вы выполняли координацию между двумя базами данных сервера sql, но с использованием сервера sql и соединения оракула. Для того, чтобы это работало из коробки, может потребоваться Oracle 10 и более поздних версий.

Вот руководство по использованию DTC начиная с .net 2.0 и Sql Server 2005 и далее . В частности, он отмечает требования к ОС (которые больше не должны быть проблемой, но их стоит отметить). Кроме того, если обе базы данных и клиент не находятся на одном компьютере, необходимо включить сетевой DTC.

5
ответ дан 17 December 2019 в 02:33
поделиться

Я использую связанные серверы для всех подобных задач. Это упрощает нам управление информацией о подключении и учетными данными. По сути, все наши потребности в одном магазине.

Edit: more details - У нас есть одна база данных, которая используется исключительно для отчетности. Мы получаем данные с серверов по всей корпорации. У нас нет единой учетной записи для доступа к этим серверам, некоторые из них мы используем функциональный идентификатор, а другие - наши учетные данные AD. Нам лучше всего сработало объединение всех этих подключений в отдельные связанные серверы. На нашем сервере отчетов в настоящее время имеется 16 связанных серверов.

Мы также объединяем наши запросы в представления для облегчения доступа к нашим приложениям и отчетам Crystal. Поэтому вместо того, чтобы создавать несколько строк подключения в нашем коде, мы используем только одну глобальную строку для подключения к базе данных отчетов.

1
ответ дан 17 December 2019 в 02:33
поделиться

Это классическая проблема распределенной транзакции, для которой предназначен MSDTC. Поищите мониторы транзакций и протокол XA для более глубокого описания этого класса проблем.

0
ответ дан 17 December 2019 в 02:33
поделиться

При использовании нескольких подключений вам потребуется использовать DTC. Одно соединение может управлять одной транзакцией, но если у вас несколько соединений, вам понадобится координатор транзакций для обработки протокола двухфазной фиксации.

0
ответ дан 17 December 2019 в 02:33
поделиться

Мой ответ может быть немного странным, но я рекомендую вам (если это технически возможно) оценить использование двух независимых транзакций для каждой базы данных. В отношении распределенных транзакций / XA меня беспокоит общая производительность / масштабируемость / задержка базы данных.

2 ссылки, которые попытаются подтвердить мою точку зрения:

  1. Мартин Фаулер отмечает: «Вы должны обратить внимание на порядок ваших коммитов, получая в первую очередь наиболее важные. При каждой фиксации вы должны проверять, что она была успешной, и решать, что делать, если она терпит неудачу. "
  2. Интервью по архитектуре eBay
1
ответ дан 17 December 2019 в 02:33
поделиться

Да, вам необходимо создать область транзакции, и поставщики ADO.Net для SQL и Oracle будут регистрировать каждое соединение в одной распределенной транзакции, координируемой MSDTC.

MSDN документация по настройке MSDTC довольно сложна и охватывает конкретно вопросы, которые вы задаете: Включить исключения брандмауэра для MS DTC , Настройка безопасности для распределенных транзакций .

Вы не упоминаете ОС, на которой работает ваш клиент, версия SQL Server, версия Oracle, внутренняя ОС для SQL Server (ов) и Oracle (ов). Вы также не сообщаете о любой фактической проблеме, с которой вы столкнулись, или сообщениях об ошибках, которые вы видели. Сейчас проблема, кажется, находится где-то между клавиатурой и стулом.

-1
ответ дан 17 December 2019 в 02:33
поделиться
Другие вопросы по тегам:

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