|
Запрет на запуск двух программ одним пользователем
|
|||
---|---|---|---|
#18+
Симонов Денис, схема работала с использованием таблицы mon$attachmnts лет шесть точно. За это время никто не умер отключаю иногда зависших пользователей. Все знают - один пользователь - одна лицензия, а т.к. они стоят неплохих денег - контроль за их использованием очень строгий. И бизнесу плевать как я реализую учет, бизнесу важны деньги. Я убрал старую схему по праву "вето", но взамен должен дать аналогично работающую систему. Если кто-то может подсказать как сделать запрет на запуск используя только средства Firebird - помогите. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.11.2016, 18:57 |
|
Запрет на запуск двух программ одним пользователем
|
|||
---|---|---|---|
#18+
Симонов ДенисGallemar, для начала подготовь товарища надсмотрщика к тому, что юзеры будут кидать в него тапки, каждый раз когда не смогут подрубиться к системе. Когда товарищу надсмотрщику это надоест, он придёт забрасывать тапками тебя. Да это вообще не проблема. Я же скрин показывал из 1с - всё это было, сейчас будет тоже самое,но без mon$attachments. Вообще у нас есть круглосуточная техподдержка, а научить её нужные кнопки нажимать быстро. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.11.2016, 19:00 |
|
Запрет на запуск двух программ одним пользователем
|
|||
---|---|---|---|
#18+
Di_LIneGallemarDi_LIne,с которой, с первой или второй? - Со всеми тремя! Хотя и первой, в двумя IF и тремя ELSE , гордо названной "программным кодом", достаточно. :-)))) Так некому научить хорошему, даже тут одни тролли вроде тебя :) ... |
|||
:
Нравится:
Не нравится:
|
|||
20.11.2016, 19:02 |
|
Запрет на запуск двух программ одним пользователем
|
|||
---|---|---|---|
#18+
GallemarТак некому научить хорошему, даже тут одни тролли вроде тебя :) - На учтить пользоваться поиском? Ну-ну... :-)))) Если тебе самому лень поискать, то другим еще больше неохота. И можно мнить себя гигантом (анти_лекта?) программинга и тешить самолюбие (ниже пояса), што такой супер-пупер разраб (на три строчки), кто такое (фуфло) прЫдумал. - Ы? Ап чем тебе сразу и показал Симонов Денис . ... |
|||
:
Нравится:
Не нравится:
|
|||
20.11.2016, 19:09 |
|
Запрет на запуск двух программ одним пользователем
|
|||
---|---|---|---|
#18+
Di_LIne,а чего искать то? ... |
|||
:
Нравится:
Не нравится:
|
|||
20.11.2016, 19:10 |
|
Запрет на запуск двух программ одним пользователем
|
|||
---|---|---|---|
#18+
GallemarDi_LIne,а чего искать то? Если ни чего не терял, то фигле топик начал? 1. Типа по выйоживатся? - Тогда получи и распишись, и не плачь. 2. А если чё потерял - так енто и ищи. Чай задачка элементарно-обыденная. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.11.2016, 19:20 |
|
Запрет на запуск двух программ одним пользователем
|
|||
---|---|---|---|
#18+
Симонов Денисесли отключение произошло нештатным способом (обрыв сети и т.д.), то запись о подключенном юзере останется навсегда в БДПри обрыве коннекта триггер сработает. Он не сработает только в реально фатальных случаях, вроде падения процесса сервера. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.11.2016, 19:29 |
|
Запрет на запуск двух программ одним пользователем
|
|||
---|---|---|---|
#18+
Gallemarвсё это было, сейчас будет тоже самое, но без mon$attachments да ну? В mon$ мёртвые коннекты не задерживаются. Я бы на твоём месте подумал над схемой в которой успешность работы не зависит от disconnect триггера. Можешь вообще не удалять сведения о коннектах, а какие живые вычислять запросом. Впрочем делай как знаешь, отговаривать больше не буду. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.11.2016, 19:35 |
|
Запрет на запуск двух программ одним пользователем
|
|||
---|---|---|---|
#18+
Симонов ДенисGallemarвсё это было, сейчас будет тоже самое, но без mon$attachments да ну? В mon$ мёртвые коннекты не задерживаются. Даже с настроенным keep alive всё равно пользователь быстрее успевает попытаться зайти снова в базу. Надо было сразу объяснить зачем это делается, смысла никто не понял как я вижу. У программы лимит на рабочие места и если кто-то откроет программу дважды,например директор или товаровед в магазине на каждом компьютере зайдет по разу - двух-трех мест нет. И настанет момент когда никто в программу не зайдет и начнутся звонки от пользователей, придется искать по mon$attachments кто себе решил сделать красиво, девчонок моих напрягать. Так что лучше триггеры на коннект-дисконнект и редкие проблемы с зависшими пользователями,чем жалобы что нет мест в программе. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.11.2016, 19:44 |
|
Запрет на запуск двух программ одним пользователем
|
|||
---|---|---|---|
#18+
Di_LIneGallemarDi_LIne,а чего искать то? Если ни чего не терял, то фигле топик начал? 1. Типа по выйоживатся? - Тогда получи и распишись, и не плачь. 2. А если чё потерял - так енто и ищи. Чай задачка элементарно-обыденная. Я тебя накормил? Если нет - увы,я спать,а ты сиди голодный ... |
|||
:
Нравится:
Не нравится:
|
|||
20.11.2016, 19:45 |
|
Запрет на запуск двух программ одним пользователем
|
|||
---|---|---|---|
#18+
Gallemar, я с самого начала топика понял для чего ты это делаешь. Мне не нравится в твоей схеме, что дядя Вася у которого на секунду прервалась сеть, побежит к админу говорить: "Что за фигня программа пишет что я не могу войти в систему, потому что уже вошёл, а ведь я её перезапустил." После чего админ будет в каком-то там окошке проводить манипуляции, чтобы дядя Вася смог войти в систему. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.11.2016, 19:59 |
|
Запрет на запуск двух программ одним пользователем
|
|||
---|---|---|---|
#18+
Симонов Денися с самого начала топика понял для чего ты это делаешь. У него ограниченное кол-во лицензий на подключение с сёрверу. Коим, адназначная, является не FB. Но... Ему-с влом изучать тот сёрвант (почему - вынесу за скобки), а копает там, где светлее, под фонарем FB. :-)) ... |
|||
:
Нравится:
Не нравится:
|
|||
20.11.2016, 20:16 |
|
Запрет на запуск двух программ одним пользователем
|
|||
---|---|---|---|
#18+
Di_LIneЕму-с влом изучать тот сёрвант (почему - вынесу за скобки), а копает там, где светлее, под фонарем FB. :-)) Тот это который? ... |
|||
:
Нравится:
Не нравится:
|
|||
20.11.2016, 20:23 |
|
Запрет на запуск двух программ одним пользователем
|
|||
---|---|---|---|
#18+
Симонов ДенисGallemar, я с самого начала топика понял для чего ты это делаешь. Мне не нравится в твоей схеме, что дядя Вася у которого на секунду прервалась сеть, побежит к админу говорить: "Что за фигня программа пишет что я не могу войти в систему, потому что уже вошёл, а ведь я её перезапустил." После чего админ будет в каком-то там окошке проводить манипуляции, чтобы дядя Вася смог войти в систему. А как иначе? ... |
|||
:
Нравится:
Не нравится:
|
|||
20.11.2016, 20:23 |
|
Запрет на запуск двух программ одним пользователем
|
|||
---|---|---|---|
#18+
hvladПри обрыве коннекта триггер сработает. Он не сработает только в реально фатальных случаях, вроде падения процесса сервера. Ты бы дописал - "в рамках того, что отслеживает ОС сервера". А то они-с, кодеры, все воснимают одноклеточно и буквально. И не помнют (не знают), когда FB и пр. клоны IB, сами отслеживали клиентов. :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
20.11.2016, 20:41 |
|
Запрет на запуск двух программ одним пользователем
|
|||
---|---|---|---|
#18+
hvladСимонов Денисесли отключение произошло нештатным способом (обрыв сети и т.д.), то запись о подключенном юзере останется навсегда в БДПри обрыве коннекта триггер сработает. Он не сработает только в реально фатальных случаях, вроде падения процесса сервера. возможно. Я точно помню, что здесь было обсуждение, что on diconnect не срабатывает при delete from mon$attachments и при shutdown. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.11.2016, 20:51 |
|
Запрет на запуск двух программ одним пользователем
|
|||
---|---|---|---|
#18+
GallemarПожалуйста оцените реализацию запрета на запуск двух программ одним пользователем. Задача такая - пользователь не может подключится к базе из одной программы,если он уже подключен к базе. Раньше была реализация на триггере на коннект с использованием mon$attachments, но это очень сильно нагружало базу и в определенный момент отправилось на свалку. Теперь решение я вижу так - один триггер на коннект делает запись в таблицу о подключении юсера - имя пользователя, время подключения и имя программы (второе для мониторинга, третий для отладки), а перед этим проверяет - есть ли уже такая запись в таблице, если есть - проверяет есть ли этот усер в таблице с исключениями, если нет - выдает эксепшен. Логика понятная, но реализация странная. Используй GTT: это позволит не задумываться о том, что делать, когда соединение отвалится или сервер упадет, все подчистится "само собой". При коннекте пиши в базу имя пользователя и имя программы, в этой самой GTT должен быть уникальный ключ на "имя пользователя и имя программы". Если при попытке записи получишь отлуп - значит, ты уже не первый. Вот и вся логика. Про GTT можно почитать вот тут. (Стр. 123). PS: можно даже без GTT обойтись: просто не коммитить запись и все. :) ... |
|||
:
Нравится:
Не нравится:
|
|||
20.11.2016, 22:59 |
|
Запрет на запуск двух программ одним пользователем
|
|||
---|---|---|---|
#18+
Товарищ младший сержантGallemarПожалуйста оцените реализацию запрета на запуск двух программ одним пользователем. Задача такая - пользователь не может подключится к базе из одной программы,если он уже подключен к базе. Раньше была реализация на триггере на коннект с использованием mon$attachments, но это очень сильно нагружало базу и в определенный момент отправилось на свалку. Теперь решение я вижу так - один триггер на коннект делает запись в таблицу о подключении юсера - имя пользователя, время подключения и имя программы (второе для мониторинга, третий для отладки), а перед этим проверяет - есть ли уже такая запись в таблице, если есть - проверяет есть ли этот усер в таблице с исключениями, если нет - выдает эксепшен. ... Пардон, не дочитал условие задачи до конца: тебе еще и "мониторинг" нужен... ... |
|||
:
Нравится:
Не нравится:
|
|||
20.11.2016, 23:04 |
|
Запрет на запуск двух программ одним пользователем
|
|||
---|---|---|---|
#18+
Товарищ младший сержантТоварищ младший сержантпропущено... ... Пардон, не дочитал условие задачи до конца: тебе еще и "мониторинг" нужен... Ну, в триггере "на коннект" еще удалять из таблички "мониторинга" записи о тех юзерах, которых нет в виртульной табличке MON$ATTACHMENTS? Дабы обеспечить актуальность "мониторинга", ну и заодно избежать 19912194 - т.е., чистить табличку от мусорных данных... ... Воскресный говнокод! ... |
|||
:
Нравится:
Не нравится:
|
|||
20.11.2016, 23:21 |
|
Запрет на запуск двух программ одним пользователем
|
|||
---|---|---|---|
#18+
Товарищ младший сержантЛогика понятная, но реализация странная. Используй GTT: это позволит не задумываться о том, что делать, когда соединение отвалится или сервер упадет, все подчистится "само собой". При коннекте пиши в базу имя пользователя и имя программы, в этой самой GTT должен быть уникальный ключ на "имя пользователя и имя программы". Если при попытке записи получишь отлуп - значит, ты уже не первый. Вот и вся логика. Про GTT можно почитать вот тут. (Стр. 123). PS: можно даже без GTT обойтись: просто не коммитить запись и все. :) Мне такую реализацию предлагал Таблоид,её минус в том, что пользователь получит просто ошибку, а мне нужен эксепшен с текстом,понятным усеру. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.11.2016, 04:07 |
|
Запрет на запуск двух программ одним пользователем
|
|||
---|---|---|---|
#18+
Товарищ младший сержантТоварищ младший сержантпропущено... ... Пардон, не дочитал условие задачи до конца: тебе еще и "мониторинг" нужен... Мониторинг не нужен. Кто подключен я итак вижу либо через ma, либо через утилиту самой программы. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.11.2016, 04:10 |
|
Запрет на запуск двух программ одним пользователем
|
|||
---|---|---|---|
#18+
Gallemar...а мне нужен эксепшен с текстом,понятным усеру. ... типа: - Дорогая Катерина Матвеевна! Во первых строках сия письма.... (далее совсем не по тексту). ... |
|||
:
Нравится:
Не нравится:
|
|||
21.11.2016, 10:16 |
|
Запрет на запуск двух программ одним пользователем
|
|||
---|---|---|---|
#18+
Di_LIne, с добрым утром :) ... |
|||
:
Нравится:
Не нравится:
|
|||
21.11.2016, 10:18 |
|
Запрет на запуск двух программ одним пользователем
|
|||
---|---|---|---|
#18+
Товарищ младший сержантИспользуй GTTХорошо подумал ? Товарищ младший сержантпросто не коммитить запись и все. :)А вот за такие советы можно и в рядовых оказаться ... |
|||
:
Нравится:
Не нравится:
|
|||
21.11.2016, 10:49 |
|
Запрет на запуск двух программ одним пользователем
|
|||
---|---|---|---|
#18+
hvladТоварищ младший сержантИспользуй GTTХорошо подумал ? Товарищ младший сержантпросто не коммитить запись и все. :)А вот за такие советы можно и в рядовых оказаться Я знал, что будут недовольные... ... Gallemar... Мне такую реализацию предлагал Таблоид,её минус в том, что пользователь получит просто ошибку, а мне нужен эксепшен с текстом,понятным усеру. А перехватить исключение и свое сгенерировать? ... |
|||
:
Нравится:
Не нравится:
|
|||
21.11.2016, 15:34 |
|
|
start [/forum/topic.php?fid=40&msg=39350576&tid=1561838]: |
0ms |
get settings: |
9ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
41ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
60ms |
get tp. blocked users: |
1ms |
others: | 14ms |
total: | 160ms |
0 / 0 |