Имя: Пароль:
1C
 
Подвисание сервера приложений 1с 8.0.8.7
0 ssh
 
29.09.04
17:17
Ситуация: запускаем долгий отчет на клиенте. Пользователь не дожидается и снимает задачу. Сервер приложений при этом остается лопатить что-то, загружая процессор на 100%. Даже если "погасить" SQL-сервер, то сервер приложений все равно остается работать. Вопросы:
1. Как его снять, кроме перезагрузки сервера? Подключение клиента к серверу не снимается, т.к. выдается сообщение, что клиентский поток еще не завершен.
2. Это была модельная ситуация. Но в рабочем режиме есть более 20 пользователей. Загрузка процессора на сервере приложений все время 100%, есть подозрение, что это из-за подвисших процессов. Как определить, какие пользовательские подключения "висят"
1 F427
 
29.09.04
19:58
Серьезно.... Надо учесть...
2 Волшебник
 
29.09.04
20:31
(1) В долгом отчете нужно в цикле вызывать ОбработкаПрерыванияПользователя. Если же отчет долгий из-за запроса, то нужно оптимизировать запрос. Приведи сюда запрос и результаты замера - на что тратится время.

Сервер 1С:Предприятия можно остановить через консоль управления сервером. Там же можно определить текущие пользовательские подключения.

p.s. Сервер 1С:Предприятия не является сервером приложений.
3 Asmody
 
29.09.04
20:50
(2) а чем он является?
13 ssh
 
30.09.04
13:03
2Волшебник
Хорошая мысль насчет прерывания. Учтем. Только у меня есть подозрения, что по клиента поток управления еще не дошел. SQL свои данные отдал, клиент их ждет, а они колбасятся на сервере 1С (навечно). Буду копать...

Снять поток у меня так и не получилось. Я могу погасить сервер приложений целиком. Могу оборвать пользовательские подключения к SQL, могу снять клиентское приложение, но не могу снять клиентский поток с процесса сервера приложений. Средства самого сервера 1С не позволяют, т.к. он говорит, что выполняется клиентский поток и его нельзя закрыть. А как это делать средствами OS - я не знаю.


P.S. Ну а чем тогда является сервер 1С? Правда, если исходить из его способности масштабироваться, то он точно не сервер приложений :). Он не только не масштабируется на несколько машин, но и не масштабируется на несколько процессоров, если тачка многопроцессорная. За последнее я не отвечаю, но чувство такое есть. Что я с ним только не делал, но он ест только 100% ресурсов одного процессора из 4-х (или что тоже самое 25% общей процессорной емкости). За эту планку он выходить не хочет. Смысл многопроцессорного сервера?
14 Волшебник
 
30.09.04
13:06
(3) Сервером 1С:Предприятия. Дискуссия об этом уже была, можешь поискать.
(4) Это не хорошая мысль, а жизненная необходимость и правило хорошего тона.
15 ssh
 
30.09.04
16:29
Источник проблемы найдет. Это использование конструкции:
Выборка = Запрос.Выполнить().Выбрать();
Переписали по-человечески и забыли про проблему.

Всем спасибо.
16 Asmody
 
30.09.04
17:03
(14) Ааа... писец: "Сервер 1С:Предприятия является сервером 1С:Предприятие" ну чтож, будем знать...
ЗЫ: после 3 сразу 13 - "кикибана в действии" >;))
Оптимист верит, что мы живем в лучшем из миров. Пессимист боится, что так оно и есть.