powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Запрет на запуск двух программ одним пользователем
51 сообщений из 51, показаны все 3 страниц
Запрет на запуск двух программ одним пользователем
    #39350353
Фотография Gallemar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый вечер
Пожалуйста оцените реализацию запрета на запуск двух программ одним пользователем. Задача такая - пользователь не может подключится к базе из одной программы,если он уже подключен к базе. Раньше была реализация на триггере на коннект с использованием mon$attachments, но это очень сильно нагружало базу и в определенный момент отправилось на свалку. Теперь решение я вижу так - один триггер на коннект делает запись в таблицу о подключении юсера - имя пользователя, время подключения и имя программы (второе для мониторинга, третий для отладки), а перед этим проверяет - есть ли уже такая запись в таблице, если есть - проверяет есть ли этот усер в таблице с исключениями, если нет - выдает эксепшен.
Код такой:
Таблица с коннектами:
Код: sql
1.
2.
3.
4.
5.
6.
CREATE TABLE ZM_CONNECT (
    ID_USER       VARCHAR(10),
    TIME_CONNECT  DATE,
    PROCESS       VARCHAR(20)
);
CREATE INDEX ZM_CONNECT_IDX1 ON ZM_CONNECT (ID_USER);



Таблица с исключениями:
Код: sql
1.
2.
3.
4.
5.
CREATE TABLE ZM_CONNECT_2 (
    ID_USER  VARCHAR(10)
);

CREATE INDEX ZM_CONNECT_2_IDX1 ON ZM_CONNECT_2 (ID_USER);



Триггер на коннект:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
CREATE OR ALTER trigger zm_connect
active on connect position 0
as
begin
--проверяем та ли эта программа
if (right(RDB$GET_CONTEXT('SYSTEM', 'CLIENT_PROCESS'), 12) = 'IBExpert.exe') then
-- проверяем есть ли запись в таблице подключений
if (exists(select 1 from ZM_CONNECT where ID_USER = current_user)) then
-- если есть - смотрим, есть ли исключения на данного пользователя
    begin
if (not exists(select 1from ZM_CONNECT_2 where ID_USER = current_user)) then
-- нету, лови эксепшен
        exception DB_CONNECT;
    end
-- если программа та, но подключения нет ещё - вносим данные в таблицу подключений
    else
    begin
      insert into ZM_CONNECT (ID_USER, TIME_CONNECT, PROCESS)
      values (current_user, current_timestamp, right(RDB$GET_CONTEXT('SYSTEM', 'CLIENT_PROCESS'), 12));
    end
end



Триггер на дисконнект:
Код: sql
1.
2.
3.
4.
5.
6.
CREATE OR ALTER trigger zm_disconnect
active on disconnect position 0
AS
begin
  delete from ZM_connect where id_user = current_user;
end

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

уверен? У тебя в системе постоянно коннект-дисконнект что ли?

Код обладает одним недостатком, если отключение произошло нештатным способом (обрыв сети и т.д.), то запись о подключенном юзере останется навсегда в БД, и этот пользователь больше не подключится к БД вообще.
...
Рейтинг: 0 / 0
Запрет на запуск двух программ одним пользователем
    #39350358
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Gallemar,

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

Уверен
Я не так давно даже писал про это http://www.sql.ru/forum/1236886/o-grustnom?hl=
Симонов Денисзапись о подключенном юзере останется навсегда в БД, и этот пользователь больше не подключится к БД вообще.
Это уже не мои проблемы, добавлю управление процессом в веб или в 1С, это уже пусть техподдержка или консультанты по софту разруливают. Когда всё через mon$attachments было при обрыве или перезагрузке терминального сервера там записи оставались, убирали через 1С без особых проблем.
...
Рейтинг: 0 / 0
Запрет на запуск двух программ одним пользователем
    #39350360
Фотография Gallemar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdvGallemar,

велосипед, не работает (Денис уже сказал).
По уму, люди делают так. Монитор на компе, каждый комп скидывает информацию по запросу на некий агрегатор, по tcp. Агрегатор выдает информацию. И может приказать, какой процесс этот монитор должен грохнуть, например.
Что за монитор?
...
Рейтинг: 0 / 0
Запрет на запуск двух программ одним пользователем
    #39350366
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Gallemar,

ну так ты проблемы своего решения спрашивал, тебе их показали.
...
Рейтинг: 0 / 0
Запрет на запуск двух программ одним пользователем
    #39350370
Фотография Gallemar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Т.е. использовать его можно, главное понимать возможные проблемы с нештатными отключениями ?
...
Рейтинг: 0 / 0
Запрет на запуск двух программ одним пользователем
    #39350374
Фотография Di_LIne
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Gallemar... главное понимать возможные проблемы с нештатными отключениями ?
Главное - понимать, что с таким быдлокоденгом и гуанамореализейшен - долго держать не будут...
...
Рейтинг: 0 / 0
Запрет на запуск двух программ одним пользователем
    #39350377
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GallemarЧто за монитор?
программа такая, самописная, которая мониторит состояние конкретных процессов.
...
Рейтинг: 0 / 0
Запрет на запуск двух программ одним пользователем
    #39350406
Фотография Gallemar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdvGallemarЧто за монитор?
программа такая, самописная, которая мониторит состояние конкретных процессов.
Усложняете. Проще триггер повесить, чтобы не давал два раза запускать приложение.
...
Рейтинг: 0 / 0
Запрет на запуск двух программ одним пользователем
    #39350407
Фотография Gallemar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Di_LIneGallemar... главное понимать возможные проблемы с нештатными отключениями ?
Главное - понимать, что с таким быдлокоденгом и гуанамореализейшен - долго держать не будут...
Мой быдлокодинг ждут как невеста первого раза :) Плакали и ждали, когда я из отпуска выйду.
...
Рейтинг: 0 / 0
Запрет на запуск двух программ одним пользователем
    #39350409
Фотография Di_LIne
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GallemarМой быдлокодинг ждут как невеста первого раза :) Плакали и ждали, когда я из отпуска выйду.
Да-да, йожики кололись, но кактус... самзнаешьчего. :-)
Но от это самзнаешьчего гуанамой быть не перестало.
- Ы?
...
Рейтинг: 0 / 0
Запрет на запуск двух программ одним пользователем
    #39350410
Фотография Gallemar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Di_LIneGallemarМой быдлокодинг ждут как невеста первого раза :) Плакали и ждали, когда я из отпуска выйду.
Да-да, йожики кололись, но кактус... самзнаешьчего. :-)
Но от это самзнаешьчего гуанамой быть не перестало.
- Ы?
Ы-ы-ы
В чем гуано-то? Новичка любой обидеть может,вот нет чтобы показать в чем неправ.
...
Рейтинг: 0 / 0
Запрет на запуск двух программ одним пользователем
    #39350413
Фотография Gallemar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdvGallemarЧто за монитор?
программа такая, самописная, которая мониторит состояние конкретных процессов.
Да есть и не самописная, но она не делает то,что я хочу
...
Рейтинг: 0 / 0
Запрет на запуск двух программ одним пользователем
    #39350414
Фотография Di_LIne
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GallemarЫ-ы-ы
В чем гуано-то? Новичка любой обидеть может,вот нет чтобы показать в чем неправ.
Каждый день по 500 раз бъёшься головом о притолоку и вкурить не магешь - чё, вкуды и пачём?
...
Рейтинг: 0 / 0
Запрет на запуск двух программ одним пользователем
    #39350417
Фотография Gallemar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Di_LIne,ага
...
Рейтинг: 0 / 0
Запрет на запуск двух программ одним пользователем
    #39350420
Фотография Di_LIne
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Gallemar, навеяло - тынц
...
Рейтинг: 0 / 0
Запрет на запуск двух программ одним пользователем
    #39350546
Фотография Gallemar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Большая просьба - объясните что не так в коде. Альтернативный вариант невозможен,т.к. программа не моя и модернизировать я могу только базу.
...
Рейтинг: 0 / 0
Запрет на запуск двух программ одним пользователем
    #39350557
Фотография Di_LIne
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Gallemar объясните что не так в коде.
- Фсё! От сих и посисих.
Так уже ответили в тынц .
- Чего не понятно?
То, правильно спроектированная и грамотно реализованная система должна ИСКЛЮЧАТЬ любое "ручное" разблокирование аккаунтов, даже такому лосю лохастому как мну, видно из далека. :-)
Или ты думаешь на туевой хуче Инет-форумов одмины с сисопами и мордотрахтерами сидят и ручками разблокируют юзеров?
- Вывод?
Иди и учи матчасть.
Хотя бы тот же какой-нить древниеубогей ПыхПых-Пхорум, писанный для сирых узеров и убогих "двешков". :-)
...
Рейтинг: 0 / 0
Запрет на запуск двух программ одним пользователем
    #39350559
Фотография Gallemar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Di_LIne- Вывод?
Иди и учи матчасть.

Ничего ты не понял :) Как и другие.
...
Рейтинг: 0 / 0
Запрет на запуск двух программ одним пользователем
    #39350561
Фотография Di_LIne
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GallemarНичего ты не понял :) Как и другие.
- Да-да, один ты у нас такой задвинутый разраб... :-)))

С такими картинками, как ты запостил, у меня был бы уволен "здесь и чичас" с начетом на ЗП. :-)
...
Рейтинг: 0 / 0
Запрет на запуск двух программ одним пользователем
    #39350562
Фотография Gallemar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Di_LIne,с которой, с первой или второй?
...
Рейтинг: 0 / 0
Запрет на запуск двух программ одним пользователем
    #39350564
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Gallemar,

не должен никакой человек сидеть и карпеть над твоей системой следя не завис ли там какой-нибудь пользователь.
Система должна облегчать пользователям жизнь, а у тебя она получается её усложняет как минимум товарищу надзорному.
...
Рейтинг: 0 / 0
Запрет на запуск двух программ одним пользователем
    #39350566
Фотография Di_LIne
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GallemarDi_LIne,с которой, с первой или второй?
- Со всеми тремя!
Хотя и первой, в двумя IF и тремя ELSE , гордо названной "программным кодом", достаточно. :-))))
...
Рейтинг: 0 / 0
Запрет на запуск двух программ одним пользователем
    #39350567
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Gallemar,

для начала подготовь товарища надсмотрщика к тому, что юзеры будут кидать в него тапки, каждый раз когда не смогут подрубиться к системе. Когда товарищу надсмотрщику это надоест, он придёт забрасывать тапками тебя.
...
Рейтинг: 0 / 0
Запрет на запуск двух программ одним пользователем
    #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
Запрет на запуск двух программ одним пользователем
    #39351771
Ivan_Pisarevsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GallemarПожалуйста оцените реализацию запрета на запуск двух программ одним пользователем.Задачу можно переформулировать: "запуск той же программы под тем же юзером блокирует (выкидывает из программы, блокирует окно программы, переводит в режим ридонли и.т.п) работу предыдущей сессии". масса вопросов про перезапуск и кипалив отпадает "бай дезайн".
...
Рейтинг: 0 / 0
51 сообщений из 51, показаны все 3 страниц
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Запрет на запуск двух программ одним пользователем
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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