Зависание лицензии

Добрый день.
Мы используем П.О. TicketSoft вместе с электронным ключем Guardant установленном на сервере. 
В последнее время наблюдаем такую проблему: При выходе клиентов из TicketSoft (обычный, плановый не аварийный выход) лицензии "зависают", т.е. если зайти в веб интерфейс сервера Guardant, то мы там будем видеть два активных сеанса с одного компьютера. И пока не перезапустишь службу, эти сеансы будут там висеть сколько угодно.
Собственно, как с этим бороться?

Re: Зависание лицензии

Здравствуйте.

Действительно, в технологии Guardant предусмотрен следующий вариант: если работа приложения была завершена некорректно(с точки зрения Guardant API), то лицензия, выделенная компьютеру, на 15 минут останется закрепленным за ним. С этого компьютера приложение попрежнему можно будет запускать, однако это уже не повлечет за собой изменения сетевого ресурса ключа.

Если же такое "зависание" длится более 15 минут, то с этим вопросом следует обратиться к разработчикам TicketSoft.

Re: Зависание лицензии

Доброго времени суток. В продолжении топика, опишу свою ситуацию, как и у многих, имеет место быть, проблемы с зависанием ПО, и "мертвой" сессии на сервере ключа, вариант с 15 минутами не совсем подходит, т.к. рабочее место пользователя, используется 24/7 (связанно с приемом звонков), за 15 минут можно пропустить не мало важных звонков. По Вашему мнению, будет ли корректным, написать bat-ник, добавить его на автоматический запуск, что повлечет перезапуск служб Guardant network service каждые 2 - 7 минуты?

И еще пару скринов:
http://i54.fastpic.ru/big/2013/0207/1c/1a151a661cd0cd46966bdaa756ebbc1c.png
http://i53.fastpic.ru/big/2013/0207/1e/298265792fe12a65935e43b86413341e.png

Re: Зависание лицензии

Здравствуйте.

aaamlin пишет:

По Вашему мнению, будет ли корректным, написать bat-ник, добавить его на автоматический запуск, что повлечет перезапуск служб Guardant network service каждые 2 - 7 минуты?

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

Верно ли то, что если весь сетевой ресурс используемого Вами ключа занят и одно или более приложений аварийно завершились, то по прошествии 15 минут после аварийного завершения весь сетевой ресурс ключа остается занят, и невозможно запустить еще одну копию защищенного приложения?
Если такой опыт не проводился, то нужно его выполнить, то есть:

1) Запустить максимально возможное количество приложений, чтобы занять весь сетевой ресурс ключа (в данном случае, судя по скриншотам, ресурс = 20 лицензий);
2) Аварийно завершить одну (или более) копию приложения;
3) Подождать не менее 15 минут и убедится, что лицензия зависла (значок выделенной лицензии стал серым);
4) Попробовать запустить одну копию приложения.

Запустится ли приложение в таком случае?

Re: Зависание лицензии

Здравствуйте.
Я непосредственно столкнулся с проблемой со стороны Заказчика.
Отвечаю на Ваши вопросы.
>Верно ли то, что если весь сетевой ресурс используемого Вами ключа занят и одно или более приложений аварийно >завершились, то по прошествии 15 минут после аварийного завершения весь сетевой ресурс ключа остается занят, и >невозможно запустить еще одну копию защищенного приложения?
Да, именно так. Этот факт подтверждает и выделенное время (временами более 3х часов) в столбце интервал.

Приложение в таком случае не запускается!
Почему это происходит?

Можно ли что-либо изменить в настройках для того, чтобы неиспользуемую лицензию сервер "отпускал" быстрее?

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

Что скажете об этом подходе? Есть ли альтернативные решения?
Заранее спасибо.

Re: Зависание лицензии

Здравствуйте.

apert пишет:

Да, именно так. Этот факт подтверждает и выделенное время (временами более 3х часов) в столбце интервал.
Приложение в таком случае не запускается!
Почему это происходит?

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

Антон Тихиенко пишет:

Если такой опыт не проводился, то нужно его выполнить, то есть:

1) Запустить максимально возможное количество приложений, чтобы занять весь сетевой ресурс ключа (в данном случае, судя по скриншотам, ресурс = 20 лицензий);
2) Аварийно завершить одну (или более) копию приложения;
3) Подождать не менее 15 минут и убедится, что лицензия зависла (значок выделенной лицензии стал серым);
4) Попробовать запустить одну копию приложения.

Запустится ли приложение в таком случае?

apert пишет:

Можно ли что-либо изменить в настройках для того, чтобы неиспользуемую лицензию сервер "отпускал" быстрее?

Нет, подобная возможность появилась только в серверах последних версий 6.хх.

apert пишет:

С помощью какой утилиты в терминальном режиме (через скрипт/или бат-файл) можно узнать число оставшихся свободными лицензий из пула лицензирования?
Мне в голову больше ничего не приходит, как шедулером вызывать скрипт который будет запускать искомую утилиту, парсить ее оутпут, и если лицензий в пуле больше не осталось, перезапускать службу.
Что скажете об этом подходе? Есть ли альтернативные решения?

Такой утилиты нет, однако, можно написать собственную утилиту, которая будет парсить данные web-монитора сервера, и таки образом получать информацию о текущем состоянии ключа.
Что же касается динамического рестарта сервера, то подобный способ уже оценивался ранее.

Антон Тихиенко пишет:

Здравствуйте.

aaamlin пишет:

По Вашему мнению, будет ли корректным, написать bat-ник, добавить его на автоматический запуск, что повлечет перезапуск служб Guardant network service каждые 2 - 7 минуты?

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

Re: Зависание лицензии

Антон, спасибо за Ваш ответ.
У меня появились дополнительные вопросы.
1. Работа ПО связана с круглосуточным обслуживанием клиентов, поэтому протестировать неработоспособность одно рабочего места крайне проблематично (разве что глубокой ночью).
Я запрошу разработчиков ПО сделать подобный тест на их тестовом стенде.

2. Что нужно для перехода сервера лицензирования на версию, где величина задержки "неактивности" лицензии (серая иконка) задается пользователем в более широких пределах? Разумным в данном контексте я считаю таймаут в 5-15сек перепроверка активности лицензий.
Насколько сильно изменился SDK интеграции для перехода на искомую версию 6.xx с той что используется в настоящий момент?
Можно ли просто перешить существующий ключ для этого?

3. >Такой утилиты нет, однако, можно написать собственную утилиту, которая будет парсить данные web-монитора сервера, и таки образом получать информацию о текущем состоянии ключа.
Вышлите пожалуйста в личку какой-то SDK по работе web-монитора. Сложно ничего не имея, что-то сделать.

Заранее премного благодарны.

Re: Зависание лицензии

Добрый день.

Прошу прощения за столь длительную задержку с ответом.

apert пишет:

2. Что нужно для перехода сервера лицензирования на версию, где величина задержки "неактивности" лицензии (серая иконка) задается пользователем в более широких пределах? Разумным в данном контексте я считаю таймаут в 5-15сек перепроверка активности лицензий.
Насколько сильно изменился SDK интеграции для перехода на искомую версию 6.xx с той что используется в настоящий момент?
Можно ли просто перешить существующий ключ для этого?

Перепрошивать ключ нет необходимости. Для того чтобы приложение могло работать с последней версией сервера его нужно перезащитить с использованием инструментария защиты (Guardant API и/или автозащита) из состава последней версии (6.2) комплекта разработчика Guardant.

Также хочу отметить то, что "традиционная" (для серверов версии ниже 6.хх) схема фиксации зависших лицензий в новом сервер полностью переработана, и теперь реализованы 2 модели аренды лицензий: фиксированная и плавающая.
Резервируемые (фиксированные) лицензии закрепляются за рабочей станцией постоянно, либо на заданное время. При первом удачном соединении с сервером клиент проходит процедуру регистрации, в ходе которой сервер назначает ему метки – уникальные идентификаторы процесса, получившего лицензию, а также рабочей станции, с которой пришел запрос, запоминает и удерживает за ним лицензию. В дальнейшем, резервируемую лицензию, ранее уже закрепленную за определенным компьютером, могут получить лишь те копии приложения, которые запускаются с данной рабочей станции.

Плавающая (или незакрепленная) лицензия не резервируется за клиентом. Такая лицензия выдается любому приложению на конкурентной основе. Данные о захвате плавающей лицензии не сохраняются после завершения сеанса, и в следующий раз ее может получить любой другой подходящий объект лицензирования. Системный администратор путем изменения настроек сервера Guardant Net может задавать число плавающих лицензий, выделяемых одной рабочей станции. Такие лицензии высвобождаются практически сразу же после завершения работы защищенного приложения (неважно нормально было остановлено приложение или аварийно, 15 минутной задержки для таких, зависших лицензий, больше нет).

Более подробно все принципы работы нового сервера и остальных утилит описаны в нашем руководстве по утилитам Guardant.

apert пишет:

3. >Такой утилиты нет, однако, можно написать собственную утилиту, которая будет парсить данные web-монитора сервера, и таки образом получать информацию о текущем состоянии ключа.
Вышлите пожалуйста в личку какой-то SDK по работе web-монитора. Сложно ничего не имея, что-то сделать.

Подобного SDK у нас нет, и обработка данных монитора производится стандартными средствами для http.

Re: Зависание лицензии

Антон Тихиенко пишет:

собственную утилиту

Здравствуйте Антон.
Написал свою утилиту, которая раз в минуту проверяет число свободных лицензий и если свободных больше нет, контролируемо перегружает службу ключа. Для админов ведет лог перегрузок и динамику  использования лицензий. Все замечательно работает.
Спасибо за подсказку.

Если кому интересно, могу поделиться. pertsev.alex [собачка] gmail.com