Автоматическое удаление спящих сеансов на сервере 1С

0. Gasanov.talib 20 30.08.16 08:30 Сейчас в теме
При нештатном завершении клиентской части программы 1С (конфигурации), а также если клиент долгое время не активен, то сеанс на сервере переходит в спящий режим. Далее он должен завершиться через указанное в настройках информационной базы количество времени.
Но, к сожалению, это не так. Я столкнулся с проблемой, когда спящие сеансы никогда не завершаются. Настраивал засыпание пассивных сеансов через 600 секунд, а их завершение через 900 секунд. Несмотря на это спящие сеансы висят часами. Это побудило к написанию программы, которая запускается по расписанию планировщиком Windows и удаляет спящие сеансы на всех указанных администратором серверах 1С.


Перейти к публикации

Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. lalexrus 30.08.16 14:19 Сейчас в теме
2. Gasanov.talib 20 30.08.16 16:06 Сейчас в теме
(1) lalexrus, Если возникнут сложности или пожелания при использовании, дайте знать
3. foxey 4 23.12.16 15:42 Сейчас в теме
После перехода на версию 8.3.9.2033 перестало работать.
При попытке обновить список выдает окошко со страшными письменами:
"Необрабатываемое исключение в приложении. При нажатии кнопки "продолжить" приложение проигнорирует ошибку и попытается продолжить работу. При нажатии кнопки "Выход" приложение немедленно завершит работу.
Не удалось получить фабрику класса COM для компонента с CLSID {181E893D-73A4-4722-B61D-D604B3D67D47} из-за следующей ошибки: 80041154 Класс не зарегистрирован (Исключение из HRESULT: 0x80040154 (REGDB_E_CLASSNOTREG))."

На предыдущей версии 1С работало исправно.
Мне кажется, в версии 2033 (точнее, на одну версию раньше) платформа стала 64-битным приложением. И из-за этого такие вот косяки вылезли...
Как вылечить? Переустановка V8SessionCleaner не помогла...
5. aka Любитель XML 23.12.16 16:27 Сейчас в теме
(3) зарегистрирую com от новой платформы
6. foxey 4 24.12.16 10:19 Сейчас в теме
(5) А не подскажете, как это делается?
4. citicat 119 23.12.16 15:44 Сейчас в теме
7. Gasanov.talib 20 26.12.16 19:04 Сейчас в теме

Игорь, "80041154 Класс не зарегистрирован" однозначно говорит о том, что у вас требуемый COM компонент не зарегистрирован. В данном случае речь идет об компоненте "1CV83 COM Connector".
Обычно при корректной установке 1С этот компонент регистрируется. В вашем случае возможно были какие-то проблемы при установке или допущена ошибка.
Чтобы решить проблему надо либо еще раз (поверх установленной) установить 1С, выбрав опцию "исправить" при установке или же САМОСТОЯТЕЛЬНО зарегистрировать "1CV83 COM Connector".
Для самостоятельной регистрации откройте в текстовом редакторе вложенный файл, замените путь к comcntr.dll на ваш (найдите на вашем компьютере файл comcntr.dll и замените путь). Сохраните изменения и запустите командный файл ОБЯЗАТЕЛЬНО нажав правую кнопку мыши и выбрав "Run as administrator".
Если все правильно вы должны увидеть сообщение типа: DllRegisterServer in <путь>\comcntr.dll succeeded. Если у вас Windows русский, то сообщения могут быть на русском.


Прикрепленные файлы:
RegisterV8ComConnector.7z
8. foxey 4 28.12.16 09:22 Сейчас в теме
(7) Вот смотрите, Талиб.
Ручками провожу регистрацию на сервере: regsvr32 "C:\Program Files\1cv8\8.3.9.2033\bin\comcntr.dll"
Сообщает мне, что регистрация успешно прошла.
Перезапускаю сеанс удаленного рабочего стола, пробую утилитку Вашу и снова та же песенка о незарегистрированном классе.
Может надо сервер перезапускать? Но это возможно только ночью сделать.
А не может быть причиной такой неприятности из-за того, что теперь DLL находится в другой папке? У Вас "Program Files (x86)", у меня "Program Files". Хотя нет, не может быть это причиной.
Update: Ах да, забыл сказать. Я это делаю из-под учётки Администратора.
9. foxey 4 28.12.16 10:11 Сейчас в теме
Update 2: Попробовал провести восстановление установленной 1С, пришлось перезапустить сервер. Так вот, не помогло...
Все же думаю, что причиной неудач может быть то, что установлен 64-битный клиент.
10. Gasanov.talib 20 28.12.16 13:48 Сейчас в теме
(9)
игорь,
Надо убедиться, что утилита удаления сеансов запущена на том же компьютере на котором Вы регистрируете comcntr.dll. Если это так и проблемы все равно есть, тогда надо

1.Зарегистрироть comcntr.dll потом в реестре windows поискать по ключу 181E893D-73A4-4722-B61D-D604B3D67D47, найти раздел где регистрирован comcntr.dll и смотреть нет ли там проблем.

что касается 64-битного клиента, то не могу утверждать что проблема в этом. У я программировал утилиту и тестировал как раз на 64-битном Windows.

Вы можете постучаться мне в скайп, если хотите. Так может быстрее получится решить проблему.

Скайп Gasanov2003
11. Gasanov.talib 20 29.12.16 12:46 Сейчас в теме
Проблема действительно была, связана с тем, что текущая версия утилиты работает только с 32 битным клиентом 1С. Если установить 1С клиент 64, то программа не работает и выдает ошибку описанную Игорем выше.

В ближайшее время выложу 64 битную версию утилиты.
12. пользователь 01.02.17 16:39
Сообщение было скрыто модератором.
...
13. Octopus 337 28.02.17 08:40 Сейчас в теме
Будет ли реализована возможность завершения конкретной сессии, а не всего списка целиком?
14. Gasanov.talib 20 28.02.17 23:03 Сейчас в теме
Да, реализую в новом релизе, если это нужная возможность.
Правильно я понимаю, речь идет о возможности завершения выбранной сессии когда программа запущена в режиме пользовательского интерфейса?
15. Octopus 337 15.03.17 09:57 Сейчас в теме
(14) Не обязательно, подвиснуть может и конфигуратор. Вопрос вызван следующей ситуацией: сервер с множеством баз, понадобилось убрать "висяки" только одной из них. Кстати, сортировка по колонкам тоже была бы весьма удобна.
16. DrBlack 23 15.03.17 10:06 Сейчас в теме
Столкнулся с аналогичной проблемой, проблему решили с помощью регламентного задания, которое запускается раз в сутки (нам этого достаточно) и грохает все сеансы, вот весь код (актуально для УПП):
Процедура ЗавершениеСеансовПользователей() Экспорт	
	ПараметрыАдминистрированияИБ = СоединенияИБ.ПолучитьПараметрыАдминистрированияИБ();	
	СоединенияИБ.ОтключитьСоединенияИБ(ПараметрыАдминистрированияИБ);	
КонецПроцедуры

Enjoy :)
IT_GG; KazanKokos; +2 Ответить
17. user1498761 25.11.20 16:12 Сейчас в теме
как решить ошибку:
"Ошибка операции администрирования
Администратор кластера не аутентифицирован"
При этом все настроено по инструкции
18. 1C8 17 27.05.21 04:38 Сейчас в теме
Здравствуйте.
С установкой и настройкой вроде бы все получилось. GUI запускается, к серверу подключается, сеансы видит.
А вот по кнопке завершить спящие, вылетает с крэшем.

Сигнатура проблемы:
Имя события проблемы: APPCRASH
Имя приложения: V8SessionCleaner.exe
Версия приложения: 1.0.0.0
Отметка времени приложения: 57c51374
Имя модуля с ошибкой: comcntr.dll
Версия модуля с ошибкой: 8.3.13.1644
Отметка времени модуля с ошибкой: 5bf20e79
Код исключения: c0000005
Смещение исключения: 00030db4
Версия ОС: 6.1.7601.2.1.0.18.10
Код языка: 1049
Дополнительные сведения 1: 0a9e
Дополнительные сведения 2: 0a9e372d3b4ad19135b953a78882e789
Дополнительные сведения 3: 0a9e
Дополнительные сведения 4: 0a9e372d3b4ad19135b953a78882e789

При запуске через Планировщик, в журнале вот такие сообщения об ошибке:

Имя сбойного приложения: V8SessionCleaner.exe, версия: 1.0.0.0, отметка времени: 0x57c51374
Имя сбойного модуля: comcntr.dll, версия: 8.3.13.1644, отметка времени 0x5bf20e79
Код исключения: 0xc0000005
Смещение ошибки: 0x00030db4
Идентификатор сбойного процесса: 0x4304
Время запуска сбойного приложения: 0x01d75290a03bbd4e
Путь сбойного приложения: C:\Program Files (x86)\V8.Lab\V8SessionCleaner\V8SessionCleaner.exe
Путь сбойного модуля: C:\Program Files (x86)\1cv8\8.3.13.1644\bin\comcntr.dll
Код отчета: 4141d26f-be89-11eb-98f4-001e6783d4b5

Приложение: V8SessionCleaner.exe
Версия платформы: v4.0.30319
Описание. Процесс был завершен из-за необработанного исключения.
Сведения об исключении: System.AccessViolationException
в V83.IServerAgentConnection.TerminateSession(V83.IClusterInfo, V83.ISessionInfo)
в V8SessionCleaner.MainForm.GetDeadSessions(System.String, Boolean)
в V8SessionCleaner.MainForm.Do(Boolean)
в V8SessionCleaner.Program.Main()

ОС - Windows Server 2008 R2 Enterprise Servis Pack 1 х64

Жалко. Програмка то полезная. Выкинуть спящие сеансы даже Reboot не помогает. Приходится все ручками вычищать.
19. Gasanov.talib 20 27.05.21 16:01 Сейчас в теме
(18)
Добрый день!

Версия платформы 1С (библиотеки comcntr.dll) на машине, где запускается V8SessionCleaner.exe 32 или 64?
21. 1C8 17 28.05.21 04:56 Сейчас в теме
20. Gasanov.talib 20 27.05.21 16:02 Сейчас в теме
(18)
V8SessionCleaner.exe


Нужна дополнительная информация. Постучитесь мне в скайп (Gasanov2003), так проще будет решить.
22. vano6666 03.09.21 10:19 Сейчас в теме
Такой вопрос а с серверами на разных платформах и разнесенных на разные порты. Работает?
Что то не как не получаеться добавить еще один сервер
23. user1788316 02.06.22 13:30 Сейчас в теме
Добрый день! Пытаюсь настроить данную утилиту на сервере, пока просто в ручном режиме без планировщика запускаю, но выдает ошибку:

System.Runtime.InteropServices.COMException (0x8000401A): Не удалось получить фабрику класса COM для компонента с CLSID {181E893D-73A4-4722-B61D-D604B3D67D47} из-за следующей ошибки: 8000401a Процесс сервера не может быть запущен, так как указана неправильная идентификация. Проверьте правильность указания имени пользователя и пароля. (Исключение из HRESULT: 0x8000401A).

В администрировании серверов 1С нет пользователя-администратора, там пусто, поэтому по идее должно работать под административным пользователем Windows. Так же 1С у нас 64-битная, но я так понимаю утилита должна работать на всех версиях? Подскажите в чем проблема может быть?
Прикрепленные файлы:
Оставьте свое сообщение
Вакансии
Системный архитектор
Москва
зарплата от 150 000 руб.
Полный день

Ведущий консультант аналитик 1С ERP, УХ
Ульяновск
зарплата от 120 000 руб.
Полный день

Программист-разработчик 1С
Москва
зарплата от 150 000 руб.
Полный день

Аналитик 1С
Москва
зарплата от 150 000 руб. до 200 000 руб.
Полный день

Программист 1С
Оренбург
зарплата от 120 000 руб.
Полный день