Firebird - список активных подключений (монопольный доступ)

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

Firebird - список активных подключений (монопольный доступ)

Сообщение bpg » 03.10.2018 19:54:26

Как реализовать монопольный доступ к БД? Наподобие 1С, чтобы пользователь не мог подключаться, если администрирование БД или замена версии происходит?

И как получить список активных подключений, наподобие IBExpert (active user) ?

Добавлено спустя 2 часа 43 минуты 19 секунд:
Вопрос по списку пользователей снят. По второму вопросу.
Что бы я хотел. Допустим мне нужно в рабочей БД внести изменения. Я запускаю программу под админом, говорю, что теперь доступ у нее монопольный, типа все выйдете.
Потом у клиентв появляется уведомление - "бла, бла, бла, срочный удалитесь...."
Если я вижу в своем мониторе пользователей что кто то забил, то сначала звоню по хорошему, если нет, то удаляю сессию.
Потом, даже если кто то пытается запустить программу, то она не запускается с уведомлением о работах.

Как думаю сделать.
Завести в БД служебное поле и когда нужно писать туда допустим 1, при работе программу таймер допустим раз в минуту проверяет на чтение это поле и если оно становиться равным 1, то включает обратный отсчет и через какое то время закрывает программу у клиента.
Программа при проверке смотрит, чтобы пользователь не был админом чтоб самому работать.

При запуске соответственно она такую же проверку делает при активации главной формы.

Нормально или я гоню? Посоветуйте.
bpg
новенький
 
Сообщения: 36
Зарегистрирован: 28.11.2017 21:23:18

Re: Firebird - список активных подключений (монопольный дост

Сообщение wadman » 04.10.2018 10:26:51

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

см в TIBConfigService.ShutdownDatabase
подробнее https://www.firebirdsql.org/pdfmanual/h ... tstop.html

Грубо говоря, FB уже имеет такой режим: СУБД сама запретит подключение к базе всем, кроме админа. Сама же может всех отключить.
wadman
постоялец
 
Сообщения: 122
Зарегистрирован: 18.10.2016 15:54:28

Re: Firebird - список активных подключений (монопольный дост

Сообщение bpg » 04.10.2018 11:16:15

wadman писал(а):Если пользователи ходят под своими учетками, без админских прав, то
см в TIBConfigService.ShutdownDatabase

Это из каких компонентов, я использую встроенные родные SQLDb.
bpg
новенький
 
Сообщения: 36
Зарегистрирован: 28.11.2017 21:23:18

Re: Firebird - список активных подключений (монопольный дост

Сообщение wadman » 04.10.2018 12:50:21

bpg писал(а):Это из каких компонентов

IBX https://www.mwasoftware.co.uk/ibx
wadman
постоялец
 
Сообщения: 122
Зарегистрирован: 18.10.2016 15:54:28

Re: Firebird - список активных подключений (монопольный дост

Сообщение bpg » 04.10.2018 16:48:30

А со встроенными компонентами такое возможно?
bpg
новенький
 
Сообщения: 36
Зарегистрирован: 28.11.2017 21:23:18

Re: Firebird - список активных подключений (монопольный дост

Сообщение wadman » 04.10.2018 17:54:44

bpg писал(а):А со встроенными компонентами такое возможно?

Почти. Функция fb_shutdown объявлена в ibase60dyn/ibase60, но не задействована.
wadman
постоялец
 
Сообщения: 122
Зарегистрирован: 18.10.2016 15:54:28

Re: Firebird - список активных подключений (монопольный дост

Сообщение Tango » 01.05.2019 16:21:54

Если кому всё ещё нужно.
Заводится генератор, так как генератор работает вне транзакций, то именно он подходит для этого.
В программах клиентах по таймеру ведётся опрос этого генератора без приращения значения.
Всё.
Аватара пользователя
Tango
постоялец
 
Сообщения: 155
Зарегистрирован: 31.05.2012 17:07:30


Вернуться в Lazarus

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 15

Рейтинг@Mail.ru