Acer
02-02-2010, 19:43
Доброго всем здоровья!
Есть терминальный сервер Win2k3 SP1 и кучка пользователей, работающих на нем в 1с 7.7...
Все бы ничего, но периодически пользователи или сами выходят некорректно или связь обрывается (для удаленных) и в итоге сессия остается открытой и сама не закрывается. При повторном подключении создается новая сессия (вместо подключения к старой), но - "каталог пользователя занят"...
Какие варианты решения можно предпринять:
1. ручками прибивать такие зависшие сессии. Чтобы особо не париться - сделал одному пользователю ярлык столе на запуск %SystemRoot%\system32\tsadmin.exe и объяснил как проверять - смотришь по таймеру простоя, пытаешься Remote Control. Если подключается - значит сессия нормальная, просто кто-то пошел курить, а если окошко или закрывается и пропадает или появляется смена статуса на "отключен" с ошибкой о невозможности подключения - значит молодец.
2. в конфигурации TS поставил закрывать отключенную сесиию через 5 минут, а простаивающую 2 часа - отключать. Подозреваю, что не очень хорошо, потому что 1с в этом случае закрывается некорректно (если, сессия осталась рабочей. а если у нее не поменялся статус с работающей на отключенную - все нормально).
3. на руборде нашел чудо-скрипт для запуска при подключении, который при повторном подключении пытается подключиться к уже активной сессии :). Этот вариант понравился больше всего, но возникла другая засада - у пользователей автоматом прописан запуск 1с при подключении к TS (чтобы не шалили) (для варианта Файл->Открыть->Проводник они не доросли :). А у многих пользователей есть необходимость работать одновременно в разных базах и с этим скриптом не получается запустить несколько подключений разом - при запуске тут же происходит подключение к предыдущему. Что делать, кроме как убрать 1с из запуска и ограничить перечень запускаемых приложений только этим 1с`ом?
PS. скрипт вот:
@echo off
set SessNum=-1
for /f "skip=1 tokens=3" %%i in ('qwinsta %UserName% ^| find /v ">"') do set SessNum=%%i
if %SessNum% EQU -1 (goto 1c)
tscon %SessNum%
logoff.exe
:1c
start c:\progra~1\1cv77\bin\1cv7.exe
Большое спасибо.
Есть терминальный сервер Win2k3 SP1 и кучка пользователей, работающих на нем в 1с 7.7...
Все бы ничего, но периодически пользователи или сами выходят некорректно или связь обрывается (для удаленных) и в итоге сессия остается открытой и сама не закрывается. При повторном подключении создается новая сессия (вместо подключения к старой), но - "каталог пользователя занят"...
Какие варианты решения можно предпринять:
1. ручками прибивать такие зависшие сессии. Чтобы особо не париться - сделал одному пользователю ярлык столе на запуск %SystemRoot%\system32\tsadmin.exe и объяснил как проверять - смотришь по таймеру простоя, пытаешься Remote Control. Если подключается - значит сессия нормальная, просто кто-то пошел курить, а если окошко или закрывается и пропадает или появляется смена статуса на "отключен" с ошибкой о невозможности подключения - значит молодец.
2. в конфигурации TS поставил закрывать отключенную сесиию через 5 минут, а простаивающую 2 часа - отключать. Подозреваю, что не очень хорошо, потому что 1с в этом случае закрывается некорректно (если, сессия осталась рабочей. а если у нее не поменялся статус с работающей на отключенную - все нормально).
3. на руборде нашел чудо-скрипт для запуска при подключении, который при повторном подключении пытается подключиться к уже активной сессии :). Этот вариант понравился больше всего, но возникла другая засада - у пользователей автоматом прописан запуск 1с при подключении к TS (чтобы не шалили) (для варианта Файл->Открыть->Проводник они не доросли :). А у многих пользователей есть необходимость работать одновременно в разных базах и с этим скриптом не получается запустить несколько подключений разом - при запуске тут же происходит подключение к предыдущему. Что делать, кроме как убрать 1с из запуска и ограничить перечень запускаемых приложений только этим 1с`ом?
PS. скрипт вот:
@echo off
set SessNum=-1
for /f "skip=1 tokens=3" %%i in ('qwinsta %UserName% ^| find /v ">"') do set SessNum=%%i
if %SessNum% EQU -1 (goto 1c)
tscon %SessNum%
logoff.exe
:1c
start c:\progra~1\1cv77\bin\1cv7.exe
Большое спасибо.