![]() |
Модераторы: Akella |
![]() ![]() ![]() |
|
Wardena |
|
|||
![]() Пуфыфтик =) Профиль Группа: Участник Сообщений: 16 Регистрация: 13.9.2006 Где: Уфа Репутация: нет Всего: нет |
При работе с базой данных firebird 2.1.3 из VisualStudio посредством FirebirdSql.Data.FirebirdClient.dll была обнаружена странная закономерность. Иногда при выполнении запроса на выборку большого объема данных программа впадает в ступор. Спустя месяц я кажется поняла что к нему приводит... Незакрытая транзация. Для примера, я совершаю какую-то выборку данных в IB Expert и оставляю его открытым, не выполняя Commit. Пытаюсь выполнить Select из программы - ступор, причем как только закрываю транзакцию в IB Expert, то запрос тут же выполняется, выходя из ступора.
Это такая особенность firebird-а или как? К рассматриваемой базе подключатся из программ написанных давным давно какими-то школьниками на Delphi и видимо там не совсем продумано закрытие транзаций. Как быть? почему собственного Delphi пофиг на эти нюансы, а из VisualStudio не работает? |
|||
|
||||
former |
|
|||
![]() MEMS Expert ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1166 Регистрация: 1.3.2006 Где: Россия Репутация: 1 Всего: 17 |
Wardena, очевидно, что транзакции в программе выполняют блокировку записи. Разберитесь с настройкой транзакций.
Это сообщение отредактировал(а) former - 27.4.2010, 10:57 -------------------- Достаточно снизить уровень мышления, чтобы иные почувствовали почву под ногами. |
|||
|
||||
Wardena |
|
|||
![]() Пуфыфтик =) Профиль Группа: Участник Сообщений: 16 Регистрация: 13.9.2006 Где: Уфа Репутация: нет Всего: нет |
Транзакции в какой программе? IB Expert? я не понимаю на какой стороне мне разбираться, мне нужно поднастроить сервер firebird? или мне нужно поднастроить настройки подключения? или еще что? У меня в программе вообще транзакции не используются, у меня примется обычный метод FbDataAdapter.Fill для выгрузки данных и все...
|
|||
|
||||
Deniz |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1251 Регистрация: 16.10.2004 Где: Новый Уренгой Репутация: 22 Всего: 44 |
Wardena, запусти две версии IBExpert'а.
В первом
Во втором тот select из прошраммы Результат опиши здесь. -------------------- "Для того чтобы сделать шаг вперед, достаточно пинка сзади" (с) |
|||
|
||||
beroal |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 212 Регистрация: 18.1.2003 Где: Украина Репутация: нет Всего: 3 |
Это особенность транзакций. Если первая программа не закрыла транзакцию, значит она планирует и дальше работать с БД и другие программы ей будут мешать. В вашем случае этот конфликт разрешается с помощью блокировки. Если проблема возникает только при использовании IBExpert, то надо просто откатывать транзакцию в IBExpert. |
|||
|
||||
Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 20 Всего: 329 |
Ты сначала расскажи нам, какие параметры транзакций у тебя указаны в эксперте и у тебя в программе, если, конечно, ты там хоть-что-то указывал.
|
|||
|
||||
Deniz |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1251 Регистрация: 16.10.2004 Где: Новый Уренгой Репутация: 22 Всего: 44 |
FireBird версионник, а не блокировочник, и чтобы сделать блокировку записи, нужно еще постараться, например как-то так -------------------- "Для того чтобы сделать шаг вперед, достаточно пинка сзади" (с) |
|||
|
||||
Deniz |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1251 Регистрация: 16.10.2004 Где: Новый Уренгой Репутация: 22 Всего: 44 |
Wardena, почитай статьи на ibase.ru особенно про транзакции
-------------------- "Для того чтобы сделать шаг вперед, достаточно пинка сзади" (с) |
|||
|
||||
Wardena |
|
|||
![]() Пуфыфтик =) Профиль Группа: Участник Сообщений: 16 Регистрация: 13.9.2006 Где: Уфа Репутация: нет Всего: нет |
Проверила. Все работает! 2 IB Experta выполняют один и те же запросы не блокируя друг друга! Добавлено через 3 минуты и 1 секунду
Никаких настроек транзакций в IB Experte не производила, самое интересное то, что программа написанная на дельфи много лет назад работает как часы и клала она на IB Expert и его транзакции... Может быть мне в моей программе надо в настройках подключения указывать игнор транзакций или еще что в этом роде? |
|||
|
||||
former |
|
|||
![]() MEMS Expert ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1166 Регистрация: 1.3.2006 Где: Россия Репутация: 1 Всего: 17 |
А ведь я про это говорил с самого начала. Необходимо в программе (твоей) настроить транзакции. Ссылки по работе с транзакциями уже даны выше. -------------------- Достаточно снизить уровень мышления, чтобы иные почувствовали почву под ногами. |
|||
|
||||
Wardena |
|
||||
![]() Пуфыфтик =) Профиль Группа: Участник Сообщений: 16 Регистрация: 13.9.2006 Где: Уфа Репутация: нет Всего: нет |
В моей программе вообще транзакции не используются, то есть мне нужно их ввести, так что ли? |
||||
|
|||||
former |
|
|||
![]() MEMS Expert ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1166 Регистрация: 1.3.2006 Где: Россия Репутация: 1 Всего: 17 |
В программе может и не используются, а вот библиотека, через которую осуществляется доступ наверняка. Может в доках к ней есть что-нибудь про работу с транзакциями? -------------------- Достаточно снизить уровень мышления, чтобы иные почувствовали почву под ногами. |
|||
|
||||
Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 20 Всего: 329 |
Так вот нужно настроить. Используются по любому. Неявно. Wardena, какой способ (компоненты) доступа используешь? |
|||
|
||||
Deniz |
|
||||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1251 Регистрация: 16.10.2004 Где: Новый Уренгой Репутация: 22 Всего: 44 |
см. первый пост.
Вот примерный вариант работы.
Добавлено через 2 минуты Wardena, приведи код твоей программы, где запрос виснет. -------------------- "Для того чтобы сделать шаг вперед, достаточно пинка сзади" (с) |
||||
|
|||||
Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 20 Всего: 329 |
||||
|
||||
![]() ![]() ![]() |
Правила форума "Interbase" | |
|
Обязательно указание: 1. Версию InterBase (Firebird, Yaffil) 2. Способа доступа (ADO, BDE, IBX и т.д.)
Если Вам понравилась атмосфера форума, заходите к нам чаще! С Уважением, Akella. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Firebird, Interbase | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |