Обновление метаданных, wait и nowait транзакции

Всё о СУБД FireBird.
Ответить
rusmikle
Сообщения: 5
Зарегистрирован: 01.04.2022 14:48:29

Обновление метаданных, wait и nowait транзакции

Сообщение rusmikle »

Всем доброго времени суток,

при работе с таблицами с большим количеством данных иногда возникает ситуация что после интенсивного изменения данных возникает необходимость таблицу удалить. Если транзакция nowait то firebird может вывалить (а может и не вывалить) ошибку lock конфликта при обновлении метаданных. Выход использовать wait транзакцию. Но не во всех фреймворках можно поменять тип транзакции (в данном случае у клиента рукописный свой фреймворк, лезть в который и что то менять себе дороже).
Вопрос, можно как то запросом выяснить что таблица уже освободилась и возможно обновление метаданных или её удаление. Сразу оговорюсь что сие происходит при миграции данных из одной версии в другую, поэтому конкурирующих соединений нет.

Спасибо.
Аватара пользователя
admin
Site Admin
Сообщения: 36
Зарегистрирован: 19.03.2022 16:27:02

Re: Обновление метаданных, wait и nowait транзакции

Сообщение admin »

сие происходит при миграции данных из одной версии в другую
А о каких именно версиях речь ?

http://www.ibase.ru/ibtrans
rusmikle
Сообщения: 5
Зарегистрирован: 01.04.2022 14:48:29

Re: Обновление метаданных, wait и nowait транзакции

Сообщение rusmikle »

версии имеются ввиду самой программы. А FB версии 3 и выше.
fraks
Сообщения: 26
Зарегистрирован: 06.04.2022 11:27:22

Re: Обновление метаданных, wait и nowait транзакции

Сообщение fraks »

Если конкурирующих коннектов нет, операция редкая, а фреймворк сам себе на уме, то я бы просто сделал реконнект.

А исходно проблема, вероятно, в таком:
- ходим по собственным ногам. В приложении есть какие-то активные транзакции которые смотрели ту таблицу, и соответственно, хотят продолжать ее видеть.
- после удаления большого количества данных запускается сборка мусора, которая и блокирует удаление таблицы.

В обоих случаях должен помочь реконнект.
rusmikle
Сообщения: 5
Зарегистрирован: 01.04.2022 14:48:29

Re: Обновление метаданных, wait и nowait транзакции

Сообщение rusmikle »

можно конечно пересоединиться, но хотелось бы штатное решение найти. Может кто подскажет. Имя таблиц которые могут проблему устроить известно.
Ответить