Определение состояний транзакций в сервере Firebird

IBX, FIBPlus, UIB, ADO, .Net и прочее-прочее-прочее, в общем все, что относится к созданию приложений, работающих с InterBase, Firebird и Yaffil - клиент-серверных, трехзвенных, консольных и т.п.

Модератор: kdv

Ответить
Viktor_Dnepropetrovsk
Сообщения: 14
Зарегистрирован: 28 апр 2005, 23:07

Определение состояний транзакций в сервере Firebird

Сообщение Viktor_Dnepropetrovsk » 28 апр 2005, 23:17

Для тех, кто что-нибудь понимает.
1.Как Firebird работает с ID_TRANSACTION ? Изменяет ли он ID после backup/restore (неужели он накапливает счетчик транзакций постоянно?)
2. Какой функций API и как узнать состояние транзаакции по её ID_TRANSACTION?

kdv
Forum Admin
Сообщения: 6595
Зарегистрирован: 25 окт 2004, 18:07

Сообщение kdv » 29 апр 2005, 00:12

id_transaction показывает текущий номер транзакции (внутри транзакции).
все счетчики транзакций сбрасываются после restore, безусловно.
никакой функцией api узнать состояние транзакции невозможно. пока ты получаешь ее номер, она активна. когда она завершается, ты ее номер узнать уже не можешь.

Viktor_Dnepropetrovsk
Сообщения: 14
Зарегистрирован: 28 апр 2005, 23:07

Сообщение Viktor_Dnepropetrovsk » 29 апр 2005, 00:50

kdv писал(а):id_transaction показывает текущий номер транзакции (внутри транзакции).
все счетчики транзакций сбрасываются после restore, безусловно.
никакой функцией api узнать состояние транзакции невозможно. пока ты получаешь ее номер, она активна. когда она завершается, ты ее номер узнать уже не можешь.
Как это "внутри транзакции"?
Казалось бы внутри "базы данных" (возможно до Restore). И если не сохраняется состояние транзакции до Restore, то как же происходит удаление мусора?
Задача состоит в том, что записав в некоторою таблицу параметр ID_TRANSACTION, нужно по состоянию этой транзакции в некоторый момент времени удалить эту запись (записи), если эта транзакция не находится в состоянии ACTIVE (блокировку и интим не предлагать - не проходит)

kdv
Forum Admin
Сообщения: 6595
Зарегистрирован: 25 окт 2004, 18:07

Сообщение kdv » 29 апр 2005, 10:02

Как это "внутри транзакции"?
пока транзакция работает, в ней можно получить этот идентификатор. Как перестает работать, то все. собственно, это ж current_transaction.
И если не сохраняется состояние транзакции до Restore, то как же происходит удаление мусора?
ась? или мы вообще про что? иди-ка про транзакции прочитай. А то про какие то id_transaction....
Задача состоит в том, что записав в некоторою таблицу параметр ID_TRANSACTION, нужно по состоянию этой транзакции в некоторый момент времени удалить эту запись (записи), если эта транзакция не находится в состоянии ACTIVE (блокировку и интим не предлагать - не проходит)
я вот ничего не понял... накой это тебе? На сервере ты не видишь состояния транзакций. Серверу - серверово.

Ответить