Форум программистов, компьютерный форум, киберфорум
1С: Администрирование и интеграция
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.55/29: Рейтинг темы: голосов - 29, средняя оценка - 4.55
24 / 24 / 1
Регистрация: 11.04.2008
Сообщений: 541
1

Зависают пользователи

18.09.2017, 13:11. Показов 5794. Ответов 32
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Настроено задание - раз в неделю перезапускается агент 1С.
И после данного задания в 1С зависают пользователи, причем через Администрирование серверов 1С этих пользователей не видно, но при обновлении конфигурация выдает сообщение, что есть активные сеансы.
Изначально была версия, что пользователи не выходят из 1С и из-за этого там зависают. Настроили регламентное задание, которое завершает работу пользователей с 1С перед перезагрузкой агента 1С.
Но регламентное задание не помогло. Оно сработало, пользователей в 1С не было ни одного, но при обновлении конфигурации, выдало сообщение, что активен 21 сеанс . Динамически конфигурацию обновить дает, но у нас есть и монопольные обновления, которые уже не проходят с активными пользователями.
Помогает только принудительная перезагрузка агента 1С, но это не вариант так каждый раз перезапускать заново вручную.
В чем может быть дело? Может кто-то сталкивался с таким и решил данную проблему?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
18.09.2017, 13:11
Ответы с готовыми решениями:

Зависают сеансы на 1С сервере 8.3
Добрый день. Возникла данная проблема спонтанно, в один прекрасный момент начали повисать сеансы...

Пропадают пользователи из 1С на уровне SQL
Пропадают пользователи из 1С на уровне SQL. Извините, если не в соответствующей категории. В чем...

Зависают регламентированные отчеты
Отчеты с кодом формы 0503769, если нажать "Заполнить по выбранному учреждению" заполняется по 2-4...

Активные пользователи
Неохота каждый раз бегать по отделам и просить чтобы все вышли из 1С. Есть ли где нибудь процедура...

32
208 / 182 / 31
Регистрация: 24.10.2011
Сообщений: 744
21.09.2017, 11:44 21
Author24 — интернет-сервис помощи студентам
Там где настраиваете планы обслуживания для баз данных, резервное копирование и прочее, чаще это SQL Server Management Studio (MS SQL) или PGAdmin (PostgreSQL).
0
24 / 24 / 1
Регистрация: 11.04.2008
Сообщений: 541
21.09.2017, 11:49  [ТС] 22
Цитата Сообщение от Volexovich Посмотреть сообщение
Там где настраиваете планы обслуживания для баз данных, резервное копирование и прочее, чаще это SQL Server Management Studio (MS SQL) или PGAdmin (PostgreSQL).
Этим у нас системные администраторы занимаются((((
А как понять криво там что-то завершается или нет? Потому что мне утверждают, что всё хорошо, что это проблема 1С (и соответственно это моя проблема)
0
208 / 182 / 31
Регистрация: 24.10.2011
Сообщений: 744
21.09.2017, 12:12 23
А сколько у вас живут блокировки в БД?
0
24 / 24 / 1
Регистрация: 11.04.2008
Сообщений: 541
21.09.2017, 12:17  [ТС] 24
Цитата Сообщение от Volexovich Посмотреть сообщение
А сколько у вас живут блокировки в БД?
В смысле? Не особо поняла, что Вы хотите узнать((((
0
208 / 182 / 31
Регистрация: 24.10.2011
Сообщений: 744
21.09.2017, 12:19 25
В конфигураторе:
Администрирование - параметры ИБ - время ожидания блокировок ИБ
0
24 / 24 / 1
Регистрация: 11.04.2008
Сообщений: 541
21.09.2017, 12:24  [ТС] 26
вот
Миниатюры
Зависают пользователи  
0
208 / 182 / 31
Регистрация: 24.10.2011
Сообщений: 744
21.09.2017, 14:38 27
ПолучитьПараметрыАдминистрированияИБ();
ПолучитьАктивныеСеансыИБ();

Там что?
0
24 / 24 / 1
Регистрация: 11.04.2008
Сообщений: 541
21.09.2017, 14:57  [ТС] 28
Цитата Сообщение от Volexovich Посмотреть сообщение
ПолучитьПараметрыАдминистрированияИБ();
1C
1
2
3
4
5
6
7
8
9
10
Функция ПолучитьПараметрыАдминистрированияИБ() Экспорт
 
    Результат = СоединенияИБКлиентСервер.НовыеПараметрыАдминистрированияИБ();
    СтруктураНастроек = Константы.ПараметрыАдминистрированияИБ.Получить().Получить();
    Если ТипЗнч(СтруктураНастроек) = Тип("Структура") Тогда
        ЗаполнитьЗначенияСвойств(Результат, СтруктураНастроек);
    КонецЕсли;
    Возврат Результат;
    
КонецФункции
Цитата Сообщение от Volexovich Посмотреть сообщение
ПолучитьАктивныеСеансыИБ();
1C
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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
Функция ПолучитьАктивныеСеансыИБ(НастройкаБлокировки, знач ВсеКромеТекущего = Истина) Экспорт
    
    Результат = Новый Структура("АгентСервера,КластерСерверов,Сеансы", Неопределено, Неопределено, Новый Массив);
    ПодстрокиСтрокиСоединения = РазложитьСтрокуВМассивПодстрок(
        СтрокаСоединенияИнформационнойБазы(), ";");
    
    ИмяСервера = СократитьДвойныеКавычки(Сред(ПодстрокиСтрокиСоединения[0], 7));
    ИмяИБ      = СократитьДвойныеКавычки(Сред(ПодстрокиСтрокиСоединения[1], 6));
    
    СистемнаяИнфо = Новый СистемнаяИнформация;
    ПодстрокиВерсии = РазложитьСтрокуВМассивПодстрок(
        СистемнаяИнфо.ВерсияПриложения, ".");
    ИмяCOMСоединителя="v" + ПодстрокиВерсии[0] + ПодстрокиВерсии[1] + ".COMConnector";
    
    COMСоединитель = Новый COMОбъект(ИмяCOMСоединителя);
    
    РазделительПорта = Найти(ИмяСервера, ":");
    Если РазделительПорта > 0 Тогда
        ИмяИПортСервера = ИмяСервера;
        ИмяСервера = Сред(ИмяИПортСервера, 1, РазделительПорта - 1);
        НомерПортаКластера = Число(Сред(ИмяИПортСервера, РазделительПорта + 1));
    ИначеЕсли НастройкаБлокировки.ПортКластераСерверов <> 0 Тогда
        НомерПортаКластера = НастройкаБлокировки.ПортКластераСерверов;
    Иначе
        НомерПортаКластера = COMСоединитель.RMngrPortDefault;
    КонецЕсли;
    
    ИдентификаторАгентаСервера = ИмяСервера;
    Если НастройкаБлокировки.ПортАгентаСервера <> 0 Тогда
        ИдентификаторАгентаСервера = ИдентификаторАгентаСервера + ":" + 
            Формат(НастройкаБлокировки.ПортАгентаСервера, "ЧГ=0");
    КонецЕсли;
    
    // Подключение к агенту сервера
    АгентСервера = COMСоединитель.ConnectAgent(ИдентификаторАгентаСервера);
    Результат.АгентСервера = АгентСервера; 
    
    // Найдем необходимый нам кластер
    Для каждого Кластер Из АгентСервера.GetClusters() Цикл
        
        Если Кластер.MainPort <> НомерПортаКластера Тогда
            Продолжить;
        КонецЕсли;
        
        Результат.КластерСерверов = Кластер; 
        АгентСервера.Authenticate(Кластер, НастройкаБлокировки.ИмяАдминистратораКластера, 
            НастройкаБлокировки.ПарольАдминистратораКластера);
        
        // Получаем список сеансов
        СписокСеансов = АгентСервера.GetSessions(Кластер);
        Для Каждого Сеанс из СписокСеансов Цикл
            Если ВРег(Сеанс.InfoBase.Name) <> ВРег(ИмяИБ) Тогда
                Продолжить;
            КонецЕсли;
            Результат.Сеансы.Добавить(Сеанс);
        КонецЦикла;
        
    КонецЦикла;
    
    Возврат Результат;
    
КонецФункции
0
208 / 182 / 31
Регистрация: 24.10.2011
Сообщений: 744
21.09.2017, 16:15 29
Хех, а вас не настораживает что при выполнении ЗавершитьВыбранныеСеансы() с ЗавершениеВсехСеансов = Истина, то текущий сеанс будет убит самим собой, это разве нормально?

Добавлено через 4 минуты
Я думаю вам нельзя убивать самого себя таким образом, после того как всех перебьете просто выйдите через ЗавершитьРаботуСистемы().

Добавлено через 13 минут
Вообще меня настораживает этот код:
1C
1
2
// Найдем необходимый нам кластер
    Для каждого Кластер Из АгентСервера.GetClusters() Цикл
Вам не кажется что он будет сажать обработку в бесконечный цикл?
думаю стоит переделать так
1C
1
2
Кластеры = АгентСервера.GetClusters();
Для каждого Кластер Из Кластеры   Цикл
Добавлено через 5 минут
Цитата Сообщение от Оленька Посмотреть сообщение
Так пользователей не было в 1С сегодня ночью.
А с утра уже висят 21.
Добавлено через 35 секунд
Откуда пользователи берутся не понятно((((
Не удивлюсь если эти пользователи это повисшие циклы
1
24 / 24 / 1
Регистрация: 11.04.2008
Сообщений: 541
16.10.2017, 12:09  [ТС] 30
Цитата Сообщение от Volexovich Посмотреть сообщение
Не удивлюсь если эти пользователи это повисшие циклы
Поправила код, не помогло((((
Вернее на прошлой неделе никого, а сегодня 26 сеансов опять с 2х часов ночи висит(((((
0
208 / 182 / 31
Регистрация: 24.10.2011
Сообщений: 744
27.10.2017, 12:48 31
Если фоновое выполняется еженочно и все ок, а тут вдруг появились сеансы, то дело может быть и не в 1с вовсе.

Добавлено через 7 минут
Мониторить, мониторить и еще раз мониторить.
0
24 / 24 / 1
Регистрация: 11.04.2008
Сообщений: 541
27.10.2017, 13:09  [ТС] 32
Каждую ночь нормально, а вот перезагружается агент только один раз в неделю. И именно после его перезагрузки и начинается всё.
0
208 / 182 / 31
Регистрация: 24.10.2011
Сообщений: 744
27.10.2017, 13:29 33
Если не можете локализовать проблему в работе, то разворачивайте тестовый стенд и на нем ищите проблему.
Я думаю проблема где то в обработке, типа той, что я уже указывал ранее, советую поискать в интернете нормальную обработку завершения работы пользователей, извините, но ваша мне не внушает доверия)
1
27.10.2017, 13:29
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
27.10.2017, 13:29
Помогаю со студенческими работами здесь

Пользователи конфигурации
помогите пжлст. Есть два поля ввода поле1 и поле2 на форме документа форм1 в Документа док1. в...

Пользователи жалуются на самораспроведение документов.
Ситуация такая пользователи жалуются на избранные документы, что они у них становятся не...

все пользователи входят без пароля
Вход в 1С всегда был запоролен, а после очередного прихода программиста все пользователи могут...

Автоматический выбор Ответственного из справочника Пользователи при создании документа
Здравствуйте. Создаю документ в конфигурации Бухгалтерия предприятия, редакция 2.0 (2.0.43.6) на...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
33
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru