Лицензионная система Cache' 5 Документ пользователя
Источник информации - сообщение в конференции Cache.ru В Cache 5 была пересмотрена лицензионная система. Одна из основных целей - сделать управление лицензией более очевидным, чем в более ранних версиях. Как работает регистрация (login) Мы надеемся, что большинство приложений будет переходить на идентификацию своих пользователей по именам. Это более правильно, т.к. позволяет снять проблемы, связанные с использованием Id пользователя по умолчанию, базирующегося на IP адресе клиента, Id CSP сессии или другого подключения, производным которого является Id пользователя. Например, когда используется firewall или программное обеспечение терминального сервера, мы не можем дифференцировать подключающихся пользователей, и поэтому мы вынуждены прибегать к правилу перехода после 12 соединений. При использовании одним и тем же клиентом смешанного подключения (например, CSP и Cache Direct) также невозможно корректно подсчитать пользователей, используя метод автоматического создания Id. Эти проблемы исчезают, если идентификатором лицензии служит имя пользователя. Мы надеемся, что важность правильной идентификации пользователей воплотится в выполнение новых требований проверки доступа. Использование личности пользователя для проверки соответствия лицензии - это естественный выход в этой ситуации. Существует два способа регистрации лицензии: автоматический и явный. Автоматический режим установлен по умолчанию. Система пытается идентифицировать IP адрес клиента системы и использует его в качестве Id пользователя лицензии. Это работает, если клиент подключается через IP непосредственно к серверу. Это не работает, если между клиентом и сервером находится firewall, вследствие чего все клиенты имеют один и тот же адрес. В случае использования терминального сервера с telnet протоколом автоматический режим не может различать пользователей, т.к. все порты терминального сервера видны в системе под одним и тем же IP адресом. Поскольку все подключения порождены c одним адресом, все они будут иметь один и тот же Id пользователя. Если ваши пользователи подключаются через firewall или вы используете telnet для терминальных серверов, нужно использовать явную регистрацию. Если IP не используется как сетевой транспорт, IP адрес невозможно использовать в качестве Id пользователя. В этих случаях система использует другие ресурсы в качестве Id пользователя лицензии. Когда соединения порождаются от терминального сервера с использованием LAT протокола, для формирования Id пользователя берется комбинация имени терминального сервера и имени порта ($ZI). Это означает, что пользователю, открывшему несколько сессий через порт терминального сервера, выделяется одна лицензионная единица. Еще есть особые случаи - это batch процессы, запускаемые демоном "at" в Unix или из batch очереди в VMS. Такие процессы не разделяют лицензионную единицу, т. к. они не ассоциированы с пользователем. Для этих процессов в качестве идентификатора лицензии используется Id процесса. Если в вашем случае режим автоматической регистрации не работает, нужно использовать явную регистрацию. Важно помнить также, что даже в автоматическом режиме всегда можно использовать для лицензирования явную идентификацию пользователя, вызвав $System.License.Login(UserId). Когда выбран режим явной регистрации, автоматическое обнаружение Id пользователя не производится. Приложение должно явно вызвать $System.License.Login(UserId) API для поставки Id пользователя лицензии и приобретения лицензии. Явная регистрация возможна при помощи вызова функции $System.License.DeferUserIdentification (switch). Вызвать можно из программы ^ZSTU в startup системы. Если флаг =1, выделение лицензии при регистрации откладывается, т.е. должна быть выполнена явная регистрация. Если флаг =0, выделение лицензии происходит автоматически при запуске процесса. Когда регистрация отложена, клиент должен вызвать API регистрации лицензии немедленно. Процесс, не выполнивший регистрацию лицензии, будет приостанавливаться на 15 секунд после каждых 1000 строк кода Cache Object Script. CSP-соединения - особый случай. В CSP-приложениях строго рекомендуется использовать эквивалент сессии, чтобы идентифицировать пользователя для лицензирования (%CSP.Session.Login). Если нет, то в качестве Id пользователя лицензии используется Id CSP-сессии. Каждая сессия поглощает одну лицензионную единицу. Для многих ситуаций это не подходит. Например, пользователь может иметь несколько окон браузера, открытых одновременно. Кроме того, пользователь может подключиться многими способами (CSP, окно терминала, Cache Direct-соединение клиента из Visual Basic). В этом случае для выполнения явной регистрации лицензии для сессии можно использовать метод %CSP.Session.Login(UserId,Password,[0 or 1]) класса %CSP.Session. Процессы, запущенные из ^ZSTU, - еще один особый случай. Такой процесс не имеет родительского процесса. Следовательно, регистрация выполняется для Id пользователя “User Startup” перед вызовом ^ZSTU. Процессы, запущенные командой job из ^ZSTU, будут иметь этот Id пользователя. Если хотите, вы можете вызвать из ^ZSTU для изменения Id пользователя $System.License.Login(UserId). Эта процедура означает, что из ^ZSTU может стартовать 11 фоновых процессов, и займет это одну лицензию. Если, в соответствии с терминами и условиями лицензирования, эти процессы должны иметь отдельные лицензии (например, если они управляют частью лабораторного оборудования, что требует отдельной лицензии), то вы должны вызвать $System.License.Login(UserId), чтобы получить лицензию для соответствующего Id пользователя. Итак, важно понимать, что в Cache 5 мы больше не пытаемся различить фоновые процессы и посчитать их отдельно. Если пользовательский процесс запускает фоновый процесс (командой job), то дочерний процесс считается также как и любой другой в рамках ограничения до 12 процессов на лицензионный слот пользователя. Как конфигурировать лицензирование в Cache 5 Разделение мультисерверных ключей требует координации между конфигурациями, использующими ключ. В Cache 5 появился менеджер лицензии, который заменил сервер лицензии V4.1 и более ранних версий Cache. При разделении мультисерверных ключей менеджер лицензии должен быть сконфигурирован. Менеджер лицензии координирует представления использования лицензии, поддерживаемые локально в каждой конфигурации. Один сервер лицензии может обслуживать несколько конфигураций. Менеджер лицензии - это не процесс Cache. Это предотвращает проблемы, с которыми можно было столкнуться раньше, когда сервер лицензии мог стать недоступным при закрытии конфигурации или приостановленным при выполнении backup и т.п. Менеджер лицензии взаимодействует с конфигурациями посредством UDP сообщений на настраиваемом порту. Порт по умолчанию - 4001. Менеджеры лицензии определяются в Cache Configuration Manager в разделе License вкладки Advanced. Вы можете сконфигурировать излишние менеджеры лицензии. Это существенно менее критично, чем в предыдущих версиях Cache, по двум причинам. Во-первых, конфигурация может продолжать работать с подключающимися и отключающимися пользователями в отсутствии менеджера лицензии. Во-вторых, менеджер лицензии будет продолжать работать после закрытия конфигурации, если он обслуживает более чем одну конфигурацию. Конфигурируя менеджер лицензии, вы должны решить, на каком сервере или серверах вы хотите размещать менеджер лицензии. Можно сконфигурировать, чтобы он запускался на любом количестве серверов, но более трех - это уже избыточно. Поскольку менеджер лицензии стартует при запуске конфигурации, нужно сконфигурировать, чтобы он запускался в системах, где предполагается запуск Cache конфигурации, чтобы они стартовали последовательно. При конфигурировании избыточных менеджеров лицензии не требуется использовать разные номера портов, как это было необходимо в случае с серверами лицензии ранее. Обновление лицензии Имеется несколько ограничений. Автоматическая активация нового ключа не производится, если вы меняете тип лицензии с Power Unit на любой другой тип. Это редкий случай. Предполагается, что в основном обновление лицензии производится для увеличения количества лицензионных единиц или для перехода с односерверной лицензии на мультисерверную. Другое ограничение состоит в том, что обновление лицензии поглощает gmheap память. Если в gmheap памяти нет места, количество входов в таблицу лицензии не может быть увеличено. Есть также лимит на объем gmheap памяти (10 страниц), который может занять обновление лицензии. Этот лимит позволяет активировать максимум немногим более 7000 лицензионных единиц. Это не общее число, а приращение, т. е. если у вас имеется ключ на 30000 конкурирующих пользователей, вы можете увеличить его до немногим более чем 307000 лицензионных единиц без перезапуска конфигурации. Если вы обновляете лицензию, приобретая более 7000 дополнительных лицензионных единиц, приблизительно 7000 дополнительных лицензионных единиц будет активировано, а для активации остальных будет необходим рестарт. Как узнать, сколько лицензий занято и кем Для отображения информации или вывода базы данных лицензии в файл можно вызывать следующие методы класса: $System.License.CKEY отображает ключ. Эта подпрограмма вызывается из программы ^CKEY, которая поддерживается для совместимости. $System.License.ShowCounts подсчитывает использование лицензии, отслеженное в shared memory локальной системы. $System.License.ShowManager отображает адрес и порт активного менеджера лицензии. Подпрограммы, перечисленные ниже, выводят содержимое таблиц лицензии, размещенных локально в configuration-shared memory. В общем случае они идентифицируют клиента. $System.License.DumpLocalAll() выводит все входы локальной таблицы лицензий в файл all.dmp в текущей директории. $System.License.DumpLocalInUse() выводит все используемые входы локальной таблицы лицензии в файл inuse.dmp в текущей директории. $System.License.DumpLocalPID выводит все используемые PID входы локальной таблицы лицензии в файл piduse.dmp в текущей директории. Следующие подпрограммы выводят содержимое таблиц лицензии, поддерживаемых менеджером лицензии. Выходные файлы располагаются в указанной директории сервера, на котором запущен менеджер лицензии. $System.License.ShowSummary отображает итоговую информацию о лицензии в менеджере лицензии. Секция “distributed license use” содержит информацию об использовании лицензии для конфигурации Cache, в которой запущена программа. $System.License.DumpServer выводит базу данных менеджера лицензии, относящуюся к серверу, на котором вы запускаете эту функцию. Файл будет размещен на сервере, на котором запущен менеджер лицензии. $System.License.DumpServers выводит базу данных менеджера лицензии для всех известных серверов. Файл будет размещен на сервере, на котором запущен менеджер лицензии. $System.License.DumpKey выводит ключ, используемый данной конфигурацией и конфигурациями, которые разделяют его. Файл будет размещен на сервере, на котором запущен менеджер лицензии. $System.License.DumpKeys выводит все ключи, показывая конфигурации и клиентов, использующих их. Файл будет размещен на сервере, на котором запущен менеджер лицензии. Новости О компании Продукты Технологии Партнеры Проекты Обучение Пресса Контакты Цены Содержание © Copyright 2021-2022 |