NAV4U (онлайн-журнал) - Blog Archive - Контроль чисельності користувачів

Контроль чисельності користувачів

Як відомо, одночасно в Navision може працювати обмежена кількість користувачів. Максимальна кількість таких користувачів обмежується ліцензією користувача. Звичайно, це обмеження може бути переглянуто в будь-який момент шляхом купівлі не вистачає кількості. Але також відомо, що кожна додаткова сесія коштує грошей. Тому більшість компаній, у яких встановлено Navision, рано чи пізно замислюються над проблемою контролю кількості одночасних користувачів системи.

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

За всієї очевидності проблеми розробники не передбачили жодної можливості такого контролю. І якщо всі сесії зайняті, то увійти до системи не зможе навіть її адміністратор, хоч як це парадоксально звучить. Вимкнути сесію користувача бази Native неможливо штатними засобами. Для бази SQL ця можливість присутня, як штатна можливість MS SQL Server. Проте спосіб відключення користувачів вручну теж далеко не оптимальним. Логічним продовженням всього вище сказаного є функціонал, який відключав «сплячих» користувачів автоматично.

За час роботи з Navision зустрів кілька розв'язків цієї проблеми. Два найбільш гідні, зана мою думку, наведу нижче. Сподіваюся, вони допоможуть вам.

1. Спосіб відключення сплячих користувачів для SQL:

select master..sysprocesses.spid, master..sysprocesses.program_name, master..sysprocesses.status,

inner join master..sysdatabases d on master..sysprocesses.db >

where d.Name=@db_Name and master..sysprocesses.status='sleeping'

and charindex(@prog_name,ltrim(master..sysprocesses.program_name) ) > 0

and datediff(n,master..sysprocesses.last_batch, getdate()) > @timer_min

2. Спосіб відключення сплячих користувачів для Native та SQL за допомогою Navision Application Server.

Порівняно з попереднім, має плюси: він використовує стандартні можливості Navision і підходить для обох баз.

онлайн-журнал

Даний функціонал включає налаштувальні таблиці і кодеюніт, який і робить всю «брудну» роботу і може бути запущений як вручну, так і за допомогою NAS. Оскільки одна сесія NAS завжди входить до ліцензії, то скориставшись нею, ми зможемо налаштувати сервіс, який і відключатиме користувачів без нашої участі. Крім цього, цей функціонал вміє контролювати і кількість запущених сесій під одним логіном. А якщо не багато його доопрацювати, то можна отримати механізм винятків для обраних користувачів, таких як директор або адміністратор. Оригінальний опис даного методу та відповідні об'єкти можна знайти тут.

Коментарів: 1

Залишіть свій відгук!

Копіювання та передрук матеріалів лише за погодженням з редакцією.