Удалить зависшее соединение 1с
С толкнулся с такой проблемой подвисли 3 сеансса к информ. базам.
Отображаются как в сеансах, так и в блокировках в администрировании сервера. При попытке удалить сессию выдается ошибка "Ошибка удаления сеанса: Ошибка операции администрирования Ошибка формата потока".
Перезапуск сервера 1с не помогает, перезапуск физического сервера также не помогает. Соответственно выгрузить информационную базу не могу, так как ругается на активные сеансы.
Сервер 1с 8.3.11.2700 клиент-сервер на MSSQL.
Сервер хоть и тестовый, но проблема не приятная.
Подскажите, каким образом можно убить подвисшие сессии?
спасибо.
Дарю батник, пути каждый под себя поправит сам.
set log=C:\scripts\1C_server_restart.%DATE%.LOG
echo Begin restart 1C:Server %date% %time% >> %log%
net stop "1C:Enterprise 8.3 Server Agent (x86-64)" >> %log%
ping 127.0.0.1 -n 120 >> NUL
del /F /Q "G:\Users\USR1CV8\Local Settings\Temp*.*" >> %log%
net start "1C:Enterprise 8.3 Server Agent (x86-64)" >> %log%
echo End restart 1C:Server %date% %time% >> %log%
v8.3: Как в 8.3 удалять сеансы с помощью регламентного задания?
Как в 8.3 удалять сеансы с помощью регламентного задания?
уточните — какие сеансы вы хотите удалить?
Все активные сеансы (исключения тоже не помешают)) Сеансы пользователей часто продолжают оставаться активными, даже если пользователь вышел.
зачем тогда через регламентное, обычно если хотят все сбросить и всех отключить, перезапускают службу агент сервера 1С
у меня в планировщике стоит задание, каждое утро в 3.30 выполнять скрипт вида
Код Batch File (DOS, CMD, BAT)
Это вариант, спасибо! Но хотелось бы для отдельных пользователей сделать исключение..
тогда через com соединение подключайся и отключай необходимых
еще пара примеров VBS скрипт и 1С
Удаление сеанса пользователя в 1С
Завершение сеанса пользователя в 1С может потребоваться в следующих случаях:
- обновление информационной базы;
- проведение восстановления работы на сервере или профилактических работ;
- зависшие сеансы пользователей, которые препятствуют повторному входу;
- добавление нового объекта метаданных в конфигурацию.
В данной инструкции мы расскажем, как правильно завершить сеанс пользователя и покажем несколько способов в зависимости от требований.
Эти и другие работы мы выполняем в рамках ИТ-аутсорсинга.
Важно запомнить, что прежде чем завершать сеанс пользователя, требуется предупредить пользователя об этом, так как возможна потеря данных.
Закрытие сеансов из конфигуратора
При внесении изменений в структуру базы и обновлении конфигурации в динамическом режиме может появиться ошибка, которая не предоставит нам возможности продолжить выполнение обновления до тех пор, пока не завершим сеанс пользователя.
Рисунок 1 — Ошибка активных сеансов
Для завершения сеанса требуется:
- Нажать кнопку Завершить сеансы и повторить.
- Дождаться окна реструктуризации базы.
- Нажать Принять.
Завершение сеансов пользователя из программы 1С
В основном все продукты фирмы 1С 8 версии имеют механизм, позволяющий удаленно завершить работу пользователя и обеспечить администратору монопольный доступ к базе. Это обработка Блокировка соединений с информационной базой. Найти её можно по следующему адресу: Администрирование => обслуживание => блокировка работы пользователей.
Рисунок 2 — Блокировка работы пользователей
Рисунок 3 — Подтверждение блокировки сеанса
Удаление пользователей из RDP
Удалить пользователя из терминального сервера можно при наличии определенных прав на это действие. Возможно завершить работу из стандартного диспетчера задач, но простое прерывание сеанса — не очень правильно. Второй вариант — использование диспетчера задач, удаленное подключение к сеансу и корректное завершение с помощью выхода из программы. Это, конечно, долгий способ и нет гарантий, что пока выполняется выход одного пользователя, не будет подключен еще пользователь, который запустит программу.
Для сервера 1С и обладая правами Администратора для кластера серверов 1С, необходимо:
- Запустить консоль администрирования сервера 1С.
- В ветке Информационные базы, найти базу, в которой будем завершать работу пользователя.
- Открыв её, зайти в ветку Сеансы.
- Щелкнув правой кнопкой мыши по имени пользователя, выбрать пункт Удалить.
Рисунок 4 — Удаление в консоли администрирования
Часто бывает, что при работе в серверном режиме зависшие сеансы пользователей не видны средствами платформы, их можно удалить только через консоль.
Перезагрузка сервера
Нельзя и упустить такой момент, что одним из способов завершения сеанса пользователей является банальная перезагрузка сервера, выполнить её можно, если все вышеуказанные способы не сработали, но такое случается редко. Безусловно, требуется пользователей предупредить, чтобы они успели сохранить файлы и завершить работу с программами.
Проблема следующая: не возможно сделать штатный бекап. Т.е. выгрузка ИБ начинается и продолжается вечно. Проблема, видимо, кроется в том, что сеансов нет, а соединения и блокировки есть. И как эти соединения закрыть/удалить совершенно не понятно. Если заблокировать базу то через 20-30 минут они пропадают сами.
(1) Win98, Обычно обновление БД и/или архивирование выполняется так:
1. Выполнить блокировку.
2. Подождать от 1 до 5 минут (пока отработает стандартное отключение пользователей).
3. Войти в консоль и удалить оставшиеся подключения.
Сеансов нет, а блокировки и соединения остались и живут, ориентировочно, до 30 минут.
Сеансы удалить могу, а блокировки и соединения нет - нет такой функции/кнопки/поля меню. :(
(3) Win98, Обычно с сеансами соединения удаляются.
Значит какие-то длительные операции (под этими пользователями) запущены. К примеру удаление помеченных объектов.
(4) dj_serega, нет, ничего не запущено. есть подозрение что как-то связано с "время засыпания пассивного сеанса" и с "время завершения спящего сеанса" .
PS. У нас тонкий и веб-клиент.
(6) dj_serega, 20 минут и 1 час, до этого было больше (по умолчанию) оставались повисшие Сеансы, сократили, стало явно лучше, может еще сократить?
У меня такая же проблема проявляется (Платформа 8.3.5.1248). До установки данной платформы такой проблемы не было. Проявляется проблема в том, что выгрузка в dt зависает, при этом возможно войти в режиме 1С: Предприятие. Единственное решение, которое нашёл (причину так и не нашёл) - с помощью диспетчера задач завершить сеанс работы конфигуратора, после этого используя консоль администрирования удалить зависший сеанс конфигуратора и ещё раз начать выгрузку в архив (только задать другое имя архива) - тогда проходит всё быстро.
(9) Ted1982, в консоли сервера посмотри, плиз, наверняка в это время есть блокировки и соединения, а пока "убиваешь" конфигуратор и подцепляешься по новой они уже отмирают.
(10) Win98, Возможно. как буду следующий раз обновлять базы - обязательно посмотрю.
Но вопрос остаётся открытым по причинам такого поведения 1С.
(10) Win98, начал обновлять базы - проблема осталась, однако никаких дополнительных блокировок/соединений кроме самого конфигуратора нет. Видимо проблема в чём-то другом. В ближайшее время системные администраторы обновят на серверах платформу - посмотрю, может быть что-то и изменится
(9) Ted1982, У меня клиент-серверный вариант. Выгрузку делаем через sql. Поэтому и все хорошо по данному вопросу.
1С, в принципе, не рекомендует активно пользоваться выгрузками через dt.
(12) dj_serega, у нас в компании средствами sql делаются ночные архивы. А dt используем перед обновлением конфигурации в течение рабочего дня, чтобы сохранить на всякий случай то, что пользователи наработали за день.
sql конечно лучше, но подразделения, отвечающие за 1С и за SQL, отдельные - так что при обновлении каждой базы быстрее получается средствами 1С, оперативнее.
(15) Ted1982, а почему не делать sql'ьные каждый час в рабочее время? dt - хорошо, но не безопасно :(
У нас каждый час + ежедневные. И такую практику встречал во многих компаниях.
У кого не файловая то про dt вообще забыли (читать забили :) ).
(16) dj_serega, Эээээ. имея на одном сервере порядка 100 продуктивных баз, в которых постоянно работают, делать ежечасные архивы никаких мощностей не хватит.
(17) Ted1982, скуль сделает, он такой :)
У нас так же, ночью полный, каждый час инкрементный, и юзеров 500+, и объемы гигабайтные. но dt наше все :)
(17) Ted1982, Ну так а что мешает сделать sql-выгрузку а не dt? Почему именно dt?
Имхо, если есть возможность sql то только он. DT это привилегии файловой базы. Хотя и там лучше скопировать 1cd.
Вообщем мы друг друга поняли :)
Думаю, многим, имеющим дело с клиент-серверным 1С, хотя бы иногда приходилось сталкиваться с зависшими фоновыми заданиями, которые невозможно безболезненно, без перезапуска сервера 1С, прибить ни одним из штатных инструментов (консоль заданий, консоль администрирования серверов 1С и т.п.). В публикации описан один из возможных способов решения проблемы.
Проблема не новая и время от времени обсуждается на всевозможных 1С-ных форумах. Самое простое и популярное решение - это перезагрузка сервера 1С. К сожалению, этот вариант не всегда допустим или крайне нежелателен. На такой случай существуют более деликатные решения.
Вот один из таких способов в виде краткой пошаговой инструкции:
1. С помощью консоли администрирования серверов 1С ищем проблемное ф оновое задание в списке соединений (например, по времени начала его работы, сравнив с временем начала работы регламентированного задания в консоли заданий). Определяем рабочий процесс, в котором находится зависшее соединение.
2. Открываем свойства этого процесса и отмечаем его как неиспользуемый (если используется один единственный процесс, то предварительно необходимо создать новый рабочий процесс - для того, чтобы все активные соединения переподключились к нему). Запоминаем номер PID данного процесса.
3. Дожидаемся когда все текущие соединения переместятся из отключенного процесса в один из используемых. В конечном итоге в нашем процессе должны остаться только проблемные соединения, которые мы и хотим удалить.
4. На компьютере с сервером 1С с помощью диспетчера задач ищем соответствующий ему процесс rphost.exe по PID отключенного рабочего процесса и удаляем его.
5 . На всякий случай можно удалить отключенный нами рабочий процесс 1С с пощью админ. консоли и, при необходимости, создать новый.
6 . Готово. Можно войти в консоль заданий и проверить работоспособность регламентного задания.
Удаляем намертво зависшие фоновые задания без перезагрузки сервера 1С
Проблема не новая и время от времени обсуждается на всевозможных 1С-ных форумах. Самое простое и популярное решение - это перезагрузка сервера 1С. К сожалению, этот вариант не всегда допустим или крайне нежелателен. На такой случай существуют более деликатные решения.
Вот один из таких способов в виде краткой пошаговой инструкции:
1. С помощью консоли администрирования серверов 1С ищем проблемное ф оновое задание в списке соединений (например, по времени начала его работы, сравнив с временем начала работы регламентированного задания в консоли заданий). Определяем рабочий процесс, в котором находится зависшее соединение.
2. Открываем свойства этого процесса и отмечаем его как неиспользуемый (если используется один единственный процесс, то предварительно необходимо создать новый рабочий процесс - для того, чтобы все активные соединения переподключились к нему). Запоминаем номер PID данного процесса.
3. Дожидаемся когда все текущие соединения переместятся из отключенного процесса в один из используемых. В конечном итоге в нашем процессе должны остаться только проблемные соединения, которые мы и хотим удалить.
4. На компьютере с сервером 1С с помощью диспетчера задач ищем соответствующий ему процесс rphost.exe по PID отключенного рабочего процесса и удаляем его.
5 . На всякий случай можно удалить отключенный нами рабочий процесс 1С с пощью админ. консоли и, при необходимости, создать новый.
6 . Готово. Можно войти в консоль заданий и проверить работоспособность регламентного задания.
Выгоняем пользователей из серверной информационной базы
Для проведения регламентных работ в информационной базе 1С:Предприятия 8 часто необходимо получить монополный доступ к базе. Например, для выполнения бэкапа базы или выполнения регламентных работ на сервере СУБД (реиндексация и т.д.), необходимо отключить все активные сеансы.
Рассмотрим простой способ отключения пользователей от информационной базы с помощью стандартного функционала сервера 1С:Предприятия.
Стандартный функционал
Сразу оговорюсь, что речь будет идти о клиент-серверном варианте работы 1С:Предприятия 8. Для отключения сеансов зайдем в консоль администрирования сервера. Там найдем нужную информационную базы в списке:
Зайдя в свойства ИБ установим опцию "Блокировка начала сеансов включена". При этом может быть необходимо ввсетси логин/пароль учетной записи администратора информационной базы.
Не забывайте установить период блокировки сеанса. Также следует предусмотреть, что на время блокировки сеансов нужно остановить все фоновые задания. Делается это опицей "Блокировка регламентных заданий включена".
Код разрешения можно использовать для входа в информационную базу для выполнения регламентных работ, пока остальные сеансы не активные. Вводить код разрешения при подключении к базе нужно с помощью параметров. Например, так будет выглядеть параметр, переданный серверу, если код разрешения "123456".
Войдя в базу таким способом мы получим монополный доступ к информационной базе. Другие сеансы не смогут к нам присоединиться.
По началу периода блокировки сеансов сначала появляется уведомление:
После сеанс завершается.
Активные сеансы также можно отключить, удалив их из списка активных сеансов. Подобное действие порой необходимо для завершения зависших сеансов.
На практике об отключении пользователей лучше сообщать заранее, чтобы снизить риски потери данных, введенных пользователями, но еще не сохраненных.
Непонятное для пользователей, а иногда и начинающих программистов, слово "регистры". Попытаемся раскрыть его в этой статье. Рассмотрим устройство регистров накопления.
Для получения доступа к обновлениям конфигураций 1С 8.2 фирма 1С выпускает диски информационно-технического сопровождения (ИТС)
Выгрузка прайс-листа 1С 7.7 в Excel
Доступ к реквизитам справочника в 1с7.7 для каждого пользователя
Печать ценников для УТ 10.3 платформа 8.2 на две цены (розничная и оптовая)
Читайте также: