|
FB 2.5 Как получить список активных транзакций. Как прибить транзакцию?
|
|||
---|---|---|---|
#18+
kdvalex342, мусор - это не нужные ни одной транзакции версии. Если он читается, то он убирается. мусор "плохо" собираться не может. Не мусор - версии, которые нужны каким-то транзакциям. транзакция RO RC для сервера как бы "не существует". Поэтому на мусор - не мусор она никак не влияет. IBE, RAD при коннекте к базе по умолчанию открывают транзакции RC RV. Как можно поменять, и нужно ли на RC RO? ... |
|||
:
Нравится:
Не нравится:
|
|||
07.12.2016, 11:39 |
|
FB 2.5 Как получить список активных транзакций. Как прибить транзакцию?
|
|||
---|---|---|---|
#18+
alex342, вы что, сидите в IBE на промышленном сервере целыми днями, что вас беспокоит rw-транзакция в IBE? Хотите поменять ее на RO, чтобы вы ничего кроме селектов в IBE не могли выполнить? Собственно, параметры транзакций ИБЕ настраиваются в ... его настройках, сюрприз! ... |
|||
:
Нравится:
Не нравится:
|
|||
07.12.2016, 11:47 |
|
FB 2.5 Как получить список активных транзакций. Как прибить транзакцию?
|
|||
---|---|---|---|
#18+
alex342, кстати - RAD? что такое RAD? ... |
|||
:
Нравится:
Не нравится:
|
|||
07.12.2016, 11:50 |
|
FB 2.5 Как получить список активных транзакций. Как прибить транзакцию?
|
|||
---|---|---|---|
#18+
alex342Например, мусор может "плохо" убираться, если транзакция висит пару недель?alex342IBE, RAD при коннекте к базе по умолчанию открывают транзакции RC RV. Как можно поменять, и нужно ли на RC RO?При старте твоей транзакции создается снапшот из версий записей на момент старта транзакции. Даже если другие транзакции изменяли эти записи и создавали для них новые версии, старые версии не станут мусором до тех пор, пока транзакция, держащая снапшот старых версий, не будет завершена. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.12.2016, 11:52 |
|
FB 2.5 Как получить список активных транзакций. Как прибить транзакцию?
|
|||
---|---|---|---|
#18+
kdv, м.б. Embarcadero RAD Studio? ... |
|||
:
Нравится:
Не нравится:
|
|||
07.12.2016, 11:53 |
|
FB 2.5 Как получить список активных транзакций. Как прибить транзакцию?
|
|||
---|---|---|---|
#18+
kdvalex342, кстати - RAD? что такое RAD? RAD studio, Embarcadero, Delphi - через драйвер DBE (возможно dbexpint.dll) ... |
|||
:
Нравится:
Не нравится:
|
|||
07.12.2016, 11:56 |
|
FB 2.5 Как получить список активных транзакций. Как прибить транзакцию?
|
|||
---|---|---|---|
#18+
rdb_devПри старте твоей транзакции создается снапшот из версий записей на момент старта транзакции. што? при старте транзакции ничего не создается, кроме двух битов состояния этой транзакции в transaction inventory page. когда и как создаются и убираются версии, написано тут http://www.ibase.ru/mga/ ... |
|||
:
Нравится:
Не нравится:
|
|||
07.12.2016, 11:57 |
|
FB 2.5 Как получить список активных транзакций. Как прибить транзакцию?
|
|||
---|---|---|---|
#18+
kdv, да понятно, что вся пляска идет от идентификатора самой транзакции и идентификаторов транзакций в версиях записей. Конкретный алгоритм реализации версионности не сильно влияет на понимание принципа. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.12.2016, 12:06 |
|
FB 2.5 Как получить список активных транзакций. Как прибить транзакцию?
|
|||
---|---|---|---|
#18+
alex342, можно уточнить - зачем нужна такая долгоживущая транзакция? ... |
|||
:
Нравится:
Не нравится:
|
|||
07.12.2016, 12:07 |
|
FB 2.5 Как получить список активных транзакций. Как прибить транзакцию?
|
|||
---|---|---|---|
#18+
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 и все. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.12.2016, 12:10 |
|
FB 2.5 Как получить список активных транзакций. Как прибить транзакцию?
|
|||
---|---|---|---|
#18+
rdb_devalex342, можно уточнить - зачем нужна такая долгоживущая транзакция? Вот как раз она и не нужна! Пользователь в терминальной сессии запускает приложение, написанное на Delphi, оно при старте открывает транзакцию RC RV и потом выходит крестиком из RDP, оставляя сессию. А в следующий раз может подключиться через неделю. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.12.2016, 12:15 |
|
FB 2.5 Как получить список активных транзакций. Как прибить транзакцию?
|
|||
---|---|---|---|
#18+
alex342, теоретически, ОС должна убить неактивный коннект через 2 часа (keepalive). ... |
|||
:
Нравится:
Не нравится:
|
|||
07.12.2016, 12:29 |
|
FB 2.5 Как получить список активных транзакций. Как прибить транзакцию?
|
|||
---|---|---|---|
#18+
kdvубить неактивный коннект через 2 часа (keepalive).кипалайв это отстрел мертвяков, тут он вполне жив: alex342открывает транзакцию RC RV и потом выходит крестиком из RDP, оставляя сессию.У себя мы принудительно уводим базу в шатдаун по крону в 23-30, кто не успел, тот отправился лесом, сервер переходит в "ночной режим режим", когда работают роботы из крона. Если есть исходники приклады, то она вполне может реагировать сама на длительное отсутствие активности юзера и самостоятельно закрывать свои транзакции, а не ждать пока "стукнут по башке". ... |
|||
:
Нравится:
Не нравится:
|
|||
07.12.2016, 12:42 |
|
FB 2.5 Как получить список активных транзакций. Как прибить транзакцию?
|
|||
---|---|---|---|
#18+
alex342Вот как раз она и не нужна! Пользователь в терминальной сессии запускает приложение, написанное на Delphi, оно при старте открывает транзакцию RC RV и потом выходит крестиком из RDP, оставляя сессию. А в следующий раз может подключиться через неделю.Не знаю, как ведут себя используемые вами компоненты доступа к БД сервера Firebird, но, к примеру, TFIBDataSet (FIBPLus) с автоматическим управлением транзакцией, держит открытой транзакцию UpdateTransaction только когда производится редактирование полей записи. Как только пользователь подтвердил изменения записи, открывается транзакция для фетча измененной записи и после фетча транзакция тут же подтверждается. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.12.2016, 13:02 |
|
FB 2.5 Как получить список активных транзакций. Как прибить транзакцию?
|
|||
---|---|---|---|
#18+
Hello, Ivan Pisarevsky! You wrote on 7 декабря 2016 г. 13:04:08: Ivan Pisarevsky> У себя мы принудительно уводим базу в шатдаун по крону в 23-30, > кто не успел, тот отправился лесом, сервер переходит в "ночной режим режим", > когда работают роботы из крона.+1 мы ещё и xinetd гасим. роботы цепляются локально. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
07.12.2016, 13:07 |
|
FB 2.5 Как получить список активных транзакций. Как прибить транзакцию?
|
|||
---|---|---|---|
#18+
alex342А чем плохо открытие такой транзакции при старте приложения? Во-первых и главных, это выглядит неряшливо и непрофессионально. Во-вторых, это удерживает определённые ресурсы сервера, такие как временные блобы, локи существования, препарированные запросы, что у неряшливых разработчиков обычно приводит к тормозам и распуханию БД. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
07.12.2016, 13:12 |
|
FB 2.5 Как получить список активных транзакций. Как прибить транзакцию?
|
|||
---|---|---|---|
#18+
alex342IBE, RAD при коннекте к базе по умолчанию открывают транзакции RC RV. Как можно поменять, и нужно ли на RC RO? Не RC RV, а RC RW. И не фиг IBE открывать без необходимости. alex342А чем плохо открытие такой транзакции при старте приложения? Пока RC RO относительно безвредна, за исключением некоторых нюансов, что указал DS. А вот если в 4.0 сделают консистентность RC на уровне статмента, то это может изменится. Промежуточная сборка мусора должна немного облегчить жизнь, но не полностью. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.12.2016, 13:22 |
|
FB 2.5 Как получить список активных транзакций. Как прибить транзакцию?
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov, +1 В соответствии с рекомендациями, любая транзакция должна быть, по возможности, максимально короткой. Нужно получить набор записей - открыл транзакцию, отфетчил, Commit; Нужно сохранить изменения - открыл транзакцию, послал INSERT/UPDATE/DELETE, Commit. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.12.2016, 13:23 |
|
FB 2.5 Как получить список активных транзакций. Как прибить транзакцию?
|
|||
---|---|---|---|
#18+
[quot Симонов Денис]alex342IBE, RAD при коннекте к базе по умолчанию открывают транзакции RC RV. Как можно поменять, и нужно ли на RC RO? Не RC RV, а RC RW. И не фиг IBE открывать без необходимости. В IBExpert пишет "Read Commited Record Version" (RC RV). Это Read Only (RC RO) или другой тип транзакции? А IBE открывают и держат некоторые "контроллёры" чтобы посмотреть и что то иногда выполнить. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.12.2016, 14:17 |
|
FB 2.5 Как получить список активных транзакций. Как прибить транзакцию?
|
|||
---|---|---|---|
#18+
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/ ... |
|||
:
Нравится:
Не нравится:
|
|||
07.12.2016, 14:32 |
|
FB 2.5 Как получить список активных транзакций. Как прибить транзакцию?
|
|||
---|---|---|---|
#18+
alex342А IBE открывают и держат некоторые "контроллёры" чтобы посмотреть и что то иногда выполнить. для этого есть mon$transactions и mon$attachments. Если обнаруживается, что некий хрен сидит с одной транзакцией в IBExpert уже больше часа, то он принудительно лишается премии. У вас там в конторе бардак, что-ли? ... |
|||
:
Нравится:
Не нравится:
|
|||
07.12.2016, 14:34 |
|
FB 2.5 Как получить список активных транзакций. Как прибить транзакцию?
|
|||
---|---|---|---|
#18+
alex342, RW - это READ WRITE, это же понятно если ты сравнивает с READ ONLY. Record Version к удержанию версий отношение не имеет, да и к режиму записи то же. По мне так IBE должны использовать только DBA и разработчики. Для всех остальных категорий пользователей лучше писать свой софт, который будет ограничивать их возможности. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.12.2016, 14:34 |
|
FB 2.5 Как получить список активных транзакций. Как прибить транзакцию?
|
|||
---|---|---|---|
#18+
alex342, и ещё. Разработкой обычно занимаются на копии БД, поэтому довольно странно слышать о том, что RAD у вас где-то удерживает версии и тормозит работу пользователей. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.12.2016, 14:40 |
|
FB 2.5 Как получить список активных транзакций. Как прибить транзакцию?
|
|||
---|---|---|---|
#18+
Симонов Денис, как правило, разработка ведется на "однопользовательской" базе, поэтому разработчику по барабану как длинные транзакции, так и версии (которых у него нет), и даже конфликты многопользовательской работе. А вот когда приложение с базой идет в production, начинается жопа, и разработчик уверенным голосом сообщает - "Firebird тормозит!" Дальше может быть несколько этапов. Починка длинных транзакций (с трудом, неимоверно мучительно), исправление кривых запросов (если человек начал разбираться в SQL), и так далее. Но в самом радикальном случае выносится вердикт - "Firebird - говно, переходим на Оракл". Ну и на Оракле все повторяется. А поскольку выше прыгать уже некуда, разраб или увольняется сам, или его увольняют, а потом начинают разгребать эти конюшни. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.12.2016, 14:59 |
|
FB 2.5 Как получить список активных транзакций. Как прибить транзакцию?
|
|||
---|---|---|---|
#18+
Симонов Денис, на всякий случай, вот что я писал 10 лет назад http://interbase.blogspot.ru/2006/04/blog-post.html еще рассекречиваю старый черновик, тоже 10-летней давности http://interbase.blogspot.ru/2016/12/n-2.html ... |
|||
:
Нравится:
Не нравится:
|
|||
07.12.2016, 15:33 |
|
|
start [/forum/topic.php?fid=40&msg=39361754&tid=1561813]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
41ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
59ms |
get tp. blocked users: |
1ms |
others: | 14ms |
total: | 161ms |
0 / 0 |