![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Сетевое приложение под Interbase
e-master © (2003-04-27 18:36:00)Есть две программы одинаковых на двух машинах, работающих по сети под Interbase. При выборке данных всё нормально, а при изменении программа на той машине, которая была запущена позже - зависает. В чём дело? не в транзакциях ли ...
Johnmen (2003-04-30 00:06:00) [1]Еще добавлю, что поддержание RollbackRetaining появилось лишь начиная с версии 6.0. CommitRetaining - c 5.0.
Глюкавого поведения CommitRetaining не было замечено ни разу.
Ну а RollbackRetaining никогда не пользовался и не пользуюсь...:)
kaif (2003-04-29 23:42:00) [2]Я очень интенсивно использую длинные глобальные транзакции в IBX, но для Insert и Update предпочитаю отдельные транзакции и как возможно более сокращаю время работы таких транзакций. В режиме CommitRetaining ничего опасного я не замечал, хотя стараюсь применять Commit, где возможно, например, в "OK" модальных окон. Самое глюкавое дело это RollbackRetaining, логику которого я не очень себе представляю и стараюсь вообще не применять.
e-master (2003-04-29 20:31:00) [3]2Zacho,Johnmen>да используется IBX. сейчас попробую поставить nowait, спасибо за ссылочку и предупреждения ;)
Zacho (2003-04-28 09:40:00) [4]
> Johnmen © (28.04.03 09:35)
Я - нет :) Но читал о ней неоднократно :) Считаю, что лучше заранее предупредить человека о возможных проблемах.
Johnmen (2003-04-28 09:35:00) [5]>Zacho © (28.04.03 08:47)
>CommitRetaining может привести к "Too many savepoints .."
А может и не привести...:)
Ты сам то когда-нибудь видел сию ошибку ?
Zacho (2003-04-28 08:47:00) [6]
> Johnmen © (28.04.03 00:05)
> 1. Если используется IBX - то нормально.
Не обязательно. Во-первых, зависит от того, что для человека (и для задачи) "правильно", во-вторых от параметров транзакций, а в-третьих злоупотребление CommitRetaining может привести к "Too many savepoints .."
В общем, общее правило:
Транзакции должны быть как можно более короткими, допустимы длительные читающие Read Committed транзакции. Но все зависит от задачи.
Про транзакции советую почитать http://www.ibase.ru/devinfo/ibtrans.htmи остальные статьи на http://www.ibase.ru
Johnmen (2003-04-28 00:05:00) [7]1. Если используется IBX - то нормально.
2. В каком месте зависает ?
3. Есть подозрение, что один из параметров транзакции выставлен wait. Поставь nowait.
e-master (2003-04-27 19:14:00) [8]у меня транзакции всегда открыты и завершаются CommitRetaining. это правильно?