powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / FB 2.5 Как получить список активных транзакций. Как прибить транзакцию?
25 сообщений из 53, страница 2 из 3
FB 2.5 Как получить список активных транзакций. Как прибить транзакцию?
    #39361675
alex342
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
kdvalex342,

мусор - это не нужные ни одной транзакции версии. Если он читается, то он убирается. мусор "плохо" собираться не может.
Не мусор - версии, которые нужны каким-то транзакциям.
транзакция RO RC для сервера как бы "не существует". Поэтому на мусор - не мусор она никак не влияет.

IBE, RAD при коннекте к базе по умолчанию открывают транзакции RC RV. Как можно поменять, и нужно ли на RC RO?
...
Рейтинг: 0 / 0
FB 2.5 Как получить список активных транзакций. Как прибить транзакцию?
    #39361689
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alex342,

вы что, сидите в IBE на промышленном сервере целыми днями, что вас беспокоит rw-транзакция в IBE? Хотите поменять ее на RO, чтобы вы ничего кроме селектов в IBE не могли выполнить?
Собственно, параметры транзакций ИБЕ настраиваются в ... его настройках, сюрприз!
...
Рейтинг: 0 / 0
FB 2.5 Как получить список активных транзакций. Как прибить транзакцию?
    #39361691
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alex342,

кстати - RAD? что такое RAD?
...
Рейтинг: 0 / 0
FB 2.5 Как получить список активных транзакций. Как прибить транзакцию?
    #39361697
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alex342Например, мусор может "плохо" убираться, если транзакция висит пару недель?alex342IBE, RAD при коннекте к базе по умолчанию открывают транзакции RC RV. Как можно поменять, и нужно ли на RC RO?При старте твоей транзакции создается снапшот из версий записей на момент старта транзакции. Даже если другие транзакции изменяли эти записи и создавали для них новые версии, старые версии не станут мусором до тех пор, пока транзакция, держащая снапшот старых версий, не будет завершена.
...
Рейтинг: 0 / 0
FB 2.5 Как получить список активных транзакций. Как прибить транзакцию?
    #39361698
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdv, м.б. Embarcadero RAD Studio?
...
Рейтинг: 0 / 0
FB 2.5 Как получить список активных транзакций. Как прибить транзакцию?
    #39361701
alex342
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
kdvalex342,

кстати - RAD? что такое RAD?

RAD studio, Embarcadero, Delphi - через драйвер DBE (возможно dbexpint.dll)
...
Рейтинг: 0 / 0
FB 2.5 Как получить список активных транзакций. Как прибить транзакцию?
    #39361704
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rdb_devПри старте твоей транзакции создается снапшот из версий записей на момент старта транзакции.
што? при старте транзакции ничего не создается, кроме двух битов состояния этой транзакции в transaction inventory page.
когда и как создаются и убираются версии, написано тут
http://www.ibase.ru/mga/
...
Рейтинг: 0 / 0
FB 2.5 Как получить список активных транзакций. Как прибить транзакцию?
    #39361712
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdv, да понятно, что вся пляска идет от идентификатора самой транзакции и идентификаторов транзакций в версиях записей. Конкретный алгоритм реализации версионности не сильно влияет на понимание принципа.
...
Рейтинг: 0 / 0
FB 2.5 Как получить список активных транзакций. Как прибить транзакцию?
    #39361714
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alex342, можно уточнить - зачем нужна такая долгоживущая транзакция?
...
Рейтинг: 0 / 0
FB 2.5 Как получить список активных транзакций. Как прибить транзакцию?
    #39361715
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alex342RAD studio, Embarcadero, Delphi - через драйвер DBE (возможно dbexpint.dll)
если драйвер позволяет задавать специфические для IB/FB параметры транзакции - тогда да. Если нет - то никак.
Обычно только компоненты прямого доступа позволяют такое - IBX, FIBPlus, IBObjects, FireDAC, UIB, и т.д.
Компоненты, которые "универсальны", обычно такого не позволяют - BDE, dbExpress, ODBC, ...
http://www.ibase.ru/choosecomp/

что касается dbExpress, то я уже исследовал этот вопрос
www.sql.ru/forum/932837/dbexpress-i-upravlenie-tranzakciyami
и там все глухо. TDBXIsolation жестко зафиксирован, ничего к нему добавить нельзя.
А у коннекта dbExpress есть только 3 параметра:
IsolationLevel - тут жесткие типы, вроде ReaCommitted
WaitOnLocks - эквивалент wait /nowait
CommitRetain

и все.
...
Рейтинг: 0 / 0
FB 2.5 Как получить список активных транзакций. Как прибить транзакцию?
    #39361723
alex342
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
rdb_devalex342, можно уточнить - зачем нужна такая долгоживущая транзакция?

Вот как раз она и не нужна! Пользователь в терминальной сессии запускает приложение, написанное на Delphi, оно при старте открывает транзакцию RC RV и потом выходит крестиком из RDP, оставляя сессию. А в следующий раз может подключиться через неделю.
...
Рейтинг: 0 / 0
FB 2.5 Как получить список активных транзакций. Как прибить транзакцию?
    #39361733
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alex342,

теоретически, ОС должна убить неактивный коннект через 2 часа (keepalive).
...
Рейтинг: 0 / 0
FB 2.5 Как получить список активных транзакций. Как прибить транзакцию?
    #39361744
Ivan_Pisarevsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdvубить неактивный коннект через 2 часа (keepalive).кипалайв это отстрел мертвяков, тут он вполне жив:
alex342открывает транзакцию RC RV и потом выходит крестиком из RDP, оставляя сессию.У себя мы принудительно уводим базу в шатдаун по крону в 23-30, кто не успел, тот отправился лесом, сервер переходит в "ночной режим режим", когда работают роботы из крона.

Если есть исходники приклады, то она вполне может реагировать сама на длительное отсутствие активности юзера и самостоятельно закрывать свои транзакции, а не ждать пока "стукнут по башке".
...
Рейтинг: 0 / 0
FB 2.5 Как получить список активных транзакций. Как прибить транзакцию?
    #39361754
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alex342Вот как раз она и не нужна! Пользователь в терминальной сессии запускает приложение, написанное на Delphi, оно при старте открывает транзакцию RC RV и потом выходит крестиком из RDP, оставляя сессию. А в следующий раз может подключиться через неделю.Не знаю, как ведут себя используемые вами компоненты доступа к БД сервера Firebird, но, к примеру, TFIBDataSet (FIBPLus) с автоматическим управлением транзакцией, держит открытой транзакцию UpdateTransaction только когда производится редактирование полей записи. Как только пользователь подтвердил изменения записи, открывается транзакция для фетча измененной записи и после фетча транзакция тут же подтверждается.
...
Рейтинг: 0 / 0
FB 2.5 Как получить список активных транзакций. Как прибить транзакцию?
    #39361759
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hello, Ivan Pisarevsky!
You wrote on 7 декабря 2016 г. 13:04:08:

Ivan Pisarevsky> У себя мы принудительно уводим базу в шатдаун по крону в 23-30,
> кто не успел, тот отправился лесом, сервер переходит в "ночной режим режим",
> когда работают роботы из крона.+1
мы ещё и xinetd гасим.
роботы цепляются локально.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
FB 2.5 Как получить список активных транзакций. Как прибить транзакцию?
    #39361766
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alex342А чем плохо открытие такой транзакции при старте приложения?

Во-первых и главных, это выглядит неряшливо и непрофессионально.
Во-вторых, это удерживает определённые ресурсы сервера, такие как временные блобы, локи
существования, препарированные запросы, что у неряшливых разработчиков обычно приводит к
тормозам и распуханию БД.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
FB 2.5 Как получить список активных транзакций. Как прибить транзакцию?
    #39361774
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alex342IBE, RAD при коннекте к базе по умолчанию открывают транзакции RC RV. Как можно поменять, и нужно ли на RC RO?

Не RC RV, а RC RW. И не фиг IBE открывать без необходимости.

alex342А чем плохо открытие такой транзакции при старте приложения?

Пока RC RO относительно безвредна, за исключением некоторых нюансов, что указал DS. А вот если в 4.0 сделают консистентность RC на уровне статмента, то это может изменится. Промежуточная сборка мусора должна немного облегчить жизнь, но не полностью.
...
Рейтинг: 0 / 0
FB 2.5 Как получить список активных транзакций. Как прибить транзакцию?
    #39361776
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov,

+1
В соответствии с рекомендациями, любая транзакция должна быть, по возможности, максимально короткой. Нужно получить набор записей - открыл транзакцию, отфетчил, Commit; Нужно сохранить изменения - открыл транзакцию, послал INSERT/UPDATE/DELETE, Commit.
...
Рейтинг: 0 / 0
FB 2.5 Как получить список активных транзакций. Как прибить транзакцию?
    #39361824
alex342
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
[quot Симонов Денис]alex342IBE, RAD при коннекте к базе по умолчанию открывают транзакции RC RV. Как можно поменять, и нужно ли на RC RO?

Не RC RV, а RC RW. И не фиг IBE открывать без необходимости.


В IBExpert пишет "Read Commited Record Version" (RC RV). Это Read Only (RC RO) или другой тип транзакции?
А IBE открывают и держат некоторые "контроллёры" чтобы посмотреть и что то иногда выполнить.
...
Рейтинг: 0 / 0
FB 2.5 Как получить список активных транзакций. Как прибить транзакцию?
    #39361837
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alex342Это Read Only (RC RO) или другой тип транзакции?
вы хоть что-нибудь у меня на сайте читали?
http://www.ibase.ru/ibtrans/

"Внимание! В Firebird, Yaffil и InterBase 6.5 транзакции read_committed read (read only) стартуют сразу в состоянии committed, поэтому не удерживают версии. Т. е. такая транзакция может длиться часами без ущерба для производительности сервера. Наиболее характерный пример использования – работа со справочниками."

http://www.ibase.ru/ibx/
"Для работы в режиме "только чтение" (например, со справочниками или при использовании с "двутранзакционными" датасетами, т. е. раздельными транзакциями для чтения и записи) в FB 1.x и IB 7.x рекомендуется использовать параметры
read
read_committed
rec_version

Такая транзакция в InterBase 6.0 и выше (все версии IB 7.0, 7.1, 7.5, Firebird и Yaffil) может быть открытой сколь угодно долгое время (дни, недели, месяцы), без блокирования других транзакций или влияния на накопление мусора в базе данных (потому что на самом деле на сервере такая транзакция стартует как committed)."

Вы еще почему-то явно упоминаете RV, т.е. record version. Режим no_record_version хоть и исторически является умолчательным, но он не рекомендуется, потому что даже в случае ЧТЕНИЯ не-коммиттед версий будет выдано сообщение deadlock.
http://www.ibase.ru/deadlock/
http://www.ibase.ru/norecver/
...
Рейтинг: 0 / 0
FB 2.5 Как получить список активных транзакций. Как прибить транзакцию?
    #39361841
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alex342А IBE открывают и держат некоторые "контроллёры" чтобы посмотреть и что то иногда выполнить.
для этого есть mon$transactions и mon$attachments. Если обнаруживается, что некий хрен сидит с одной транзакцией в IBExpert уже больше часа, то он принудительно лишается премии.
У вас там в конторе бардак, что-ли?
...
Рейтинг: 0 / 0
FB 2.5 Как получить список активных транзакций. Как прибить транзакцию?
    #39361842
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alex342,

RW - это READ WRITE, это же понятно если ты сравнивает с READ ONLY. Record Version к удержанию версий отношение не имеет, да и к режиму записи то же.

По мне так IBE должны использовать только DBA и разработчики. Для всех остальных категорий пользователей лучше писать свой софт, который будет ограничивать их возможности.
...
Рейтинг: 0 / 0
FB 2.5 Как получить список активных транзакций. Как прибить транзакцию?
    #39361856
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alex342,

и ещё. Разработкой обычно занимаются на копии БД, поэтому довольно странно слышать о том, что RAD у вас где-то удерживает версии и тормозит работу пользователей.
...
Рейтинг: 0 / 0
FB 2.5 Как получить список активных транзакций. Как прибить транзакцию?
    #39361868
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов Денис,

как правило, разработка ведется на "однопользовательской" базе, поэтому разработчику по барабану как длинные транзакции, так и версии (которых у него нет), и даже конфликты многопользовательской работе.
А вот когда приложение с базой идет в production, начинается жопа, и разработчик уверенным голосом сообщает - "Firebird тормозит!"
Дальше может быть несколько этапов. Починка длинных транзакций (с трудом, неимоверно мучительно), исправление кривых запросов (если человек начал разбираться в SQL), и так далее.
Но в самом радикальном случае выносится вердикт - "Firebird - говно, переходим на Оракл". Ну и на Оракле все повторяется. А поскольку выше прыгать уже некуда, разраб или увольняется сам, или его увольняют, а потом начинают разгребать эти конюшни.
...
Рейтинг: 0 / 0
FB 2.5 Как получить список активных транзакций. Как прибить транзакцию?
    #39361914
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов Денис,

на всякий случай, вот что я писал 10 лет назад
http://interbase.blogspot.ru/2006/04/blog-post.html
еще рассекречиваю старый черновик, тоже 10-летней давности
http://interbase.blogspot.ru/2016/12/n-2.html
...
Рейтинг: 0 / 0
25 сообщений из 53, страница 2 из 3
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / FB 2.5 Как получить список активных транзакций. Как прибить транзакцию?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]