Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / ZEN: <timer> - пожиратель лицензий? / 12 сообщений из 12, страница 1 из 1
22.12.2009, 07:25
    #36378860
kolesov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ZEN: <timer> - пожиратель лицензий?
Я правильно понимаю, что этот компонент, при использовании с параметром timeout меньше таймаута сессии csp вызовет бесконечный отъем лицензионного слота?
Есть ли стандартный способ борьбы? Что-то неохота писать самопальню службу, которая будет делать вид, что она - клиент каше и обрабатывать запросы со страниц реальных клиентов... Вроде и не трудно, но хочется максимального использования дефолта...
Можно ли как-то на странице получить idle браузера? Через него можно бы было переопределить этот хитрый компонент малой кровью ;)...
...
Рейтинг: 0 / 0
22.12.2009, 07:37
    #36378868
Блок А.Н.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ZEN: <timer> - пожиратель лицензий?
Пока живет клиент, он должен жрать соединение, если соединения не будет, то он отвалится.
С таймером или без.
Я так думаю.
...
Рейтинг: 0 / 0
22.12.2009, 08:12
    #36378884
kolesov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ZEN: <timer> - пожиратель лицензий?
Блок А.Н.,
Это-ж браузер... кто-ж его... ;)
Сессия живет тот период, когда браузер что-то просит у сервера плюс еще грэйс-период (чтобы клиенты ИС покупали лицензии).
Если в браузере открыта страничка с интерфейсом системы и юзер ничего в ней не делает эн минут, сессия прихлопывается....
Так вот <timer> как раз постоянно имитирует активность пользователя (хотя тот ушел на горшок, потом в магазин... или наоборот... и сегодня его уже не будет) а окно-то открытым осталось ;(((
... а в окне <timer>... чтоб ему...
...
Рейтинг: 0 / 0
22.12.2009, 14:10
    #36379911
Блок А.Н.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ZEN: <timer> - пожиратель лицензий?
Если у вас каждая страничка отдельно, в сессии не хранятся данные и не используете гиперевентов, можете делать
Код: plaintext
S %session.EndSession= 1 
,
она сразу закроется, про грэйс период не уверен, кажется даже его не будет (в разных версиях по разному).
Если лицензии будут вешаться на разных пользователей, попробуй группировать их через
d %session.Login(userforlogin,"",1), опять же не во всех версиях одинаково работает.
...
Рейтинг: 0 / 0
23.12.2009, 10:22
    #36381464
Блок А.Н.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ZEN: <timer> - пожиратель лицензий?
Как вариант, но сложнее уже - отслеживать на сервере активность пользователя, например наследовать все CSP от одного класса, прописать ему OnPreHTTP, куда прописать отметки об активности, сделать отдельный процесс слежения, если активности долго нет, то прибивать пользователя (как это делать - зависит от вашей системы).
...
Рейтинг: 0 / 0
24.12.2009, 09:20
    #36383700
kolesov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ZEN: <timer> - пожиратель лицензий?
Блок А.Н.,
авторесли активности долго нет

Вот тут и вопрос - как узнать время с того момента, как с данного компьютера (не айпи, а скорее из любого окна сессии) был осуществлен последний запрос на сервер...
...
Рейтинг: 0 / 0
24.12.2009, 10:11
    #36383782
Блок А.Н.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ZEN: <timer> - пожиратель лицензий?
Запросы то будут идти от timer, то есть саму сессию смотреть смысла нет.
Я предлагаю ставить временные метки от "нужных" страниц и процессов. В ZEN же можно сделать OnPreHTTP массово для многих страниц?
...
Рейтинг: 0 / 0
24.12.2009, 10:36
    #36383848
MaWr
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ZEN: <timer> - пожиратель лицензий?
kolesovБлок А.Н.,
авторесли активности долго нет

Вот тут и вопрос - как узнать время с того момента, как с данного компьютера (не айпи, а скорее из любого окна сессии) был осуществлен последний запрос на сервер...

Код: plaintext
1.
2.
3.
 S Ses=^%cspSession(SessionId)
 S ActTime=$lg(Ses, 4 )-$lg(Ses, 1 )
 S ActTime= (ActTime\ 86400 )_","_(ActTime# 86400 )

В ActTime будет время последней активности сессии с SessionId в формате $ZTS.
...
Рейтинг: 0 / 0
05.01.2010, 10:49
    #36397565
kolesov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ZEN: <timer> - пожиратель лицензий?
MaWrkolesovБлок А.Н.,
авторесли активности долго нет

Вот тут и вопрос - как узнать время с того момента, как с данного компьютера (не айпи, а скорее из любого окна сессии) был осуществлен последний запрос на сервер...

Код: plaintext
1.
2.
3.
 S Ses=^%cspSession(SessionId)
 S ActTime=$lg(Ses, 4 )-$lg(Ses, 1 )
 S ActTime= (ActTime\ 86400 )_","_(ActTime# 86400 )

В ActTime будет время последней активности сессии с SessionId в формате $ZTS.

Спасибо. Классно.

Осталась одна мелочь - как инициализировать вызов этого кода со стороны клиента так, чтобы сервер не успел сменить $lg(Ses,4)... он же насколько я понимаю - LastModified сессии ;)

Тут все-же, должны быть использованы средства клиента, имхо...
...
Рейтинг: 0 / 0
11.01.2010, 16:59
    #36403865
ZEN: <timer> - пожиратель лицензий?
kolesovЯ правильно понимаю, что этот компонент, при использовании с параметром timeout меньше таймаута сессии csp вызовет бесконечный отъем лицензионного слота?
Есть ли стандартный способ борьбы? Что-то неохота писать самопальню службу, которая будет делать вид, что она - клиент каше и обрабатывать запросы со страниц реальных клиентов... Вроде и не трудно, но хочется максимального использования дефолта...
Можно ли как-то на странице получить idle браузера? Через него можно бы было переопределить этот хитрый компонент малой кровью ;)...Вы можете пояснить, какая должна быть идеальная схема?
Что должно происходить, когда таймер срабатывает?

Скорее, не "пожиратель", а "удержатель за этим пользователем".

Grace period в последних версиях не возникает, когда в сессии было просмотрено 2 и более страницы.
...
Рейтинг: 0 / 0
12.01.2010, 06:03
    #36404507
kolesov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ZEN: <timer> - пожиратель лицензий?
Борис ЕгоровВы можете пояснить, какая должна быть идеальная схема?
Что должно происходить, когда таймер срабатывает?

Мне казалось, что логичным бы было добавить в cspxmlhttp.js такой код:

Код: plaintext
1.
	document.lastServerCall = new Date();
или
Код: plaintext
1.
	zenPage.lastServerCall = new Date();

Однако саппорт просветил, что есть методы onServerMethodCall,
onServerMethodReturn в которых я смогу все, что нужно, сделать. Спасибо.

Борис ЕгоровGrace period в последних версиях не возникает, когда в сессии было просмотрено 2 и более страницы.

Новость хорошая. Нужно подумать, как использовать.
...
Рейтинг: 0 / 0
12.01.2010, 15:24
    #36405519
ZEN: <timer> - пожиратель лицензий?
kolesov
Борис ЕгоровGrace period в последних версиях не возникает, когда в сессии было просмотрено 2 и более страницы.

Новость хорошая. Нужно подумать, как использовать.
На моих экспериментах, grace не возникал, когда время, за которое надо было посмотреть хотя бы две страницы, было не менее 3 секунд, что для большинства пользователей-людей, незаметно, т.к. сеанс больше времени занимает.
Такая проблема (все-таки возникающий grace) возник, когда использовались http-запросы, выполняемые клиентским приложением (они часто шли).




http://writeimagejournal.com - InterSystems Russia Technology Blog.

http://writeimagejournal.com/forum - InterSystems Russia Technology Community.
...
Рейтинг: 0 / 0
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / ZEN: <timer> - пожиратель лицензий? / 12 сообщений из 12, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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