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

Откуда:
Сообщений: 94
У меня выявилась такая проблема, которую я пока не знаю как разрешить.
Вдруг кто-то что подскажет?

MS SQL Server 2008 R2. На нём есть хранимая процедура. К моменту когда она вызывается, уже начата транзакция.
Внутри неё фрагмент кода, вносящий изменения в базу.
Сейчас вот выяснилось, что в некоторых случаях нужно откатывать изменения сделанные этим фрагментом. Казалось бы, решением может быть SAVE TRANSACTION.
Но также выяснилось (я раньше и не знал), что моя хранимая процедура работает в рамках не просто транзакции а distributed транзакции. Хотя никакой distributed базы и нет. Причина в том, что эта процедура вызывается BizTalk-ом, а он почему-то все транзакции выполняет как DTC (точнее - там происходит escalation локальной транзакции в distributed)

Ну а SAVE TRANSACTION "...is not supported in distributed transactions started either explicitly with BEGIN DISTRIBUTED TRANSACTION or escalated from a local transaction"

Можно ли как-то из этой ситуации выйти?
23 апр 14, 19:41    [15925032]     Ответить | Цитировать Сообщить модератору
 Re: DTC и откат  [new]
invm
Member

Откуда: Москва
Сообщений: 9825
KellyLynch
Сейчас вот выяснилось, что в некоторых случаях нужно откатывать изменения сделанные этим фрагментом.
Заранее проверять все условия, которые необходимо соблюсти для выполнения этого фрагмента. Тогда не придется ничего откатывать.
23 апр 14, 20:05    [15925129]     Ответить | Цитировать Сообщить модератору
 Re: DTC и откат  [new]
KellyLynch
Member

Откуда:
Сообщений: 94
invm
KellyLynch
Сейчас вот выяснилось, что в некоторых случаях нужно откатывать изменения сделанные этим фрагментом.
Заранее проверять все условия, которые необходимо соблюсти для выполнения этого фрагмента. Тогда не придется ничего откатывать.


Да - только об этом надо было заранее сказать тому кто накатал этот кусок на 2000 строк .... :-(
23 апр 14, 20:08    [15925142]     Ответить | Цитировать Сообщить модератору
 Re: DTC и откат  [new]
invm
Member

Откуда: Москва
Сообщений: 9825
Как размер фрагмента коррелирует с условиями его выполнения/не выполнения?
23 апр 14, 20:31    [15925262]     Ответить | Цитировать Сообщить модератору
 Re: DTC и откат  [new]
KellyLynch
Member

Откуда:
Сообщений: 94
invm
Как размер фрагмента коррелирует с условиями его выполнения/не выполнения?


"с условиями его выполнения/не выполнения" - они(условия) "размазаны" по всему фрагменту, вперемешку с собственно изменениями данных...
23 апр 14, 20:47    [15925332]     Ответить | Цитировать Сообщить модератору
 Re: DTC и откат  [new]
invm
Member

Откуда: Москва
Сообщений: 9825
KellyLynch
они(условия) "размазаны" по всему фрагменту
Тогда вам придется либо научить BizTalk обходиться локальными транзакциями, либо переписать этот фрагмент.
23 апр 14, 21:05    [15925422]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить