1С: Сеансовые данные snccntx
Сеансовый кэш (по правильному — «сеансовые данные») как правило находится в расположении C:\Program Files\1cv8\srvinfo\reg_1541\snccntx + уникальный идентификатор. В этой папке (название папки может быть наподобие такого: snccntx23a3c417-bab8-43a5-9df9-8ba437f4523c) лежат файлы вида: snccntx.000057F1.dat . Это и есть сеансовые данные.
С этих файлах хранится служебная информация, необходимая для работы сеанса , например, все, что введено в поля ввода на форме, при серверных вызовах сбрасывается в сеансовые данные.
При вызове методов: ПоместитьВоВременноеХранилище, ПоместитьФайл, НачатьПомещениеФайла, значения указанные в параметрах, записываются в сеансовые данные.
При фоновом исполнении отчетов СКД, результат отчета помещается в сеансовые данные, а затем передается в клиентскую часть.
Сам файл *.dat является местом хранения noSQL база данных (key-value storage).
Нам нужно удалить эти файлы чтобы повысить стабильность и предсказуемость работы платформы в некоторых случаях (например перед важным длительным расчетом). Прежде чем это сделать, останавливаем службу сервера 1С. А после удаления файлов, снова запускаем сервер.
При остановке службы сервера 1С бывают случаи, что отдельные процессы остаются висеть нештатно. Тогда такие процесс сервера 1С надо завершить принудительно.
Примечание. Путь кластера сервера 1С (C:\Program Files\1cv8\srvinfo\) может быть переопредлён ключом -D при запуске службы.
Подкаталог reg_1541 соответствует конкретному кластеру, совпадая в наименовании по номеру порта кластера. Если у вас несколько кластеров, или они расположены по нестандартным портам, то учитывайте это, просматривая соответствующие reg_… каталоги.
Рестарт службы сервера 1С с очисткой временных файлов
Пример скрипта рестарта службы сервера 1С с очисткой временных файлов:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
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="%TEMP%" echo %DATE% %TIME% stop service %SERVICE_1C_NAME% >> "%~dp0"%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 %DATE% %TIME% done stop service %SERVICE_1C_NAME% >> "%~dp0"%LOG_FILE% echo %DATE% %TIME% start clean temp >> "%~dp0"%LOG_FILE% DEL /Q /F /S %CNTX_PATH%\snccntx* DEL /Q /F %PFL_PATH%\*.pfl DEL /Q /F /S %TEMP_PATH%\*.* echo %DATE% %TIME% done clean temp >> "%~dp0"%LOG_FILE% echo %DATE% %TIME% start service %SERVICE_1C_NAME% >> "%~dp0"%LOG_FILE% sc start %SERVICE_1C_NAME% sc start %SERVICE_ RAS _NAME% echo %DATE% %TIME% service %SERVICE_1C_NAME% restarted >> "%~dp0"%LOG_FILE% |
Чтобы правильно определилась переменная %TEMP%, скрипт необходимо запускать от имени пользователя, под которым работает служба сервера 1С.
РЕКОМЕНДУЕМ КАЖДЫЕ СУТКИ В ТЕХНОЛОГИЧЕСКОЕ ОКНО ВЫПОЛНЯТЬ ТАКОЙ РЕСТАРТ СЛУЖБЫ