1с как перезагрузить сервер 1с
Соединения с кластером и регламентный перезапуск рабочих процессов
Раздел поясняет влияние соединений с кластером на управление рабочими процессами.
Соединения кластера
Утилита администрирования кластера серверов позволяет посмотреть список соединений:
- кластера в целом (ветка "Центральные серверы 1С:Предприятия 8.1/ / Кластеры/ / Соединения");
- рабочего процесса (ветка "Центральные серверы 1С:Предприятия 8.1/ / Кластеры/ / Процессы/ / Соединения" или ветка "Центральные серверы 1С:Предприятия 8.1/ / Кластеры/ / Рабочие серверы/ / Процессы/ / Соединения");
- информационной базы (ветка "Центральные серверы 1С:Предприятия 8.1/ / Кластеры/ Информационные базы/ / Соединения").
Среди соединений имеются:
- пользовательские соединения (1С:Предприятие, Конфигуратор, COM-соединения, WS-соединение, Фоновое задание, Консоль кластера, COM-администратор)
- служебные соединения (Планировщик заданий, Отладчик)
Пользовательские соединения относятся к информационной базе и видны в списке соединений:
- своей информационной базы;
- своего рабочего процесса;
- кластера в целом.
Служебные соединения не относятся к конкретной информационной базе и видны в списках соединений:
- своего рабочего процесса;
- кластера в целом.
Служебных соединений "Планировщик заданий" может быть несколько. Они устанавливаются в процессе работы кластера, и их количество зависит от нагрузки на кластер и от выполняемых действий. Эти соединения использует не только планировщик фоновых и регламентных заданий, но и:
Разрыв соединения
- если по инициативе пользовательского соединения на сервере не выполняется никакого действия, то соединение может быть разорвано всегда;
- если в момент разрыва соединения соединение выполняет на сервере код на встроенном языке, то разрыв соединения возможен при переходе выполнения от одной строки кода на встроенном языке к другой;
- если соединение выполняет запрос к базе данных, то для MS SQL Server и IBM DB2 1С:Предприятие предпринимает попытку прервать выполнение запроса сервером баз данных. Соединение будет разорвано, если пользователь базы данных, от имени которого сервер 1С:Предприятия выполняет обращение к базе данных, имеет соответствующие права, и СУБД готово выполнить функцию прекращения исполнения запроса;
- в других случаях попытка принудительного разрыва пользовательского соединения может не привести к фактическому разрыву соединения.
Принудительный разрыв служебных соединений невозможен.
Выключение и остановка рабочего процесса
Каждый рабочий процесс, определенный в кластере, может быть выключен или включен. При запуске кластера запускаются только включенные процессы. В работающем кластере при помощи Утилиты администрирования кластера серверов или средств программного администрирования кластера можно включать и выключать рабочие процессы, а также их создавать и удалять. После включения рабочий процесс запускается, если он до этого не был запущен и был выключен.
После выключения запущенного рабочего процесса он останавливается не сразу, а только тогда, когда с ним не будет установлено ни одного пользовательского соединения. При этом новых пользовательских соединений с данным рабочим процессом устанавливаться не будет. Для обеспечения возможности остановки рабочего процесса даже в том случае, когда с ним еще установлены пользовательские соединения, в Утилите администрирования кластера серверов предусмотрен параметр "Выключенные процессы останавливать через. " в свойствах кластера, а в средствах программного администрирования кластера - свойство ExpirationTimeout объекта "Кластер серверов" (IClusterInfo).
Если в момент выключения рабочего процесса значение этого параметра отлично от 0, то через заданное им количество секунд после выключения рабочий процесс будет остановлен даже в том случае, если не все пользовательские соединения с этим процессом закончили работу. При этом работа всех пользователей, подсоединенных к этому процессу, завершится аварийно.
Чтобы избежать аварийного завершения работы пользователей, можно предусмотреть в конфигурации анализ ситуации, когда рабочий процесс, с которым работает пользователь, оказался выключен. Для этого в глобальном контексте имеется метод "НеобходимостьЗавершенияСоединения". С его помощью конфигурация может отследить выключение рабочего процесса и оценить время, через которое выключенный процесс будет остановлен. В этом случае, например, пользователю может быть предложено перезапустить приложение.
Регламентный перезапуск рабочих процессов
Для минимизации отрицательных последствий фрагментации и утечки памяти в рабочих процессах может быть предусмотрен их автоматический перезапуск. В 1С:Предприятие встроена возможность автоматического перезапуска рабочих процессов через заданные интервалы времени. Для этого в Утилите администрирования кластера серверов предназначен параметр "Рабочие процессы перезапускать через. " в свойствах кластера, а в средствах программного администрирования кластера - свойство LifeTimeLimit объекта "Кластер серверов" (IClusterInfo). Если этот параметр отличен от 0, то для каждого рабочего процесса через заданное количество секунд после его запуска:
- создается и запускается новый процесс;
- текущий процесс выключается.
Это позволяет обеспечить автоматическое ограничение времени жизни рабочих процессов. Рекомендуется время, заданное параметрами LifeTimeLimit и ExpirationTimeout, связывать с длительностью технологического цикла конкретной информационной базы (сутки, неделя и т. д.).
- установить время принудительной остановки рабочих процессов (свойство ExpirationTimeout объекта "Кластер серверов");
- согласно установленным критериям выбрать рабочий процесс, который необходимо перезапустить;
- запустить новый процесс;
- выключить выбранный процесс;
- после того, как выключенный процесс будет остановлен, удалить его из кластера.
Приведенный ниже пример кода позволяет установить время принудительной остановки рабочих процессов:
Следующий фрагмент кода является простым примером регламентного перезапуска рабочих процессов:
Иногда сервер приложений занимает всю память и ее надо освободить.
Можно презапустить службу 1С, но это может привести к тому, что сеансы пользователей, которые работаю с данными, завершаться аварийно.
Есть возможность перезапустить рабочие процессы сервера приложений без заверешния работы пользователей.
это делает намного проще. В кластере устанавливаем порог допустимого объема памяти см. приложение.
+
Упустил главный момент необходимо поставить "Интервал превышения допустимого объема памяти __ секунд"
p.s. Работает как часы, версия платформы 8.2.15.310
Выдержка из документации:
Интервал перезапуска __ секунд
Интервал времени после запуска процесса, по истечении которого рабочий процесс перезапускается. Нулевое значение означает, что рабочие процессы не будут перезапускаться автоматически.
Допустимый объем памяти __ KB
Устанавливает предельный объем виртуального адресного пространства, после постоянного превышения которого в течение определенного времени (см. следующий параметр) рабочий процесс будет автоматически перезапущен. Нулевое значение означает, что критический объем памяти не задан и автоматический перезапуск рабочих процессов не выполняется.
Интервал превышения допустимого объема памяти __ секунд
Определяет интервал времени постоянного превышения предельного объема виртуального адресного пространства, занимаемого рабочим процессом (см. предыдущий параметр), после которого выполняется автоматический перезапуск рабочего процесса. Нулевое значение означает, что автоматически перезапуск рабочих процессов не выполняется.
user745830; 1v7; Kom-off; Sergoninfostarru; sanches; Misanets; tolyan_ekb; MoshkovEV; JohnyDeath; i_lo; iov; sergiobargio1; Юрий ЛЛ; Andreyyy; AlX0id; Alex_Japanese_Student; adhocprog; + 17 – Ответить
Наверно, не на всех версиях платформы это свойство ведет себя так, как описано в документации.
У нас на платформе 8.2.13.289 и .14.540 процессы продолжали жить с памятью, превышающей установленное пороговое значение, и при этом никакие сеансы пользователей не перемещались на другие процессы.
Методом пользуемся, когда нужно перезапустить рабочий процесс с зависшими фоновыми заданиями.
Все пользовательские сессии перебрасываются на другой рабочий процесс, а этот ("зависший") убивается в диспетчере задач (для этого нужно в его колонках вывести PID процесса, а в свойствах рабочего процесса 1С посмотреть этот самый PID).
Сейчас проверил у себя , только один рабочий процесс, как сделать чтобы было больше ?, если завершу то точно все юзверы отключаться
Изменять настройку рабочих процессов без последующего перезапуска службы 1С влечет за собой кучу проблем у пользователей, проверено на практике :). Поиграться конечно можно, но перезапуск службы в конечном итоге обязателен.
Вот нашел, начались сыпаться вот такие ошибки (УПП, в базе находилось примерно 200 пользователей):
1. При записи какого либо объекта, в данном примере, документа "Заявка на расходвание средств":
Ошибка при выполнении обработчика - 'ПередЗаписью'
по причине:
: Ошибка при получении значения атрибута контекста (НаличиеОбменаУПП)
по причине:
Попытка получения неинициализированного значения параметра сеанса
2. При входе в систему сразу выдавала ошибку: "Таблица не найдена "Справочник.Пользователи". и кнопка "Завершить работу"
Раньше таких ошибок не возникало, началось именно после того, как мы добавили наживую рабочие процессы.
Ошибки возникали хаотично, беглый анализ показал, ошибки появляются у тех пользователей которых сервер начал перекидывать с одного процесса на другой распределяя нагрузку. В начале пытались выкидывать этих пользователей из базы и после того как они заходили заново ошибка уходила, но как оказалось не надолго. Помучавшись два дня, в конечном итоге, вырубили всех пользователей, добавили заново рабочие процессы, перезапустири службу и проблем больше не было.
И в инсрукции к серверу явно написано нужно перезапускать, но как всегда начинаешь их читать когда уже проблемы возникли.
:: kill the process
echo %date% %time% "TASKKILL rphost.exe" >>%logfile%
TASKKILL /F /IM "rphost.exe">>%logfile%
echo %date% %time% "TASKKILL rmngr.exe" >>%logfile%
TASKKILL /F /IM "rmngr.exe">>%logfile%
echo %date% %time% "TASKKILL ragent.exe" >>%logfile%
TASKKILL /F /IM "ragent.exe">>%logfile%
echo %date% %time% "TASKKILL 1cv8.exe" >>%logfile%
TASKKILL /F /IM "1cv8.exe">>%logfile%
echo %date% %time% "TASKKILL 1cv8c.exe" >>%logfile%
TASKKILL /F /IM "1cv8c.exe">>%logfile%
echo %date% %time% "TASKKILL 1cv8t" >>%logfile%
TASKKILL /F /IM "1cv8t">>%logfile%
echo %date% %time% "TASKKILL 1cv8s.exe" >>%logfile%
TASKKILL /F /IM "1cv8s.exe">>%logfile%
-- Небольшая пауза после снятия процессов
:: pause
set timeout=5
echo %date% %time% "Begin pause" >>%logfile%
timeout /t %timeout% /nobreak >nul
echo %date% %time% "End Pause" >>%logfile%
-- Задаем папку srvinfo\reg_1541
set Dirreg1541="C:\Program Files (x86)\1cv8\srvinfo\reg_1541"
-- Чистим сеансовые данные
:: Clear folder by mask
set n=0
pushd "% Dirreg1541 %"
for /f %%i in ('2^>nul dir/ad/b "*snccntx*"') do (
set/a n+=1
call set $%%n%%=%%i
)
popd (
if %n% equ 0 (
echo %date% %time% These folders not found. >>%logfile%
)
if %n% equ 1 (
pushd "% Dirreg1541 %"
2>nul rd/q/s "%$1%"&& (
echo %date% %time% Clear the folder "%$1%". >>%logfile%
)|| (
echo %date% %time% folder "%$1%" was found, but to remove it completely failed. >>%logfile%
)
popd
)
if %n% gtr 1 (
echo %date% %time% These folders not found %n%: >>%logfile%
cmd/v/c "for /l %%i in (1 1 %n%) do @echo !$%%i!" >>%logfile%
)
-- Задаем папку временных файлов для пользователя под кем запускается сервер 1С
-- Чистим серверный кэш
:: Clear folder
PUSHD "%DirProg%"
2>Nul RD /S/Q "%DirProg%"
echo %date% %time% Clear the folder "%DirProg%". >>%logfile%
POPD
-- Запускаем службу сервера 1С
:: Start the server agent service 1C
echo %date% %time% "net start Agent 1C">>%logfile%
net start %agent% >>%logfile%
-- Ждем, пока запустится (необязательно)
:: pause
set timeout=10
echo %date% %time% "Begin pause" >>%logfile%
timeout /t %timeout% /nobreak >nul
echo %date% %time% "End Pause" >>%logfile%
Чтобы запускать Батник регулярно в установленное время, лучше воспользоваться Планировщиком заданий Windows
- Открыть "Планировщик Заданий"
- Создать простую задачу
- Выбрать расписание
- Действие - "Запустить программу"
- Выбрать наш батник
- Завершить
- Поставить галочку "Выполнить с наивысшими правами" (иначе не будет прав на перезапуск службы)
- Поставить галочку "Выполнять вне зависимости от регистрации пользователя" (чтобы выполнялось даже если мы не подключены к серверу)
Пункты меню планировщика могут отличаться в зависимости от версии windows.
Иногда сервер приложений занимает всю память и ее надо освободить. Можно презапустить службу 1С, но это может привести к тому, что сеансы пользователей, которые работаю с данными, завершаться аварийно. Есть возможность перезапустить рабочие процессы сервера приложений без заверешния работы пользователей.
Для этого в консоли сервера выбираем процесс, который занял больше всего памяти и открываем его свойства.
В свойствах процесса указываем Использование = Не использовать. Нажимаем ОК.
Без паники. Все сеансы пользователей автоматически перейдут на другие рабочие процессы. Проверено на практике (много раз).
Дожидаемся, пока процесс не завершится:
Примечание: сеанс Конфигуратора не переносится с процесса на процесс.
После этого повторяем обратную операцию. Открываем свойство остановившегося рабочего процесса, указываем Использование = Использовать.
Ждем. При первом подключении выделяется память:
Все. Память освободилась. Начинается новая жизнь.
Также можно настроить автоматический перезапуск сервера.
Специальные предложения
это делает намного проще. В кластере устанавливаем порог допустимого объема памяти см. приложение.
+
Упустил главный момент необходимо поставить "Интервал превышения допустимого объема памяти __ секунд"
p.s. Работает как часы, версия платформы 8.2.15.310
Выдержка из документации:
Интервал перезапуска __ секунд
Интервал времени после запуска процесса, по истечении которого рабочий процесс перезапускается. Нулевое значение означает, что рабочие процессы не будут перезапускаться автоматически.
Допустимый объем памяти __ KB
Устанавливает предельный объем виртуального адресного пространства, после постоянного превышения которого в течение определенного времени (см. следующий параметр) рабочий процесс будет автоматически перезапущен. Нулевое значение означает, что критический объем памяти не задан и автоматический перезапуск рабочих процессов не выполняется.
Интервал превышения допустимого объема памяти __ секунд
Определяет интервал времени постоянного превышения предельного объема виртуального адресного пространства, занимаемого рабочим процессом (см. предыдущий параметр), после которого выполняется автоматический перезапуск рабочего процесса. Нулевое значение означает, что автоматически перезапуск рабочих процессов не выполняется.
user745830; 1v7; Kom-off; Sergoninfostarru; sanches; Misanets; tolyan_ekb; MoshkovEV; JohnyDeath; i_lo; iov; sergiobargio1; Юрий ЛЛ; Andreyyy; AlX0id; Alex_Japanese_Student; adhocprog; + 17 – Ответить
Наверно, не на всех версиях платформы это свойство ведет себя так, как описано в документации.
У нас на платформе 8.2.13.289 и .14.540 процессы продолжали жить с памятью, превышающей установленное пороговое значение, и при этом никакие сеансы пользователей не перемещались на другие процессы.
Методом пользуемся, когда нужно перезапустить рабочий процесс с зависшими фоновыми заданиями.
Все пользовательские сессии перебрасываются на другой рабочий процесс, а этот ("зависший") убивается в диспетчере задач (для этого нужно в его колонках вывести PID процесса, а в свойствах рабочего процесса 1С посмотреть этот самый PID).
Сейчас проверил у себя , только один рабочий процесс, как сделать чтобы было больше ?, если завершу то точно все юзверы отключаться
Изменять настройку рабочих процессов без последующего перезапуска службы 1С влечет за собой кучу проблем у пользователей, проверено на практике :). Поиграться конечно можно, но перезапуск службы в конечном итоге обязателен.
Вот нашел, начались сыпаться вот такие ошибки (УПП, в базе находилось примерно 200 пользователей):
1. При записи какого либо объекта, в данном примере, документа "Заявка на расходвание средств":
Ошибка при выполнении обработчика - 'ПередЗаписью'
по причине:
: Ошибка при получении значения атрибута контекста (НаличиеОбменаУПП)
по причине:
Попытка получения неинициализированного значения параметра сеанса
2. При входе в систему сразу выдавала ошибку: "Таблица не найдена "Справочник.Пользователи". и кнопка "Завершить работу"
Раньше таких ошибок не возникало, началось именно после того, как мы добавили наживую рабочие процессы.
Ошибки возникали хаотично, беглый анализ показал, ошибки появляются у тех пользователей которых сервер начал перекидывать с одного процесса на другой распределяя нагрузку. В начале пытались выкидывать этих пользователей из базы и после того как они заходили заново ошибка уходила, но как оказалось не надолго. Помучавшись два дня, в конечном итоге, вырубили всех пользователей, добавили заново рабочие процессы, перезапустири службу и проблем больше не было.
И в инсрукции к серверу явно написано нужно перезапускать, но как всегда начинаешь их читать когда уже проблемы возникли.
Перезагрузка сервера выполняется автоматически, если в течение некоторого времени (обычно 3 минут) к серверу 1С:Предприятия не подсоединен ни один пользователь. Если этого добиться затруднительно, то сервер можно перезагрузить принудительно при помощи утилиты Start/ Settings/ Control Panel/ Administrative Tools/ Component Services, на том компьютере, на котором установлен сервер 1С:Предприятия. Для этого в ней необходимо найти ветку Console Root/ Component Services/ Computers/ My Computer/ COM+ Applications/ 1CV8 и выполнить пункт Shut down ее локального меню.
Перезагрузка сервера может быть выполнена программно. Это можно сделать, например, при помощи следующего кода на встроенном языке 1С:Предприятия 8.0:
ВНИМАНИЕ! Если в момент перезагрузки серверного приложения 1CV8 к нему были подсоединены пользователи, то их работа завершится аварийно. При этом какие-то данные могут оказаться не сохраненными.
Похожие FAQ
1C: Enterprise Development Tools 50
И вот случилось долгожданное: Вышел 1C: Enterprise Development Tools - это среда для разработки конфигурации в IDE Eclipse. С сайта 1С: « 1C:Enterprise Development Tools » – это инструмент нового поколения для разработчиков бизнес-приложений систем Cодержимое указанного ниже веб-сайта в этом приложении блокируется. Aboutsecurity_1cv8c.exe 1
Проблема: После обновления на 1С:Бухгалтерию предприятия 3-й версии, при нажатии на закладку командного интерфейса 1С:предприятие, выскакивает ошибка: Aboutsecurity_1cv8c.exe или Aboutsecurity_1cv8.exe «Содержимое указанного ниже веб-узла в э PostgreSQL: установка, настройка, обслуживание 11
PostgreSQL напрямую "из коробки" применяться для использования с 1С Предприятем не может. Необходима именно адаптированная версия от 1С, превращающая PostgreSQL в блокировочник, причем нужно понимать, что блокировки будут накладываться на всю таблиц rphost занимает память и грузит процессор 19
У многих возникают проблемы с rphost.exe, разного вида: rphost занимает всю память rphost грузит процессор rphost жрет память причем 1С даже на запущена, а в диспетчере следующее: ежеминутно расчет на 2-3 мегабайта. Как быть и что делат Автоматическое резервное копирование 1С:Предприятия в облако с помощью ПО Effector Saver 3
Всем известно, для большей гарантии восстановления важных данных, необходимо копировать архивы в несколько мест хранения. Отдельный диск может помочь в случае порчи основного, но в случае если устройство будет потеряно или украдено, он будет так же Посмотреть все результаты поиска похожих
Еще в этой же категории
Читайте также: