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

Откуда:
Сообщений: 250
Всем привет,

Firebird 2.5.9, Delphi 10.4.1.
Если в FireDac нет обьекта транзакции то FireDac создаёт его динамически.
С какими параметрами если у коннекта стоит Autocommit?
В одном месте вылез deadlock что наводит на мысль что no record version используется.
Где это можно вообще посмотреть? Или надо исходники рыть?

Спасибо
29 мар 21, 17:24    [22301574]     Ответить | Цитировать Сообщить модератору
 Re: Параметры транзакции по умолчанию в FireDac  [new]
_Vasilisk_
Member

Откуда: Украина, Харьков
Сообщений: 12789
22292006
29 мар 21, 17:29    [22301577]     Ответить | Цитировать Сообщить модератору
 Re: Параметры транзакции по умолчанию в FireDac  [new]
hlopotun
Member

Откуда:
Сообщений: 250
_Vasilisk_
22292006

ок, спасибо
так и оказалось NoRecordVersion
29 мар 21, 17:35    [22301580]     Ответить | Цитировать Сообщить модератору
 Re: Параметры транзакции по умолчанию в FireDac  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 52921

Другой вопрос откуда у него вдруг read committed вместо умолчательного concurrenty/snapshot.

Posted via ActualForum NNTP Server 1.5

29 мар 21, 18:15    [22301620]     Ответить | Цитировать Сообщить модератору
 Re: Параметры транзакции по умолчанию в FireDac  [new]
Мимопроходящий
Member

Откуда: бурятский тундрюк, эсквайр
Сообщений: 32207

29.03.2021 18:15, Dimitry Sibiryakov пишет:
> Другой вопрос откуда у него вдруг read committed вместо умолчательного concurrenty/snapshot.

это же не модно.
компонентописатели слышали об этом.
но не более.

Posted via ActualForum NNTP Server 1.5

29 мар 21, 18:34    [22301628]     Ответить | Цитировать Сообщить модератору
 Re: Параметры транзакции по умолчанию в FireDac  [new]
Dmitry Arefiev
Member

Откуда:
Сообщений: 9961
Я посмотрел, FireDAC со всеми опциями по умолчанию выставляет:
* write
* nowait
Что будет правильным ?
* вообще ничего не выставлять
* что-то иное
30 мар 21, 22:38    [22302257]     Ответить | Цитировать Сообщить модератору
 Re: Параметры транзакции по умолчанию в FireDac  [new]
Мимопроходящий
Member

Откуда: бурятский тундрюк, эсквайр
Сообщений: 32207

это не уровни изоляции

Posted via ActualForum NNTP Server 1.5

31 мар 21, 12:15    [22302421]     Ответить | Цитировать Сообщить модератору
 Re: Параметры транзакции по умолчанию в FireDac  [new]
kdv
Member

Откуда: iBase.ru
Сообщений: 29662
hlopotun,

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

По параметрам транзакций см.
http://www.ibase.ru/ibx/
http://www.ibase.ru/ibtrans/
еще есть видео
https:// youtu.be/n35L7gdw51Q
https:// youtu.be/9Th_14X6Ckg

p.s. я так понимаю, что моя многолетняя борьба с "умолчательным no record version" в разных компонентах и драйверах еще не кончилась...
31 мар 21, 13:22    [22302468]     Ответить | Цитировать Сообщить модератору
 Re: Параметры транзакции по умолчанию в FireDac  [new]
bk0010
Member

Откуда:
Сообщений: 5058
Dmitry Arefiev
Я посмотрел, FireDAC со всеми опциями по умолчанию выставляет:
* write
* nowait
Что будет правильным ?
* вообще ничего не выставлять
* что-то иное
Правильным будет не менять поведение. Это очень отравляет жизнь при попытках перехода на новую версию.
31 мар 21, 14:21    [22302506]     Ответить | Цитировать Сообщить модератору
 Re: Параметры транзакции по умолчанию в FireDac  [new]
Dmitry Arefiev
Member

Откуда:
Сообщений: 9961
?
31 мар 21, 14:31    [22302517]     Ответить | Цитировать Сообщить модератору
 Re: Параметры транзакции по умолчанию в FireDac  [new]
Vlad F
Member

Откуда:
Сообщений: 1352
Dmitry Arefiev,

read_committed
rec_version
nowait

Как вариант.
31 мар 21, 15:01    [22302532]     Ответить | Цитировать Сообщить модератору
 Re: Параметры транзакции по умолчанию в FireDac  [new]
cptngrb
Member

Откуда:
Сообщений: 681
можно взять за правило выставлять параметры транзакции в своем коде и при переходе на новую версию не испытывать боль

Сообщение было отредактировано: 31 мар 21, 15:33
31 мар 21, 15:40    [22302567]     Ответить | Цитировать Сообщить модератору
 Re: Параметры транзакции по умолчанию в FireDac  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 52921

Vlad F
Как вариант.

Плохой вариант, но для совместимости с Оракулом или МС, которых снапшот напрягает - сойдёт.

И таки да, я бы в качестве умолчания взял полное умолчание, используемое при полном
отсуnствии TPB, то есть concurrency, write, wait.

Posted via ActualForum NNTP Server 1.5

31 мар 21, 15:47    [22302572]     Ответить | Цитировать Сообщить модератору
 Re: Параметры транзакции по умолчанию в FireDac  [new]
Vlad F
Member

Откуда:
Сообщений: 1352
Dimitry Sibiryakov

Плохой вариант, но для совместимости с Оракулом или МС, которых снапшот напрягает - сойдёт.

- Пошлите лучших из лучших!
- Лучшие из лучших зализывают раны!!
- Тогда пошлите лучших из худших!!!))

Сообщение было отредактировано: 31 мар 21, 15:46
31 мар 21, 15:50    [22302578]     Ответить | Цитировать Сообщить модератору
 Re: Параметры транзакции по умолчанию в FireDac  [new]
Dmitry Arefiev
Member

Откуда:
Сообщений: 9961
Тогда предложу логику:
* когда TFDTxOptions.Isolation = xiUnspecified, тогда TPB пустая. Т.е. свойства TFDTxOptions игнорируются
* когда TFDTxOptions.Isolation <> xiUnspecified, тогда используются свойства TFDTxOptions
31 мар 21, 15:54    [22302581]     Ответить | Цитировать Сообщить модератору
Все форумы / Delphi Ответить