AutoCommit

IBX, FIBPlus, UIB, ADO, .Net и прочее-прочее-прочее, в общем все, что относится к созданию приложений, работающих с InterBase, Firebird и Yaffil - клиент-серверных, трехзвенных, консольных и т.п.

Модератор: kdv

Ответить
SAMZ
Сообщения: 128
Зарегистрирован: 21 мар 2005, 08:17

AutoCommit

Сообщение SAMZ » 11 апр 2005, 06:34

Уважаемые коллеги!
ПРосматривая переписку на форуме я видел мнение о том, что в 90 случаев из 100 AutoCommit враг разработчика. Может кто-нибудь намекнет, почему. Я в достаточно большом числе приложений использую библиотеку FIBPlus и в экземплярах TpFIBDataSet, как правило, устанавливаю AutoCommit. При количестве коннектов, до 80 и размере БД около 1 Гб неприятностей пока не было, но хотелось бы знать откуда она крадется.

kdv
Forum Admin
Сообщения: 6595
Зарегистрирован: 25 окт 2004, 18:07

Сообщение kdv » 11 апр 2005, 10:21

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

насчет неприятностей - см. IBAnalyst, в версии 1.78 есть калькулятор транзакций, который позволяет определить, много их стартует или мало.

кроме того часто автокоммит идет в CommitRetaining, а это тоже зло.

SAMZ
Сообщения: 128
Зарегистрирован: 21 мар 2005, 08:17

Сообщение SAMZ » 11 апр 2005, 10:58

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

насчет неприятностей - см. IBAnalyst, в версии 1.78 есть калькулятор транзакций, который позволяет определить, много их стартует или мало.

кроме того часто автокоммит идет в CommitRetaining, а это тоже зло.
Все понятно. Хочу сказать, что во всех случаях, когда использую AutoCommit TpFIBDataSet работает в контексте двух транзакций. По увязке с бизнес логикой тоже все понятно. Дополнительно хотел бы спросить порблемность CommitRetaining в 1.5.2 снята или нужно проявлять осторожность

kdv
Forum Admin
Сообщения: 6595
Зарегистрирован: 25 окт 2004, 18:07

Сообщение kdv » 11 апр 2005, 11:01

проблемность CommitRetaining в 1.5.2 снята
это как, простите? нигде она не снята и не будет снята. Просто от него надо избавляться, и все.

Klyk
Сообщения: 100
Зарегистрирован: 26 окт 2004, 23:28

Сообщение Klyk » 12 апр 2005, 06:42

CommitRetaining, а это тоже зло.
А почему?

kdv
Forum Admin
Сообщения: 6595
Зарегистрирован: 25 окт 2004, 18:07

Сообщение kdv » 12 апр 2005, 11:40

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

Ответить