22.11.2006, 09:49 | #1 |
Злыдни
|
Номер сеанса активного пользователя
Возвращаясь к вопросу о отображении активных пользователей:
Если номер сеесии активного пользователя превысит расчетное maxSession в классе Info::licensedUsersTotal(), то такой пользователь не отобразится в форме управления. Можно, конечно, везде в присвоениях превратить maxSessions = Info::licensedUsersTotal() в maxSessions = Info::licensedUsersTotal() * 2 (см. методы в классе SysUserOnline). Выяснил, при каких условиях номер активной сессии может превысить лицензионное количество: если на работающем приложении подвисли сессии (неубиваемые), остановили сервер AOS и не удалили файл axdat.udb, то присвоение номеров сессий при входе идет не с 1, а по другому принципу. Может быть есть более правильное решение для отображения активных сессий за пределами лицензионного соглашения?
__________________
люди...считают, что если техника не ломается, то ее не нужно ремонтировать. Инженеры считают, что если она не ломается, то нуждается в совершенствовании. |
|
22.11.2006, 13:46 | #2 |
Участник
|
Цитата:
Я понимаю, что вы предприняли попытку объясниться. Но очень боюсь, что обсуждение зайдет за границу допустимого. |
|
22.11.2006, 14:24 | #3 |
Злыдни
|
В том то и дело, что лицензия не нарушается. Больше, чем доступно по лицензии, пользователей в системе нет. Profiler количество отображает корректно, а вот в форме активных пользователей пользователя с кодом сеанса за допустимым диапазоном не вижу. Вот и возник вопрос
__________________
люди...считают, что если техника не ломается, то ее не нужно ремонтировать. Инженеры считают, что если она не ломается, то нуждается в совершенствовании. |
|
22.11.2006, 14:32 | #4 |
Участник
|
Цитата:
У него есть метод maxSessionId, а также numSession. Это вы, скорее всего, уже знаете. Зайти за пределы этого диапазона, если сделать цикл от 0 до 65535 и для каждого числа создавать new xSession(i) и проверять эту сессию методами clientKind или подобными... Это долго. Но другого способа я не знаю. |
|