powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / FB 2.5 Как получить список активных транзакций. Как прибить транзакцию?
25 сообщений из 53, страница 1 из 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
25 сообщений из 53, страница 1 из 3
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / FB 2.5 Как получить список активных транзакций. Как прибить транзакцию?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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