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

Собственно сабж интерсует.
(в наличии есть IBExpert последний, если это как то может помочь)

Спасибо
...
Рейтинг: 0 / 0
FB 2.5 Как получить список активных транзакций. Как прибить транзакцию?
    #39163257
Arioch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mikhail Tchervonenko,

подключаться как SYSDBA и читать сюда:
c:\Program Files\Firebird\Firebird_2_5\doc\README.monitoring_tables.txt
...
Рейтинг: 0 / 0
FB 2.5 Как получить список активных транзакций. Как прибить транзакцию?
    #39163259
Фотография DarkMaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mikhail Tchervonenko,

MON$xxxx таблицы.
...
Рейтинг: 0 / 0
FB 2.5 Как получить список активных транзакций. Как прибить транзакцию?
    #39163279
Фотография Mikhail Tchervonenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arioch,

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

Получить список активных транзакций так:
SELECT * FROM MON$TRANSACTIONS WHERE MON$STATE=1

Прибить конкретную транзакцию так:
DELETE FROM MON$STATEMENTS WHERE MON$STATEMENT_ID = ...

можно ещё прибить все соединение:
DELETE FROM MON$CONNECTIONS WHERE CONNECTION_ID = ...

или все что в его рамках происходит:
DELETE FROM MON$STATEMENTS WHERE MON$ATTACHMENT_ID = ...

если прибивать всех то можно исключить через CURRENT_CONNECTION себя, дабы самому остаться

поправьте если где ошибся
...
Рейтинг: 0 / 0
FB 2.5 Как получить список активных транзакций. Как прибить транзакцию?
    #39163318
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mikhail Tchervonenkoпоправьте если где ошибся1) DELETE FROM MON$STATEMENTS WHERE MON$STATEMENT_ID = ... - придушит стейтмент, но не саму транзакцию; таблица mon$transactions для этого;
2) DELETE FROM MON$ CONNECTIONS - нет такой таблицы, есть mon$ attachments
3) "можно исключить через CURRENT_CONNECTION себя, дабы самому остаться" - вы и так останетесь :-)
Запустите два ISQL'я и выполните в одном из них:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
C:\MIX\firebird\QA\fbt-repo>isql /3255:e25
Database: /3255:e25, User: SYSDBA
SQL> show version;
ISQL Version: WI-V3.0.0.32320 Firebird 3.0 Release Candidate 2
Server version:
Firebird/Windows/Intel/i386 (access method), version "WI-V2.5.6.26969 Firebird 2.5"
Firebird/Windows/Intel/i386 (remote server), version "WI-V2.5.6.26969 Firebird 2.5/tcp (csprog)/P12"
Firebird/Windows/Intel/i386 (remote interface), version "WI-V3.0.0.32320 Firebird 3.0 Release Candidate 2/tcp (csprog)/P12"
on disk structure version 11.2

SQL> set list on;
SQL> select current_connection from rdb$database;

CURRENT_CONNECTION              3


SQL> select * from mon$attachments;

MON$ATTACHMENT_ID               3
MON$SERVER_PID                  952
MON$STATE                       1
MON$ATTACHMENT_NAME             e25
MON$USER                        SYSDBA
MON$ROLE                        NONE
MON$REMOTE_PROTOCOL             TCPv4
MON$REMOTE_ADDRESS              192.168.43.154
MON$REMOTE_PID                  1684
MON$CHARACTER_SET_ID            0
MON$TIMESTAMP                   2016-02-04 19:21:22.0790
MON$GARBAGE_COLLECTION          1
MON$REMOTE_PROCESS              C:\MIX\Firebird\fb30\isql.exe
MON$STAT_ID                     2

MON$ATTACHMENT_ID               4
MON$SERVER_PID                  952
MON$STATE                       0
MON$ATTACHMENT_NAME             e25
MON$USER                        SYSDBA
MON$ROLE                        NONE
MON$REMOTE_PROTOCOL             TCPv4
MON$REMOTE_ADDRESS              192.168.43.154
MON$REMOTE_PID                  5360
MON$CHARACTER_SET_ID            0
MON$TIMESTAMP                   2016-02-04 19:21:33.7980
MON$GARBAGE_COLLECTION          1
MON$REMOTE_PROCESS              C:\MIX\Firebird\fb30\isql.exe
MON$STAT_ID                     6


SQL> commit; set count on; delete from mon$attachments; commit;
Records affected: 2

SQL> select * from mon$attachments;

MON$ATTACHMENT_ID               3
MON$SERVER_PID                  952
MON$STATE                       1
MON$ATTACHMENT_NAME             e25
MON$USER                        SYSDBA
MON$ROLE                        NONE
MON$REMOTE_PROTOCOL             TCPv4
MON$REMOTE_ADDRESS              192.168.43.154
MON$REMOTE_PID                  1684
MON$CHARACTER_SET_ID            0
MON$TIMESTAMP                   2016-02-04 19:21:22.0790
MON$GARBAGE_COLLECTION          1
MON$REMOTE_PROCESS              C:\MIX\Firebird\fb30\isql.exe
MON$STAT_ID                     2


Records affected: 1
SQL> select current_connection from rdb$database;

CURRENT_CONNECTION              3

Records affected: 1
SQL>
PS. Хотя на основании вот этого:
Код: plaintext
1.
SQL> commit; set count on; delete from mon$attachments; commit;
Records affected: 2

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

ок, спасибо
...
Рейтинг: 0 / 0
FB 2.5 Как получить список активных транзакций. Как прибить транзакцию?
    #39163485
_Док_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Мужики, может в шапку положить под заголовком типа "хозяйке на заметку"?
...
Рейтинг: 0 / 0
FB 2.5 Как получить список активных транзакций. Как прибить транзакцию?
    #39163635
fb user
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Таблоид2) DELETE FROM MON$ CONNECTIONS - нет такой таблицы, есть mon$ attachments
3) "можно исключить через CURRENT_CONNECTION себя, дабы самому остаться" - вы и так останетесь :-)

Чем отличаются CONNECTION (который в имени CURRENT_CONNECTION) и ATTACHMENT (который в имени mon$ attachments )?
Я бы тоже искал в MON$ CONNECTIONS
...
Рейтинг: 0 / 0
FB 2.5 Как получить список активных транзакций. Как прибить транзакцию?
    #39163638
Фотография DarkMaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fb user,

Тем, что в MON$ATTACHMENTS не только CURRENT_CONNECTION.
...
Рейтинг: 0 / 0
FB 2.5 Как получить список активных транзакций. Как прибить транзакцию?
    #39163648
fb user
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
DarkMasterfb user,

Тем, что в MON$ATTACHMENTS не только CURRENT_CONNECTION.
ATTACHMENT и CONNECTION - это две разные сущности или одна сущность с разными названиями?
...
Рейтинг: 0 / 0
FB 2.5 Как получить список активных транзакций. Как прибить транзакцию?
    #39163662
Фотография DarkMaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fb user,

Скорее второе.
...
Рейтинг: 0 / 0
FB 2.5 Как получить список активных транзакций. Как прибить транзакцию?
    #39163671
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fb userЧем отличаются CONNECTION (который в имени CURRENT_CONNECTION) и ATTACHMENT (который в имени mon$ attachments )?
Я бы тоже искал в MON$ CONNECTIONS
А не надо действовать методом тыка. Описание таблиц мониторинга есть в документации, и там видно, что никакого MON$CONNECTIONS не существует. Этих таблиц там не так много, не запутаешься.
...
Рейтинг: 0 / 0
FB 2.5 Как получить список активных транзакций. Как прибить транзакцию?
    #39164256
Фотография Mikhail Tchervonenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов Денисfb userЧем отличаются CONNECTION (который в имени CURRENT_CONNECTION) и ATTACHMENT (который в имени mon$ attachments )?
Я бы тоже искал в MON$ CONNECTIONS
А не надо действовать методом тыка. Описание таблиц мониторинга есть в документации, и там видно, что никакого MON$CONNECTIONS не существует. Этих таблиц там не так много, не запутаешься.
согласен, просто описался

п.с. кстати
Как правильнее прибить транзакцию, удалить запись из таблицы MON$TRANSACTIONS или просто выставить статус для этой транзакции MON$STATE=0 ?
...
Рейтинг: 0 / 0
FB 2.5 Как получить список активных транзакций. Как прибить транзакцию?
    #39164258
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mikhail Tchervonenkoпросто выставить статус для этой транзакции MON$STATE=0 ?Вы бы проверили самостоятельно, особенно про "выставить статус"...
...
Рейтинг: 0 / 0
FB 2.5 Как получить список активных транзакций. Как прибить транзакцию?
    #39164327
fb user
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
DarkMasterСкорее второе.
Но так ведь не хорошо.
...
Рейтинг: 0 / 0
FB 2.5 Как получить список активных транзакций. Как прибить транзакцию?
    #39164333
Фотография Mikhail Tchervonenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ТаблоидMikhail Tchervonenkoпросто выставить статус для этой транзакции MON$STATE=0 ?Вы бы проверили самостоятельно, особенно про "выставить статус"...

удалить не даёт, как и изменить
походу токма с коннектом мочить нужно
нашет тут уже тему эту мусолили, ситаю
...
Рейтинг: 0 / 0
FB 2.5 Как получить список активных транзакций. Как прибить транзакцию?
    #39164489
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mikhail Tchervonenkoудалить не даёт"Не верю!" (С).
...
Рейтинг: 0 / 0
FB 2.5 Как получить список активных транзакций. Как прибить транзакцию?
    #39356845
Фотография May12
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Коллеги, что показывает поле MON$TRANSACTIONS.MON$TIMESTAMP?
Судя по "Руководство по языку SQL СУБД Firebird 2.5" - MON$TIMESTAMP - это Дата и время старта транзакции.

Тогда почему, в моем случае, данное поле не меняется (смотрю через IbExpert) после подключения клиентского приложения и выполнения в нем действий, связанных в выбором данных из БД?
Т.е. в моем случае в данном поле фиксируется время подключения приложения к бд, что едет в разрез с "Руководство по языку..".
...
Рейтинг: 0 / 0
FB 2.5 Как получить список активных транзакций. Как прибить транзакцию?
    #39356878
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
May12Тогда почему, в моем случае, данное поле не меняется (смотрю через IbExpert) после
подключения клиентского приложения и выполнения в нем действий, связанных в выбором данных
из БД?

Хочешь сказать, что поле MON$TRANSACTION_ID меняется, а MON$TIMESTAMP - нет?..
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
FB 2.5 Как получить список активных транзакций. Как прибить транзакцию?
    #39356978
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
May12данное поле не меняется (смотрю через IbExpert) после подключения клиентского приложения и выполнения в нем действий, связанных в выбором данных из БД?

не вижу противоречий. У тебя скорее всего в приложении стартует RO RC транзакция и в ней делаются все выборки, и живёт она до конца работы приложения.

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

не вижу противоречий. У тебя скорее всего в приложении стартует RO RC транзакция и в ней делаются все выборки, и живёт она до конца работы приложения.

Проверь что тебе говорит Dimitry Sibiryakov

А чем плохо открытие такой транзакции при старте приложения? IBE при коннекте к базе открывает аналогичную транзакцию.
...
Рейтинг: 0 / 0
FB 2.5 Как получить список активных транзакций. Как прибить транзакцию?
    #39361618
m7m
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alex342А чем плохо открытие такой транзакции при старте приложения? IBE при коннекте к базе открывает аналогичную транзакцию.
Здесь кто-то написал что это плохо???
...
Рейтинг: 0 / 0
FB 2.5 Как получить список активных транзакций. Как прибить транзакцию?
    #39361638
alex342
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
m7malex342А чем плохо открытие такой транзакции при старте приложения? IBE при коннекте к базе открывает аналогичную транзакцию.
Здесь кто-то написал что это плохо???

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

мусор - это не нужные ни одной транзакции версии. Если он читается, то он убирается. мусор "плохо" собираться не может.
Не мусор - версии, которые нужны каким-то транзакциям.
транзакция RO RC для сервера как бы "не существует". Поэтому на мусор - не мусор она никак не влияет.
...
Рейтинг: 0 / 0
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
FB 2.5 Как получить список активных транзакций. Как прибить транзакцию?
    #39361916
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alex342А IBE открывают и держат некоторые "контроллёры" чтобы посмотреть и что то иногда выполнить.Почему бы специально для "контроллЁров" не сделать приложение, в котором будет собраны используемые ими SQL запросы, по завершению фетча из которых транзакция будет подтверждаться? Почему этим "контроллЁрам" обязательно нужно использовать инструмент разработчика?
...
Рейтинг: 0 / 0
FB 2.5 Как получить список активных транзакций. Как прибить транзакцию?
    #39362113
Фотография Di_LIne
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rdb_devПочему бы специально для "контроллЁров" не сделать приложение...
- Пата-мушта!
Потом на "надсмоторщиков" нужОн будет свой "надсмоторщег". И тд и тп...


IP + МП - патамушта вы в Инетах работать не умееете. :-)


Патамушта to all :
- Почти не умеют делать (разрабатывать, програмать и тп) "кОнченные (или конЕчные) автоматы".
Даже смутно не представляют чего енто такое.

УГ поколения пепзи и ай-фончег - одноклеточно-линейное скрепление спинным мозгом уровня "попади в ихконку пальцОм". :-))
...
Рейтинг: 0 / 0
FB 2.5 Как получить список активных транзакций. Как прибить транзакцию?
    #39362211
IBExpert
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Просто к сведению. С недавних пор в эксперте появилась опция "Disconnect if no activity".
Искать в регистрационной записи БД на закладке "Дополнительные параметры". Возможно, кому-то будет полезно.
...
Рейтинг: 0 / 0
53 сообщений из 53, показаны все 3 страниц
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / FB 2.5 Как получить список активных транзакций. Как прибить транзакцию?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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