powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Запрет на запуск двух программ одним пользователем
25 сообщений из 51, страница 2 из 3
Запрет на запуск двух программ одним пользователем
    #39350568
Фотография Gallemar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов Денис, схема работала с использованием таблицы mon$attachmnts лет шесть точно. За это время никто не умер отключаю иногда зависших пользователей. Все знают - один пользователь - одна лицензия, а т.к. они стоят неплохих денег - контроль за их использованием очень строгий. И бизнесу плевать как я реализую учет, бизнесу важны деньги. Я убрал старую схему по праву "вето", но взамен должен дать аналогично работающую систему. Если кто-то может подсказать как сделать запрет на запуск используя только средства Firebird - помогите.
...
Рейтинг: 0 / 0
Запрет на запуск двух программ одним пользователем
    #39350571
Фотография Gallemar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов ДенисGallemar,

для начала подготовь товарища надсмотрщика к тому, что юзеры будут кидать в него тапки, каждый раз когда не смогут подрубиться к системе. Когда товарищу надсмотрщику это надоест, он придёт забрасывать тапками тебя.
Да это вообще не проблема. Я же скрин показывал из 1с - всё это было, сейчас будет тоже самое,но без mon$attachments. Вообще у нас есть круглосуточная техподдержка, а научить её нужные кнопки нажимать быстро.
...
Рейтинг: 0 / 0
Запрет на запуск двух программ одним пользователем
    #39350572
Фотография Gallemar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Di_LIneGallemarDi_LIne,с которой, с первой или второй?
- Со всеми тремя!
Хотя и первой, в двумя IF и тремя ELSE , гордо названной "программным кодом", достаточно. :-))))
Так некому научить хорошему, даже тут одни тролли вроде тебя :)
...
Рейтинг: 0 / 0
Запрет на запуск двух программ одним пользователем
    #39350573
Фотография Di_LIne
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GallemarТак некому научить хорошему, даже тут одни тролли вроде тебя :)
- На учтить пользоваться поиском? Ну-ну... :-))))
Если тебе самому лень поискать, то другим еще больше неохота.
И можно мнить себя гигантом (анти_лекта?) программинга и тешить самолюбие (ниже пояса), што такой супер-пупер разраб (на три строчки), кто такое (фуфло) прЫдумал.
- Ы?

Ап чем тебе сразу и показал Симонов Денис .
...
Рейтинг: 0 / 0
Запрет на запуск двух программ одним пользователем
    #39350576
Фотография Gallemar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Di_LIne,а чего искать то?
...
Рейтинг: 0 / 0
Запрет на запуск двух программ одним пользователем
    #39350578
Фотография Di_LIne
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GallemarDi_LIne,а чего искать то?
Если ни чего не терял, то фигле топик начал?
1. Типа по выйоживатся? - Тогда получи и распишись, и не плачь.
2. А если чё потерял - так енто и ищи. Чай задачка элементарно-обыденная.
...
Рейтинг: 0 / 0
Запрет на запуск двух программ одним пользователем
    #39350582
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов Денисесли отключение произошло нештатным способом (обрыв сети и т.д.), то запись о подключенном юзере останется навсегда в БДПри обрыве коннекта триггер сработает.
Он не сработает только в реально фатальных случаях, вроде падения процесса сервера.
...
Рейтинг: 0 / 0
Запрет на запуск двух программ одним пользователем
    #39350587
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Gallemarвсё это было, сейчас будет тоже самое, но без mon$attachments

да ну? В mon$ мёртвые коннекты не задерживаются.

Я бы на твоём месте подумал над схемой в которой успешность работы не зависит от disconnect триггера. Можешь вообще не удалять сведения о коннектах, а какие живые вычислять запросом.

Впрочем делай как знаешь, отговаривать больше не буду.
...
Рейтинг: 0 / 0
Запрет на запуск двух программ одним пользователем
    #39350591
Фотография Gallemar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов ДенисGallemarвсё это было, сейчас будет тоже самое, но без mon$attachments
да ну? В mon$ мёртвые коннекты не задерживаются.

Даже с настроенным keep alive всё равно пользователь быстрее успевает попытаться зайти снова в базу. Надо было сразу объяснить зачем это делается, смысла никто не понял как я вижу. У программы лимит на рабочие места и если кто-то откроет программу дважды,например директор или товаровед в магазине на каждом компьютере зайдет по разу - двух-трех мест нет. И настанет момент когда никто в программу не зайдет и начнутся звонки от пользователей, придется искать по mon$attachments кто себе решил сделать красиво, девчонок моих напрягать. Так что лучше триггеры на коннект-дисконнект и редкие проблемы с зависшими пользователями,чем жалобы что нет мест в программе.
...
Рейтинг: 0 / 0
Запрет на запуск двух программ одним пользователем
    #39350592
Фотография Gallemar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Di_LIneGallemarDi_LIne,а чего искать то?
Если ни чего не терял, то фигле топик начал?
1. Типа по выйоживатся? - Тогда получи и распишись, и не плачь.
2. А если чё потерял - так енто и ищи. Чай задачка элементарно-обыденная.
Я тебя накормил? Если нет - увы,я спать,а ты сиди голодный
...
Рейтинг: 0 / 0
Запрет на запуск двух программ одним пользователем
    #39350598
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Gallemar,

я с самого начала топика понял для чего ты это делаешь. Мне не нравится в твоей схеме, что дядя Вася у которого на секунду прервалась сеть, побежит к админу говорить: "Что за фигня программа пишет что я не могу войти в систему, потому что уже вошёл, а ведь я её перезапустил." После чего админ будет в каком-то там окошке проводить манипуляции, чтобы дядя Вася смог войти в систему.
...
Рейтинг: 0 / 0
Запрет на запуск двух программ одним пользователем
    #39350605
Фотография Di_LIne
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов Денися с самого начала топика понял для чего ты это делаешь.
У него ограниченное кол-во лицензий на подключение с сёрверу. Коим, адназначная, является не FB.
Но...
Ему-с влом изучать тот сёрвант (почему - вынесу за скобки), а копает там, где светлее, под фонарем FB. :-))
...
Рейтинг: 0 / 0
Запрет на запуск двух программ одним пользователем
    #39350607
Фотография Gallemar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Di_LIneЕму-с влом изучать тот сёрвант (почему - вынесу за скобки), а копает там, где светлее, под фонарем FB. :-))
Тот это который?
...
Рейтинг: 0 / 0
Запрет на запуск двух программ одним пользователем
    #39350608
Фотография Gallemar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов ДенисGallemar,

я с самого начала топика понял для чего ты это делаешь. Мне не нравится в твоей схеме, что дядя Вася у которого на секунду прервалась сеть, побежит к админу говорить: "Что за фигня программа пишет что я не могу войти в систему, потому что уже вошёл, а ведь я её перезапустил." После чего админ будет в каком-то там окошке проводить манипуляции, чтобы дядя Вася смог войти в систему.
А как иначе?
...
Рейтинг: 0 / 0
Запрет на запуск двух программ одним пользователем
    #39350617
Фотография Di_LIne
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hvladПри обрыве коннекта триггер сработает.
Он не сработает только в реально фатальных случаях, вроде падения процесса сервера.
Ты бы дописал - "в рамках того, что отслеживает ОС сервера".
А то они-с, кодеры, все воснимают одноклеточно и буквально.
И не помнют (не знают), когда FB и пр. клоны IB, сами отслеживали клиентов. :-)
...
Рейтинг: 0 / 0
Запрет на запуск двух программ одним пользователем
    #39350620
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hvladСимонов Денисесли отключение произошло нештатным способом (обрыв сети и т.д.), то запись о подключенном юзере останется навсегда в БДПри обрыве коннекта триггер сработает.
Он не сработает только в реально фатальных случаях, вроде падения процесса сервера.

возможно. Я точно помню, что здесь было обсуждение, что on diconnect не срабатывает при delete from mon$attachments и при shutdown.
...
Рейтинг: 0 / 0
Запрет на запуск двух программ одним пользователем
    #39350675
Товарищ младший сержант
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GallemarПожалуйста оцените реализацию запрета на запуск двух программ одним пользователем. Задача такая - пользователь не может подключится к базе из одной программы,если он уже подключен к базе. Раньше была реализация на триггере на коннект с использованием mon$attachments, но это очень сильно нагружало базу и в определенный момент отправилось на свалку. Теперь решение я вижу так - один триггер на коннект делает запись в таблицу о подключении юсера - имя пользователя, время подключения и имя программы (второе для мониторинга, третий для отладки), а перед этим проверяет - есть ли уже такая запись в таблице, если есть - проверяет есть ли этот усер в таблице с исключениями, если нет - выдает эксепшен.


Логика понятная, но реализация странная.

Используй GTT: это позволит не задумываться о том, что делать, когда соединение отвалится или сервер упадет, все подчистится "само собой".

При коннекте пиши в базу имя пользователя и имя программы, в этой самой GTT должен быть уникальный ключ на "имя пользователя и имя программы".
Если при попытке записи получишь отлуп - значит, ты уже не первый.
Вот и вся логика.

Про GTT можно почитать вот тут. (Стр. 123).

PS: можно даже без GTT обойтись: просто не коммитить запись и все. :)
...
Рейтинг: 0 / 0
Запрет на запуск двух программ одним пользователем
    #39350676
Товарищ младший сержант
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Товарищ младший сержантGallemarПожалуйста оцените реализацию запрета на запуск двух программ одним пользователем. Задача такая - пользователь не может подключится к базе из одной программы,если он уже подключен к базе. Раньше была реализация на триггере на коннект с использованием mon$attachments, но это очень сильно нагружало базу и в определенный момент отправилось на свалку. Теперь решение я вижу так - один триггер на коннект делает запись в таблицу о подключении юсера - имя пользователя, время подключения и имя программы (второе для мониторинга, третий для отладки), а перед этим проверяет - есть ли уже такая запись в таблице, если есть - проверяет есть ли этот усер в таблице с исключениями, если нет - выдает эксепшен.

...
Пардон, не дочитал условие задачи до конца: тебе еще и "мониторинг" нужен...
...
Рейтинг: 0 / 0
Запрет на запуск двух программ одним пользователем
    #39350679
Товарищ младший сержант
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Товарищ младший сержантТоварищ младший сержантпропущено...

...
Пардон, не дочитал условие задачи до конца: тебе еще и "мониторинг" нужен...
Ну, в триггере "на коннект" еще удалять из таблички "мониторинга" записи о тех юзерах, которых нет в виртульной табличке MON$ATTACHMENTS?
Дабы обеспечить актуальность "мониторинга", ну и заодно избежать 19912194 - т.е., чистить табличку от мусорных данных...
...
Воскресный говнокод!
...
Рейтинг: 0 / 0
Запрет на запуск двух программ одним пользователем
    #39350720
Фотография Gallemar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Товарищ младший сержантЛогика понятная, но реализация странная.

Используй GTT: это позволит не задумываться о том, что делать, когда соединение отвалится или сервер упадет, все подчистится "само собой".

При коннекте пиши в базу имя пользователя и имя программы, в этой самой GTT должен быть уникальный ключ на "имя пользователя и имя программы".
Если при попытке записи получишь отлуп - значит, ты уже не первый.
Вот и вся логика.

Про GTT можно почитать вот тут. (Стр. 123).

PS: можно даже без GTT обойтись: просто не коммитить запись и все. :)

Мне такую реализацию предлагал Таблоид,её минус в том, что пользователь получит просто ошибку, а мне нужен эксепшен с текстом,понятным усеру.
...
Рейтинг: 0 / 0
Запрет на запуск двух программ одним пользователем
    #39350721
Фотография Gallemar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Товарищ младший сержантТоварищ младший сержантпропущено...

...
Пардон, не дочитал условие задачи до конца: тебе еще и "мониторинг" нужен...
Мониторинг не нужен. Кто подключен я итак вижу либо через ma, либо через утилиту самой программы.
...
Рейтинг: 0 / 0
Запрет на запуск двух программ одним пользователем
    #39350782
Фотография Di_LIne
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Gallemar...а мне нужен эксепшен с текстом,понятным усеру.
... типа:
- Дорогая Катерина Матвеевна! Во первых строках сия письма....
(далее совсем не по тексту).
...
Рейтинг: 0 / 0
Запрет на запуск двух программ одним пользователем
    #39350783
Фотография Gallemar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Di_LIne, с добрым утром :)
...
Рейтинг: 0 / 0
Запрет на запуск двух программ одним пользователем
    #39350809
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Товарищ младший сержантИспользуй GTTХорошо подумал ?
Товарищ младший сержантпросто не коммитить запись и все. :)А вот за такие советы можно и в рядовых оказаться
...
Рейтинг: 0 / 0
Запрет на запуск двух программ одним пользователем
    #39351165
Товарищ младший сержант
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hvladТоварищ младший сержантИспользуй GTTХорошо подумал ?
Товарищ младший сержантпросто не коммитить запись и все. :)А вот за такие советы можно и в рядовых оказаться
Я знал, что будут недовольные...
...
Gallemar...
Мне такую реализацию предлагал Таблоид,её минус в том, что пользователь получит просто ошибку, а мне нужен эксепшен с текстом,понятным усеру.
А перехватить исключение и свое сгенерировать?
...
Рейтинг: 0 / 0
25 сообщений из 51, страница 2 из 3
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Запрет на запуск двух программ одним пользователем
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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