> Нарколог на звонки не отвечает, спрошу здесь.

  Тута я, тута

> -----
> Мы все "знаем" про двухфазный коммит. Ну типа это круто и все такое.
>
> Ну так вот. В деструкторе моего класса управляющего транзакцией есть код
> типа
>
> IF(ДескрипторТранзакции!=NULL)
>  РоллбакТранзакции(ДескрипторТранзакции);
>
> Посетила мысль. А если транзакция была запрепарена. То есть она участвует в
> распределенной транзакции и координатор выполнил препаре это транзакции. Про
> остальные участвующие транзакции нифига не известно. Тут мой объект
> по-садистки уничтожают. Такое бывает.
>
> Ну так вот - получается
> - что откатывать нельзя. Вдруг все запрепарились. Тогда координатор считает
> что все OK. И если у него кто спросит "что делать" - он скажет коммитить. И
> если кто в тихаря откатится - будет ... нехорошо
>
> - коммитить тоже нельзя. Вдруг не все запрепарились? Координатор будет
> считать - что все плохо и надо откатывать. Короче коммит - тоже не хорошо.
>
> - просто взять и забить на этот дескриптор транзакции. Если подключение
> продолжает свой нелегкий жизненный путь, то в gds32 (тьфу ты - fbclient.dll)
> появляется бесходный дескриптор. Короче, утечка памяти.

  Не появляется. Насколько я помню (сейчас смотреть не буду),
препарированные
тр-ции учитываются особым образом. Сервер их не откатывает и не
ругается на их
наличие при дисконнекте, клиент тоже о них знает и удалит при
дисконнекте.
По крайней так оно задумано и должно быть.

Нарколог,
Хорсун Влад
  • - Kovalenko Dmitry
    • Re: Странный вопрос про двух-фазный коммит транзакци... hvlad
    • Re: - Dmitry Lendel

Ответить