Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Сетевое приложение под 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. это правильно?


Наверх

Титульная страница Поиск, карта сайта Написать письмо