Здравствуйте. Возникла необходимость получения информации о транзакциях.
Использую:
- IBCConnection.DatabaseInfo.InfoOldestTransaction;
- IBCConnection.DatabaseInfo.InfoOldestActive;
- IBCConnection.DatabaseInfo.InfoOldestSnapshot;
- IBCConnection.DatabaseInfo.InfoNextTransaction;
Однако значение InfoNextTransaction не соответствует действительности. Возможно, имеет место ошибка. Значение совпадает с InfoOldestActive (и InfoOldestSnapshot).
IBDac 4.2.7.
Информация IBCDatabase.DatabaseInfo[TransactionInfo]
Re: Информация IBCDatabase.DatabaseInfo[TransactionInfo]
Здравствуйте,
Я повторил данную проблему. IBDAC использует isc_database_info API функцию для получения статистики базы данных, которая возвращает некорректные данные об идентификаторах транзакций. Мы не можем повлиять на данное поведение функции isc_database_info. За более подробной информацией о данной проблеме, обратитесь пожалуйста к разработчикам Firebird.
Я повторил данную проблему. IBDAC использует isc_database_info API функцию для получения статистики базы данных, которая возвращает некорректные данные об идентификаторах транзакций. Мы не можем повлиять на данное поведение функции isc_database_info. За более подробной информацией о данной проблеме, обратитесь пожалуйста к разработчикам Firebird.
Re: Информация IBCDatabase.DatabaseInfo[TransactionInfo]
Понял. Спасибо. Буду рапортовать о проблеме разработчикам сервера.
Re: Информация IBCDatabase.DatabaseInfo[TransactionInfo]
Замкнутый круг какой-то. Создал тему на форуме с проблемой. Разработчик говорит, что у них все правильно. Приглашают Вас обсудить...
Re: Информация IBCDatabase.DatabaseInfo[TransactionInfo]
Мы более глубоко исследовали данную проблему. IBDAC при соединении с базой получает ее данные, при этом стартуется и завершается транзакция. Если хотя бы одна транзакции была начата в текущей сессии, вызов isc_database_info в этой сессии возвращает в Oldest Transaction идентификатор этой транзакции, а Oldest Active, Snapshot и Next Transaction - идентификатор этой транзакции плюс один. Это поведение Firebird, мы не можем повлиять него. За более подробным объяснением данного поведения Firebird, обратитесь пожалуйста к разработчикам Firebird.
Re: Информация IBCDatabase.DatabaseInfo[TransactionInfo]
Спасибо за разъяснение и потраченное Вами время. Ваше сообщение можно опубликовать на форуме http://www.ibaseforum.ru в созданной мной теме?
Re: Информация IBCDatabase.DatabaseInfo[TransactionInfo]
Да, опубликовывайте. Могу добавить что я также проверил несколько сторонних компонент и все ведут себя одинаково. До использования транзакций в сессии идентификаторы получаются корректные, после - некорректные (вполне возможно что это корректное поведение Firebird).
И еще, утилита gstat читает идентификаторы транзакций напрямую из файла базы данных без подключения к ней (в отличии от других компонент и утилит для работы с Firebird). Вы можете найти подробное описание утилиты gstat здесь: http://www.firebirdsql.org/manual/gstat.html
И еще, утилита gstat читает идентификаторы транзакций напрямую из файла базы данных без подключения к ней (в отличии от других компонент и утилит для работы с Firebird). Вы можете найти подробное описание утилиты gstat здесь: http://www.firebirdsql.org/manual/gstat.html