powered by simpleCommunicator - 2.0.38     © 2025 Programmizd 02
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Сессии, кукесы и лицензии
18 сообщений из 18, страница 1 из 1
Сессии, кукесы и лицензии
    #34368049
Dmitry V. Liseev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hi,All!

Экспериментировал тут с CSP. Возникли вопросы:

Кто создает %session и на основании чего?
При попадании в метод OnPage она уже существует.
Подозреваю, что если с клиента кукес не приплыл,
то создается новая сессия. Если приплыл, то на основании
кукеса происходит поиск в базе данных существующей
сессии. Можно ли этим процессом управлять? Например,
я не хочу, чтобы автоматом создавались сессии. Иначе, рано
или поздно она выдает ошибку, что не может выделить лицензии
и привет. У меня в запросе присутствует собственный
идентификатор сессии. Как управлять созданием сессий
вручную (отключить стандартный механизм)?

Каков вообще механизм лицензирования в CSP?

Как происходит выбор процессов для обработки запросов
в сессиях? В каких случаях используется уже запущенный
процесс, а в каких случаях стартуется новый? Как сделать
так, чтобы было 100 сессий и их обслуживали 10 процессов?
Сколько лицензий это потребует? Что будет, если по одной
из сессий приходит запрос, а эти 10 процессов уже заняты
обслуживанием запросов по другим сессиям?

Можно ли сделать постоянное подключение по HTTP 1.1?
Ибо каждый раз подключаться, а потом рвать соединение
- ужасно медленно. Более 20 запросов в секунду обработать
ну никак не получается. Можно ли как-то обойти апач (напрямую
к Cache подключаться)? Ибо есть подозрение, что основная
часть тормозов по вине апача, т.к. нет смысла гонять пакеты
через него.
____________________________
С уважением, Лисеев Дмитрий.
http://private.peterlink.ru/dimik/
PGP key fingerprint: 09 28 74 28 6C 39 62 29 2E CB 95 03 4F 04 33 73


Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Сессии, кукесы и лицензии
    #34368646
Sergei Obrastsov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dmitry V. Liseev
Более 20 запросов в секунду обработать
ну никак не получается. Можно ли как-то обойти апач (напрямую
к Cache подключаться)? Ибо есть подозрение, что основная
часть тормозов по вине апача, т.к. нет смысла гонять пакеты
через него.

А это обязательно через CSP делать?
...
Рейтинг: 0 / 0
Сессии, кукесы и лицензии
    #34368660
Ptn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Объект %session создается автоматически csp демоном.

Кукисы можно отключить в редакторе конфигурации->CSP->Приложения->Использовать Cookies для сеанса.

Количество процессов обслуживающий csp запросы не обязательно совпадает с количеством подключений. IMXO

По поводу использования лицензий в данном контексте (ссылку не нашел дам текст)
Bill McCormick
Механизм работы лицензий с CSP

Недавно в новостной конференции InterSystems обсуждались проблемы с
лицензионной политикой при использовании технологии CSP (Cache Server Pages).
После длительных дебатов, вопросов и ответов очень интересное письмо написал
Бил Маккормик (Bill McCormick, Web/Objects Support Manager, InterSystems
Corporation), в котором подытожил все проблемы. Приводим перевод в некотором
сокращении, думаем, что рекомендации Била будут полезны, так как в документации
пока на этот счет очень мало советов.

Начнем с начала.

Лицензирование CSP отличается от лицензирования других подключений к Cache.
Если мы устанавливаем соединение с ODBC, JDBC, Java, ActiveX, Telnet, любой тип
соединения, мы получаем IP адрес клиента, передаем его серверу и связываем его
с лицензией.

Мы позволяем организовать до 12 таких соединений на одного клиента. Все эти
соединения указанных типов используют только ОДНУ лицензию (одно лицензионное
число). Вплоть до 5 версии Cache механизм CSP работал совсем по другим
правилам. CSP не разделял лицензию с другими типами соединений и не мог
использовать одну и ту же лицензию с несколькими сессиями CSP.
%CSP.Session.Login() все это изменил. Вы можете теперь связать ВСЕ типы
соединений Cache от одного клиента под одну единицу лицензии при условии
использования Вами нескольких программных интерфейсов.

Это общие сведения, а теперь рассмотрим конкретно CSP.
Лицензия CSP связана с браузером на машине клиента в течение действия Сессии.
Когда бы не создавалась новая Сессия, сразу отсчитывается одно лицензионное
число и закрепляется за новой Сессией. Когда Сессия заканчивается по времени
ожидания или закрывается, механизм CSP сообщает Менеджеру Лицензий, что одна
лицензия должна быть освобождена, основываясь на правилах перида задержки
(grace period). Об этом немного позже.

То, что требуется знать о Сессиях. Сессии поддерживаются через куки (cookies)
по умолчанию или через "tokens", когда куки выключены. Каждый раз, когда
браузер устанавливает соединение без передачи этих двух параметров, будет
отсчитана новая лицензия, независимо от того, что пользователь уже был
зарегистрирован в другом окне.

Далее общие соображения, как избежать этого (потери нескольких лицензий на
одном пользователе).

Фреймы - если вы загрузили страницу HTML с frameset, в котором имеется 3
targets, являющихся страницами CSP - все эти окна (target windows) заберут
по отдельной лицензии. Все они будут вызваны поочередно и куки будут связаны с
последним вызовом. Но первые два окна тоже захватят 2 лицензионых числа,
которые не будут использоваться, а будут сиротливо ожидать, когда истечет
установленное время ожидания для их Сессии. Ответ для такого случая - делайте
frameset только в странице CSP... или используйте первую страницу на входе в
приложение без фреймов.
Рассуждения о браузерах. Netscape/Mozilla формируют единое пространство для
куки (for cookies), независимо от того, как открывался браузер. Это означает,
что на ПК с таким браузером Вы не сможете открыть более одной Сессии - и это
хорошо. Если вы используете команду js open() или CTRL-N, куки будут переданы
в порожденное окно (child window). Если Вы откроете новое окно с иконки
Internet Explorer, в этом случае куки не будут переданы (не будут
использоваться из уже открытого окна) и при запуске новой страницы CSP будет
забрана одна Лицензия..

Порт 1972 - Не используйте Studio "View Web Page" (встроенный Web-сервер)!!!
Суперсервер не работает с правилами, установленными для лицензий CSP. Каждый
запрос к странице CSP будет забирать лицензию. Не используйте этот порт или
исправьте проект, чтобы использовать действительный Web сервер, но не порт 1972.
Начиная с версии Cache 5.0.1 это является основным требованием.
Еще несколько общих пожеланий.

Учите пользователей - Не закрывайте окно браузера - вы потеряете Сессию.
Научите пользователей вместо зарытия окна нажимать клавишу выхода, которая
вызовет функцию закрытия Сессии %Session.End=1.

(прим.перев. - в своем приложении мы кроме кнопки выхода из приложения на
всякий случай повесили функцию закрытия Сессии и на событие "закрытие окна" -
некоторых пользователей учить - себе дороже...)

ПОЛЬЗУЙТЕСЬ %session.Login()!!!!!

В своем приложении заставляйте пользователя регистрироваться. И свяжите свою
регистрацию с этим функционалом. ВСЕ ваши проблемы уйдут прочь.
Пользователь закрыл окно? Ну и что? Когда он снова будет регистрироваться,
мы свяжем Сессию с этой же Лицензией.
Пользователь запустил приложение еще раз в другом окне? Прекрасно, мы объединим
эти соединения под одну Лицензию.
Пользователи используют сразу Java и CSP и ODBC? Отлично, мы объединим все эти
коннекты...

Забыл совсем про период задержки (grace period) порассуждать....
В Менеджере лицензий мы запоминаем время старта Сессии. Когда механизм Сессий
сообщает, что сессия закрыта, происходят некоторые дополнительные проверки в
менеджере Лицензий...
Правило такое: Лицензия не может быть освобождена (счетчик пользователей
уменьшен на единицу) ранее, чем через 5 минут после закрытия Сессии. И также
Лицензия не может быть освобождена ранее, чем через 10 минут после создания
Сессии.

Простая таблица: в первой колонке, сколько времени (минуты)
Сессия проработала, во второй - время, на которое была захвачена Лицензия.
2 10
4 10
5 10
7 12
14 19
Это сделано для предотвращения возможности использовать CSP с малым количеством
лицензий, как у его прародителя Weblink.

И еще, я предлагаю устанавливать невероятно короткий период закрытия сессии по
умолчанию - 30 секунд или менее. А чтобы предотвратить потерю данных при
использовании гиперсобытий, использовать на странице регистрации пользователя
%session.Login() и переназначение AppTimeout в значение, необходимое для работы
конкретной задачи или конкретного пользователя.

--
Bill McCormick
Web/Objects Support Manager
InterSystems Corporation


---

А в целом присоденияюсь к предыдущему оратору - такое "ТЗ" обязательно делать через CSP ?
...
Рейтинг: 0 / 0
Сессии, кукесы и лицензии
    #34369871
Dmitry V. Liseev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hi!

Sergei Obrastsov
А это обязательно через CSP делать?
Задача простая: с клиента отправить на сервер пакет данных достаточно сложной
структуры (допустим, XML). На сервере пакет надо отпарсить, выполнить
нужные операции, сформировать для клиента ответ достаточно сложной
структуры (пусть тоже XML) и отправить клиенту.

Клиентом является не браузер. Обычный толстый клиент, написанный на ЯВУ.

Через что делать? В принципе, на Cache можно написать свой TCP сервер.
Это именно то, что надо для данной задачи. Пропадает необходимость гонять пакеты
поверх протокола HTTP и прочие накладные расходы, связанные с Apache.

Проблема в том, что на каждое такое соединение Cache забирает отдельную
лицензию. А с каждой рабочей станции может быть установлено в среднем
5 независимых соединений (у юзера несколько приложений, причем многопоточных).
Хотелось бы, чтобы лицензию забирала рабочая станция, если она установила
хотя-бы одно соединение, и эта лицензия могла использоваться разумным
числом соединений с нее (примерно до 10).
____________________________
С уважением, Лисеев Дмитрий.
http://private.peterlink.ru/dimik/
PGP key fingerprint: 09 28 74 28 6C 39 62 29 2E CB 95 03 4F 04 33 73

Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Сессии, кукесы и лицензии
    #34372161
Ptn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dmitry V. Liseev]
>>Через что делать? В принципе, на Cache можно написать свой TCP сервер.
Это именно то, что надо для данной задачи. Пропадает необходимость гонять пакеты
поверх протокола HTTP и прочие накладные расходы, связанные с Apache.

Можно - с лицензией придётся разбираться самому

>>Проблема в том, что на каждое такое соединение Cache забирает отдельную
лицензию. А с каждой рабочей станции может быть установлено в среднем
5 независимых соединений (у юзера несколько приложений, причем многопоточных).
Хотелось бы, чтобы лицензию забирала рабочая станция, если она установила
хотя-бы одно соединение, и эта лицензия могла использоваться разумным
числом соединений с нее (примерно до 10).
____________________________

в тексте, что я привел, да и в редакторе кофигурации разрешается до 12-ти соединений для одной лицензии.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
sample.csp
Привязка лицензии к IP клиентской машины.
---
<server>
d %session.Login($zu( 67 , 15 ,$j),$zu( 67 , 15 ,$j), 1 )
</server>
<html>
</html>

...
Рейтинг: 0 / 0
Сессии, кукесы и лицензии
    #34372168
Ptn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кстати для собственного TCP сервера....

достаточно форкать JOB с прослушкой порта для конкретного клиента - в нем логиниться через команду выше - и обслуживать уже по тому протоколу какой хочеться.

По крайней мере мы так привязываем фоновые задачи к клиенту ... вроде работает. Попробуйте.
...
Рейтинг: 0 / 0
Сессии, кукесы и лицензии
    #34442753
blockan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Скажите, а как будут потребляться лицензии при запросах одного сервера каше к другому посредством %Net.HttpRequest?

Я так понимаю, сессия каждый раз будет создаваться заново, каждый раз будет создаваться и разрываться соединение (которое держит лицензию еще 5-10 минут)

В результате лицензии каше будут съедены в момент?
И поможет ли в этом %session.Login ? ведь число соединений будет огромным?

Как можно победить пожирание лицензий в этом случае?
...
Рейтинг: 0 / 0
Сессии, кукесы и лицензии
    #34443189
kalin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>Это сделано для предотвращения возможности использовать CSP с малым количеством
>лицензий, как у его прародителя Weblink.

Данная технология поставляется с Cache. Попробуйте. Там на один коннект можно повесить немерянное количество соединений.
...
Рейтинг: 0 / 0
Сессии, кукесы и лицензии
    #34475173
Блок А.Н.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В моем случае оказалось достаточно закрывать сессию каждый раз после завершения запроса :-)
А это в программе иногда не делалось, почему и повисали лицензии.
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Сессии, кукесы и лицензии
    #35883144
kras_sfu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть ли минусы, а может и плюсы, при использовании только сессий, как переменные для передачи параметров со страницы на страницу? :)
...
Рейтинг: 0 / 0
Сессии, кукесы и лицензии
    #35884695
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Минус (а может и плюс) в том, что сессия помрет по таймауту... Это нужно учитывать и соответственно реагировать дабы не пугать пользователей сообщениями об ошибках.
----------
Cache for Windows (x86-32) 2007.1.3 (Build 607) Wed Oct 17 2007 02:12:09 EDT
...
Рейтинг: 0 / 0
Сессии, кукесы и лицензии
    #35904734
Блок А.Н.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Наши таскают через сессию довольно большие куски данных, пачки вложенных друг в друга объектов, простых переменных не хватает :-)
...
Рейтинг: 0 / 0
Сессии, кукесы и лицензии
    #36275297
CacheLot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А сколько лицензий максимально можно обеспечить при покупке нового дистрибутива?
Или хотябы какого порядка эта величина?
П.С.
Если я правильно понял, то при подключении к сессии с очередного Ай-пи адреса выдиляется одна лицензия, то если с сайтом работают одновременно 100 или 1000 человек то нужно иметь и сервер на 100 и 1000 лицензий?..
...
Рейтинг: 0 / 0
Сессии, кукесы и лицензии
    #36275312
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CacheLot , при таком количестве пользователей имеет смысл докупить "прибамбаску" к своей версии, называется она типа "ВебЭдОн". После этого через Веб пользователи вообще не считаются и лицензии не жрут.
...
Рейтинг: 0 / 0
Сессии, кукесы и лицензии
    #36275468
VadimF
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Web AddOn - это опция, предназначенная для случаев, когда основная работа осуществляется идентифицируемыми пользователями, для которых покупаются пользовательские лицензии, и есть некая дополнительная функциональность, с которой работают не идентифицируемые пользователи через Web. Вот для них и нужен Web AddOn.

Если есть, например, публичный сайт в Интернет, то нужен другой тип лицензий RealTime.
Он для систем, с которыми работают большое количество не идентифицируемых пользователей.

Советую обсуждать этот вопрос с Вашим менеджером в InterSystems.
Мы заинтересованы в публичных Web-проектах и готовы предложить разные варианты лицензирования, удобные для Вашего проекта.

Вадим
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Сессии, кукесы и лицензии
    #38649365
ilson
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте, решил свежий ключ поставить и влезло это
ОШИБКА #5002: Ошибка: <ILLEGAL VALUE>zIsValidKey+8^%SYSTEM.License.1
Пробовал другие ключи, пробовал обновлять версию. На других серверах ключи устанавливаются.
Сейчас версия - 2014.1 (Build 511U).
Сталкивался кто-нибудь?
...
Рейтинг: 0 / 0
Сессии, кукесы и лицензии
    #38649377
Александр Коблов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ilson,

В релизе 2014.1 (2014.1.0.608) это должно быть исправлено (у вас FieldTest).
Ошибка появляется, когда в настройках локали стоит "Использовать форматы локали даты/времени/чисел для rusw:"

Если перезагрузите Caché ключ подхватится.
Попробуйте, может d $system.License.Upgrade() сработает.
...
Рейтинг: 0 / 0
Сессии, кукесы и лицензии
    #38649431
ilson
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Александр Коблов, большое спасибо, поменял переключатель "Используйте определяемые местом нахождения форматы даты/времени/чисел для rusw" c "да" на "нет", ключ прошел проверку.
...
Рейтинг: 0 / 0
18 сообщений из 18, страница 1 из 1
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Сессии, кукесы и лицензии
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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