Имя: Пароль:
1C
1С v8
Перезапуск службы сервера 1С
0 MistaEr
 
07.04.21
10:43
Доброго времени! Именно перезапуском службы решили избавиться от проблем занятых  зависших лицензий, одновременно и память освободить. Много решений, пробовал
net stop [1C:Enterprise 8.3 Server Agent (x86-64)]
net start [1C:Enterprise 8.3 Server Agent (x86-64)]
пробовал с паузой ping -n 16 localhost>Nul , или sleep.exe
Не добился нужного результата.

Интересно то, что после ручной остановки и запуска вчерашние сеансы так и остались висеть.
Платформа 8.3.17.1851, может знаете какие-то более простые решения?
1 Dmitrii
 
гуру
07.04.21
11:04
Установи в консоли кластера серверов в свойствах каждого кластера параметр "Перезапуск рабочих процессов", например, 86400 (сутки).

А вообще см.тут https://its.1c.ru/db/metod8dev#content:5899:hdoc:примеры%20скриптов

Немедленно завершить приложения.

taskkill /F /IM ragent.exe
taskkill /F /IM rmngr.exe
taskkill /F /IM rphost.exe
taskkill /F /IM httpd.exe
taskkill /F /IM w3wp.exe
taskkill /F /IM 1cv8c.exe
taskkill /F /IM 1cv8.exe


Остановка службы 1С:Предприятие с очисткой временных файлов.

set LOG_FILE="scripts.log"
set SERVICE_1C_NAME="1C:Enterprise 8.3 Server Agent (x86-64)"
set SERVICE_RAS_NAME="1C:Enterprise 8.3 Remote Server"
set CNTX_PATH="C:\srvinfo\reg_1541"
set PFL_PATH="C:\ProgramData\1C\1cv8"
set TEMP_PATH="C:\Windows\Temp"
echo stop %DATE% %TIME% >> %TEMP_PATH%\%LOG_FILE%
sc stop %SERVICE_1C_NAME%
sc stop %SERVICE_RAS_NAME%
timeout 5
taskkill /f /im "rphost.exe"
taskkill /f /im "rmngr.exe"
taskkill /f /im "ragent.exe"
taskkill /f /im "ras.exe"
timeout 5
echo done stop %DATE% %TIME% >> %TEMP_PATH%\%LOG_FILE%
echo clean temp %DATE% %TIME% >> %TEMP_PATH%\%LOG_FILE%
DEL /Q /F /S %CNTX_PATH%\snccntx*
DEL /Q /F %PFL_PATH%\*.pfl
DEL /Q /F /S %TEMP_PATH%\*.*
echo done clean temp %DATE% %TIME% >> %TEMP_PATH%\%LOG_FILE%


Запуск службы 1С:Предприятие.

set LOG_FILE="scripts.log"
set SERVICE_1C_NAME="1C:Enterprise 8.3 Server Agent (x86-64)"
set SERVICE_RAS_NAME="1C:Enterprise 8.3 Remote Server"
echo start %DATE% %TIME% >> %TEMP_PATH%\%LOG_FILE%
sc start %SERVICE_1C_NAME%
sc start %SERVICE_ RAS _NAME%
echo done start %DATE% %TIME% >> %TEMP_PATH%\%LOG_FILE%


Рестарт с очисткой временных файлов.

set LOG_FILE="scripts.log"
set SERVICE_1C_NAME="1C:Enterprise 8.3 Server Agent (x86-64)"
set SERVICE_RAS_NAME="1C:Enterprise 8.3 Remote Server"
set CNTX_PATH="C:\srvinfo\reg_1541"
set PFL_PATH="C:\ProgramData\1C\1cv8"
set TEMP_PATH="C:\Windows\Temp"
echo stop %DATE% %TIME% >> %TEMP_PATH%\%LOG_FILE%
sc stop %SERVICE_1C_NAME%
sc stop %SERVICE_RAS_NAME%
timeout 5
taskkill /f /im "rphost.exe"
taskkill /f /im "rmngr.exe"
taskkill /f /im "ragent.exe"
taskkill /f /im "ras.exe"
timeout 5
echo done stop %DATE% %TIME% >> %TEMP_PATH%\%LOG_FILE%
echo clean temp %DATE% %TIME% >> %TEMP_PATH%\%LOG_FILE%
DEL /Q /F /S %CNTX_PATH%\snccntx*
DEL /Q /F %PFL_PATH%\*.pfl
DEL /Q /F /S %TEMP_PATH%\*.*
echo done clean temp %DATE% %TIME% >> %TEMP_PATH%\%LOG_FILE%
echo start %DATE% %TIME% >> %TEMP_PATH%\%LOG_FILE%
sc start %SERVICE_1C_NAME%
sc start %SERVICE_ RAS _NAME%
echo Service %SERVICE_1C_NAME% restarted at %DATE% %TIME% >> %TEMP_PATH%\%LOG_FILE%


Аварийное завершение процесса rphost, который потребляет больше N Гб памяти.
N сильно зависит от вашей системы, нагрузки, конфигурации и т.д. В этом примере N = 8 Гб.


echo off
REM MemLimit in bytes!
REM MemLimit is 8 GB
set MemLimit=8796093022208
echo MemLimit is set %MemLimit% bytes
for /f "usebackq tokens=2" %%a in (`tasklist /FO list /FI "IMAGENAME eq rphost.exe" ^| find /i "PID:"`) do (
for /f "usebackq tokens=1" %%c in (`"wmic process where ProcessId=%%a get WorkingSetSize"`) do (
SET "var="&for /f "delims=0123456789" %%i in ("%%c") do set var=%%i
if not defined var (
if /I %%c GTR %MemLimit% (
echo Killing process rphost_%%a with Mem Usage %%c for breaking limit %MemLimit%
taskkill /F /PID %%a
)
)
)
)
2 timurhv
 
07.04.21
11:12
(0) >Интересно то, что после ручной остановки и запуска вчерашние сеансы так и остались висеть.
Спящие сеансы? Они автоматически удаляются, смотрите настройку базы. По-умолчанию 24 часа (86400 сек).
3 fisher
 
07.04.21
11:18
Спящие сеансы лицензий не потребляют.
В менеджере кластера однозначно отображается потребление лицензий сеансами, что позволяет достоверно установить "виновников" и причины.
Вместо универсального решения всех проблем "перезагрузите компьютер".
4 fisher
 
07.04.21
11:21
(0) После перезапуска подсасываются сеансовые данные, которые складируются на сервере приложений.
Если после серьезных инцидентов мне требовался "чистый рестарт", то я обычно делал так - рестартовал сервер, после этого удалял все восстановленные сеансы в менеджере кластера и после этого снова рестартовал.
5 H A D G E H O G s
 
07.04.21
12:44
(0) чисти папку с сеансовыми данными.

Пользуйся
Pause 60
6 MistaEr
 
07.04.21
14:06
Всем спасибо! В ближайшее время попробую, отпишу.