Имя: Пароль:
1C
1С v8
Зависает регламентное задание работы с ВебСервисом
,
0 sabiony
 
24.01.13
13:36
Уже не первый раз подвисает регламентное задание по передаче данных через вебсервис в другую базу.
Вот и сегодня. В 10-00 зависло регламентное задание, через консольку не убивается, в консоле сервера висит в блокировках. Приходится через внешнюю обработку дергать метод регламентного задания, но это не дело.
Ясно конечно, что жизнь портит вебсервис, который возможно не отвечает, и поэтому все висит. Еще на этапе тестирования и ручного дерганья сервиса он редко, но зависал. Причины не понятны, в следующую секунду уже могло быть все хорошо.
Настройка завершения регламентного задания через 360 сек. не помогла.
Настройка создания WSПрокси с таймаутом в 300 сек не помогла.

Вот вопросы:
1. Как бороться с зависшими регламентными заданиями? Бывало ли у вас подобное? как побороли?
2. Сталкивались ли вы с зависшими вебсервисами?
1 sabiony
 
29.01.13
14:47
Вдруг кто-то подскажет, исходя из новых моих данных.

Чт (24.01) - зависали вебсервисы
Пт (25.01) - все отработало как часы
Пн (28.01) - все отработало как часы
Вт (29.01) - опять 25...зависают. Причем самое интересное, что я отловила и в браузере:
1. Открываю WSDL-ку,
2. Запрашивается логин и пароль для подключения к базе-приемнику
3. Судя по журналу регистрации базы-приемника пользователь подключается
4. Все виснет и WSDL-ка не получается, и пользователь так и остается висеть в базе-приемнике. Хотя если бы не зависла, то сеанс завершился с получением WSDL.

Когда в момент сбоя попробовала добавить WS-ссылку в конфигураторе, то сначала также все подвисло, а потом выдалась вот такая ошибка:

*******************************
Ошибка при выполнении файловой операции  'http://WebAgent:xxxxxxx@***/v82_***/ws/Update***.1cws?wsdl'
по причине:
Ошибка работы с Интернет:  произошел таймаут при ожидании ответа шлюзу (504). <HTML><HEAD>
<TITLE>ERROR: The requested URL could not be retrieved</TITLE>
</HEAD><BODY>
<H1>ERROR</H1>
<H2>The requested URL could not be retrieved</H2>
<HR>
<P>
While trying to retrieve the URL:
<A HREF="http://***.ru/v82_***/ws/Update***.1cws?">http://***.ru/v82_***/ws/Update***.1cws?</A>;
<P>
The following error was encountered:
<UL>
<LI>
<STRONG>
Read Timeout
</STRONG>
</UL>

<P>
The system returned:
<PRE><I>    [No Error]</I></PRE>

<P>
A Timeout occurred while waiting to read data from the network.  The network
or server may be down or congested.  Please retry your request.
<P>Your cache administrator is <A HREF="mailto:root@***.ru">root@***.ru</A>.

по причине:
Ошибка работы с Интернет:  произошел таймаут при ожидании ответа шлюзу (504)
***********************************

Спустя время WSDL-ка получилась без проблем.
Куда дальше копать?
2 Serginio1
 
29.01.13
14:55
Делай в цикле в Попытка исключение.
3 sabiony
 
29.01.13
16:05
Проблема в том, что зависает на строчке "Новый WSОпределения".Как я понимаю, программа подвисает, ожидая ответа и не получая его.

Попытка
ВСОпределение = Новый WSОпределения(МестоположениеВСДЛ,ИмяПользователяВСДЛ,ПарольПользователяВСДЛ, Таймаут);
Исключение
[...]
4 Serginio1
 
29.01.13
16:19
(3) Тоже смутило, что исключение не вызывается в регламентном задании, тогда в консоле бы было видно что задание не завершено из за ошибки.
Но на Ws ссылке все таки исключение выдает.
Попробуй через
WSСсылки.ТвойСервис.СоздатьWSПрокси(
с таймаутом
5 sabiony
 
29.01.13
16:24
Сейчас у нас динамически WSDL-ка получается, а не жестко зашита в WSСсылке.
Попробую на тесте сделать WSСсылку и при проблемах попробовать создать WSПрокси, интересно, как отреагирует.

Я вот думаю, не может ли быть связано с настройками IIS ? Может, он перегружается как-то? Как-то можно узнать количество подключений к IIS в текущий момент времени?
6 Serginio1
 
29.01.13
16:54
Ну ссылка то идет не через IIS. IIS это сервер, а у тебя клиент через SOAP подключается к стороннему серверу
7 sabiony
 
29.01.13
17:05
Разве при запросе WSСсылки IIS не дергается? Ведь он подключается к базе-приемнику чтобы WSDL получить, причем подключается успешно, но в момент получения именно WSDL-ки виснет...а WSDL-ку я так поняла берет с помощью IIS. Нет все же?
8 Serginio1
 
29.01.13
17:42
Если и есть проблемы, то только на сервере. Для успокоения души, запусти обработку с клиента и вызывай подчлючив процедуру через  ПодключитьОбработчикОжидания
9 sabiony
 
01.02.13
10:30
Новости с фронта.
Вчера был очередной день глюков. У меня уже закономерность -если утром я вижу зависшее регламентное задание по работе с вебсервисами 1С хотябы в одной базе с 7 до 9 часов (чаще всего уже виснет на 1-3 запуск с начала работы), то весь день будут проблемы.

Что пробовала делать:
1. Подключение через статичную WSСсылку не решило проблемы.
2. Перезапускала IIS когда были зависания, проблемы не решило.
3. По рекомендации Serginio1 сделала обработку. запустив подключение на клиенте - все отлично отработало с 14 до 18, хотя в это же время зависло обычное регламентное задание. Помониторю в проблемные дни еще, посмотрим, на сколько все хорошо работает.

Что хочу попробовать сделать:
1. Поднять базу на другом сервере и дергать оттуда, если проблема останется, то поиграться с настройками. Посмотрим, что из этого выйдет.

Мне не нравится, что таймаут не срабатывает совсем, по сути он и должен решать эти все проблемы.

Нашла похожую проблему в 2010:
v8: Прерывание выполнения процедуры по таймауту
10 Serginio1
 
01.02.13
10:33
Пиши в службу поддержки