Информация об изменениях

Сообщение Re: Про распределенные транзакции и разные СУБД от 28.10.2021 5:26

Изменено 28.10.2021 6:16 B7_Ruslan

Re: Про распределенные транзакции и разные СУБД
Здравствуйте, Shmj, Вы писали:

S>Кто может сказать про это:


S>
S>var scope = new TransactionScope();
S>...
S>scope.Complete();
S>


S>Если внутри scope происходят действия в двух разных СБУД, гарантируется ли распределенная транзакция и гарантированный откат? А так же все ли официально поставляемые провайдеры СУБД поддерживают этот функционал?


S>Просто если вручную делать 2 подключения, 2 Commit-а. Если второй Commit не сработал — то первый уже откатить нельзя. TransactionScope вроде решает эту проблему или тоже не гаранрированно?


2 базы MS SQL могут так работать, если настроить MSDTC.
2 Postgres вроде смогут работать, но там координатора нет, со всеми вытекающими.
2 Oracle с купленным координатором в теории должны.
Но 2 разные СУБД завести — мне кажется, это фантастика.
Re: Про распределенные транзакции и разные СУБД
Здравствуйте, Shmj, Вы писали:

S>Кто может сказать про это:


S>
S>var scope = new TransactionScope();
S>...
S>scope.Complete();
S>


S>Если внутри scope происходят действия в двух разных СБУД, гарантируется ли распределенная транзакция и гарантированный откат? А так же все ли официально поставляемые провайдеры СУБД поддерживают этот функционал?


S>Просто если вручную делать 2 подключения, 2 Commit-а. Если второй Commit не сработал — то первый уже откатить нельзя. TransactionScope вроде решает эту проблему или тоже не гаранрированно?


2 базы MS SQL могут так работать, если настроить MSDTC.
2 Postgres вроде смогут работать, но там координатора нет, со всеми вытекающими.
2 Oracle с купленным координатором в теории должны.
Но 2 разные СУБД завести — мне кажется, это фантастика.

Даже, если сможете запустить это — будет невысокая производительность.
Нельзя просто так взять и во все места засунуть 2PC-транзакции.