Имя: Пароль:
1C
1С v8
"В сетевом ключе защиты программы не обнаружено свободной лицензии" а они есть
0 Формат
 
03.09.13
09:28
Стало появляться такое сообщение.
Есть два ключа по 20 лицензий, стоят на разных машинах. В терминале, где пользователи запускают 1С, в нетхасп прописаны IP машин на которых стоят эти два ключа. Работают несколько пользователей (<10) остальным выходит сообщение о нехватки лицензий.
Смотрю монитор, он показывает на этих двух машинах что 20 из 20 лицензий занято, причем, большая часть "подключений к ключу" имеет timeout равным 0. Складывается такое ощущение что лицензии когда то использовались, но со временем не освободились.

Как можно побороть эту проблемку?  Первое что пришло в голову - это периодически делать рестарт службы хаспа лицензий, но может есть более кошерный метод?
1 Maxus43
 
03.09.13
09:30
перезапусти менеджер лицензий, бывает зависают неактивные
2 Формат
 
03.09.13
09:31
(1) так это да, сделал, все стало нормально. Но как на будущее от этого избавится.
3 Maxus43
 
03.09.13
09:33
(2) батник на перезапуск менеджера повесь. не постоянно они зависают, просто бывает. ночью перезапускай и норм
4 Кай066
 
03.09.13
09:41
(2) напиши скрипт, который будет "перезапускать" LM каждые 30 минут
5 Кай066
 
03.09.13
09:43
Option Explicit
On Error Resume Next
Dim objNetwork
Dim strComputerName,WshShell
Dim body,ts,fs,fsget,KeyWork
    Set WshShell = WScript.CreateObject("WScript.Shell")
    RetCode = WshShell.Run("taskkill /F /IM getinfo.exe", 0, True)
    RetCode = WshShell.Run("taskkill /F /IM aksmon.exe", 0, True)
    Wscript.Sleep 2000
    RetCode = WshShell.Run("GetInfo.exe", 0, True)
    Set objNetwork = CreateObject("WScript.Network")
    strComputerName = Ucase(objNetwork.ComputerName)
    Set fs = CreateObject("Scripting.FileSystemObject")
    body = ""
    KeyWork = 0
    Set ts = fs.OpenTextFile("Out.txt",1)
        While Not ts.AtEndOfStream
            body = Ucase(ts.readline())
            If Instr(1,body,strComputerName)>0 then
                KeyWork = 1
            End if
        Wend
    If KeyWork=0 Then
        RetCode = WshShell.Run("net stop ""HASP Loader""", 0, True)
        Wscript.Sleep 2000
        RetCode = WshShell.Run("net start ""HASP Loader""", 0, True)
    End if
6 Bober
 
03.09.13
09:46
(0) лицензии терминальных пользователей зависит навсегда, помогает перезапуск менеджера.
7 Maxus43
 
03.09.13
09:47
(5) вот непонимаю я вас, скриптописателей. Таск киллы ещё...

батник из 2-х строк
net stop службаменеджера
net start службаменеджера
8 Ranger_83
 
03.09.13
09:47
(0) предвестник того,что скоро погорит ключ
Глупец, лишенный способности посмеяться над собой вместе с другими, не сможет долго выносить программирование. Фредерик Брукс-младший