Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Нестабильно работает SOAP метод
|
|||
|---|---|---|---|
|
#18+
М.б кто уже сталкивался: в цикле идет вызов SOAP метода. Метод из области SAMPLES. SOAP.DemoProxy.AddInteger. Через некоторый промежуток времени выдается ошибка. ОШИБКА #6059: Не удалось открыть TCP/IP сокет к серверу localhost:80<COMMAND>Soap+11^test Промежутки времени бывают различными. Может работать 5 минут, может и 1,5 часа, но ошибка та же. Причем, если загнать вызов сервиса в цикл и при этой ошибке делать новый вызов, даже с повторной авторизацией, все равно выдается та же ошибка. А если перезапустить программу, то опять работает (и опять вылетает). Запускаю из терминала: Soap() set $zt="Error" new z,%sc,x,i set z=##class(SOAP.DemoProxy).%New() write !,"begin "_$ZDT($h,4) set %sc=z.WSSecurityLogin("test","test") if '%sc { do $system.OBJ.DisplayError(%sc) quit } for i=1:1 { set x=z.AddInteger(i,1) } write !,"end "_$ZDT($h,4) quit Error set $zt="" write $zerror write !,"end "_$ZDT($h,4) break quit Собственно, задал вопрос в WRC, но м.б. удастся раньше понять, где собака порылась :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.12.2008, 10:14 |
|
||
|
Нестабильно работает SOAP метод
|
|||
|---|---|---|---|
|
#18+
в методе z.WSSecurityLogin("test","test") гдето не прописан возврат, ето мампсовая ошибка, учите мат часть ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.12.2008, 11:05 |
|
||
|
Нестабильно работает SOAP метод
|
|||
|---|---|---|---|
|
#18+
ceshka, можно подробнее для "особо одаренных"? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.12.2008, 12:31 |
|
||
|
Нестабильно работает SOAP метод
|
|||
|---|---|---|---|
|
#18+
Ivan.Kokovceshka, можно подробнее для "особо одаренных"? в z.WSSecurityLogin("test","test") гдето стоит просто q (возможно в несколькиъх местах), а должно стоять q result или чего она там по задумке вернуть должна ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.12.2008, 12:57 |
|
||
|
Нестабильно работает SOAP метод
|
|||
|---|---|---|---|
|
#18+
Ошибка Код: plaintext Вследствии вызова процедуры как функции. Т.е. ожидается некий возврат значения, а собствено возврата-то и нет. Например: Код: plaintext 1. 2. 3. 4. 5. 6. 7. Cache for Windows (x86-32) 2007.1.3 (Build 607) Wed Oct 17 2007 02:12:09 EDT ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.12.2008, 13:03 |
|
||
|
Нестабильно работает SOAP метод
|
|||
|---|---|---|---|
|
#18+
В тексте данного метода два set'a и quit $$$OK. Это метод системного %SOAP.WebClient, в результате выполнения которого при вызовах сервиса к запросам подцепляется токен и отпадает необходимость в повторной авторизации в пределах сеанса. Method WSSecurityLogin(Username As %String, Password As %String) As %Status { Set ..Username=Username Set ..Password=Password Quit $$$OK } затем в вызове InvokeClient() используется метод Method MakeSecurityHeader() [ Internal, Private ] { If $isobject(i%SecurityOut) && (i%SecurityOut.FindElement("UsernameToken")'="") Quit Set token=##class(%SOAP.Security.UsernameToken).Create(..Username,..Password) Do ..SecurityOut.AddToken(token) Quit } Можно предположить, что сокет как-то действительно блокируется для данного сеанса. Пока нет других идей, на всякий случай попробую программно грохнуть идентификатор сессии и заново подцепиться ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.12.2008, 13:23 |
|
||
|
Нестабильно работает SOAP метод
|
|||
|---|---|---|---|
|
#18+
Дошло, о чем вы мне втолковываете :) Согласен, там я косячил :( Но суть вопроса в другом: у меня обламывается сервис, причем через разные периоды времени. И я не могу понять, по какой причине и как с этим бороться. Причем на локалхосте и из примеров интерсистемс. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.12.2008, 13:38 |
|
||
|
Нестабильно работает SOAP метод
|
|||
|---|---|---|---|
|
#18+
Ivan.KokovДошло, о чем вы мне втолковываете :) Согласен, там я косячил :( Но суть вопроса в другом: у меня обламывается сервис, причем через разные периоды времени. И я не могу понять, по какой причине и как с этим бороться. Причем на локалхосте и из примеров интерсистемс. Soap+11^test тоже из примеров ИС? Причина тоже где-то рядом, а ваще мало информации... Как именно обламываеццо и т.д..... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.12.2008, 13:42 |
|
||
|
Нестабильно работает SOAP метод
|
|||
|---|---|---|---|
|
#18+
ceshka, попробую подробнее Собственно, в области SAMPLES есть пример работы с SOAP Пакет SOAP содержит определение класса сервиса SOAP.Demo. В частности, имеется метод AddInteger(Arg1,Arg2), который quit Arg1+Arg2 Пакет SOAP содержит определение класса клиента SOAP.DemoProxy, который умеет вызывать этот метод AddInteger из SOAP.Demo Я сделал программку, которая создает экземпляр клиента set z=##class(SOAP.DemoProxy).%New() Затем в цикле вызываю метод AddInteger for i=1:1 { set x=z.AddInteger(i,1) } Оный работает и возвращает значения до поры-до времени, а потом возвращает ошибку ОШИБКА #6059: Не удалось открыть TCP/IP сокет к серверу localhost:80 в последний раз i успела добежать до 80 с лишним тысяч Строчка <COMMAND>Soap+11^test - это результат строчки write $ZERROR Не осознал еще причины ее возникновения, но все же смею предположить: не впрямую из-за Soap^test() ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.12.2008, 14:13 |
|
||
|
Нестабильно работает SOAP метод
|
|||
|---|---|---|---|
|
#18+
Ivan.Kokov , колись. Показывай текст программтки test начиная от метки Soap... ---------- Cache for Windows (x86-32) 2007.1.3 (Build 607) Wed Oct 17 2007 02:12:09 EDT ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.12.2008, 14:28 |
|
||
|
Нестабильно работает SOAP метод
|
|||
|---|---|---|---|
|
#18+
Ivan.Kokov Затем в цикле вызываю метод AddInteger Код: plaintext 1. 2. 3. с моей лично точки зрения, она (программа) отсюда не выйдет для начала, или так и должно быть? ее кто-то в z.AddInteger срубит? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.12.2008, 14:36 |
|
||
|
Нестабильно работает SOAP метод
|
|||
|---|---|---|---|
|
#18+
krvsa Ivan.Kokov , колись. Показывай текст программтки test начиная от метки Soap... ---------- Cache for Windows (x86-32) 2007.1.3 (Build 607) Wed Oct 17 2007 02:12:09 EDT Ладно, раскололи. Теперь явка с повинной :) Полный текст программы Soap^test вы можете увидеть вначале топика ceshkaIvan.Kokov Затем в цикле вызываю метод AddInteger Код: plaintext 1. 2. 3. с моей лично точки зрения, она (программа) отсюда не выйдет для начала, или так и должно быть? ее кто-то в z.AddInteger срубит? Все дело в том, что я изначально был уверен, что метод завалится, поскольку применял аналог на реальном переборе из БД. Массив около миллиона записей, на каждую по три Soap-метода вызвать надо. Такая вот тоска. :( Мало того, что медленно, дак еще и валится. Так что цикл я и не пытался ограничить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.12.2008, 16:07 |
|
||
|
Нестабильно работает SOAP метод
|
|||
|---|---|---|---|
|
#18+
Ivan.Kokov, топик надо перименовать, метод работает стабильно, проблемма - в другом... я чот плохо понимаю, как, если было <COMMAND>Soap+11^test, программа доходила до Код: plaintext 1. 2. 3. ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.12.2008, 16:19 |
|
||
|
Нестабильно работает SOAP метод
|
|||
|---|---|---|---|
|
#18+
Вообще-то Soap+11 указывает на Код: plaintext 1. Код: plaintext Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.12.2008, 17:01 |
|
||
|
Нестабильно работает SOAP метод
|
|||
|---|---|---|---|
|
#18+
Alexey MaslovВообще-то Soap+11 указывает на Код: plaintext 1. Код: plaintext Код: plaintext сорри, обсчитался, тада ваще всё просто, чото в методе z.AddInteger(i,1) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.12.2008, 17:09 |
|
||
|
Нестабильно работает SOAP метод
|
|||
|---|---|---|---|
|
#18+
ceshka, Я еще раз, коллеги: ОШИБКА #6059: Не удалось открыть TCP/IP сокет к серверу localhost:80 Давайте обсудим эту ошибку. Почему она возникла и как с этим бороться? Насчет <COMMAND> я уже все понял: Там я в модуле запроса AddInteger вставил $ZT и в трапе - обработку,содержащую write $system.OBJ.DisplayError(%sc), где %sc - статус возврата метода сервиса AddInteger. Завершил обычным quit'ом - вот и получил <COMMAND> Определенно - мой косяк. Но это - не главное! ОШИБКА #6059: Не удалось открыть TCP/IP сокет к серверу localhost:80 - вот это меня волнует и тревожит, т.к. не вижу причин ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.12.2008, 17:32 |
|
||
|
Нестабильно работает SOAP метод
|
|||
|---|---|---|---|
|
#18+
Ivan.Kokov, TCP/IP сессии параллельные или последовательные? /*возможно туплю*/ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.12.2008, 17:43 |
|
||
|
Нестабильно работает SOAP метод
|
|||
|---|---|---|---|
|
#18+
а что ты имеешь ввиду под параллельными и последовательными сессиями? (тоже туплю) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.12.2008, 18:01 |
|
||
|
Нестабильно работает SOAP метод
|
|||
|---|---|---|---|
|
#18+
в рамках одной сессии последовательно выполняются запросы если обрывается соединение, то хочется создать новую сессию и продолжить с прерванного места ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.12.2008, 18:02 |
|
||
|
Нестабильно работает SOAP метод
|
|||
|---|---|---|---|
|
#18+
Ivan.Kokovв рамках одной сессии последовательно выполняются запросы если обрывается соединение, то хочется создать новую сессию и продолжить с прерванного места перегрузицца))) попробуй запускать запрос в отдельный процесс (в целях отладки), и при этом фиксируй: вот он запущен, вот он отработал, можно пустить следующий, и посмотри все его параметры, в методе, в котором происходит ошибка тоже что-то происходит, может данные некорректно формируются на какой-то записи/строке ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.12.2008, 18:15 |
|
||
|
Нестабильно работает SOAP метод
|
|||
|---|---|---|---|
|
#18+
Ошибка происходит в методе %SOAP.WebClient.DoSOAPRequest() Примерно здесь: If (response.StatusCode'="200") && (response.StatusCode'="500") { Quit $$$ERROR($$$SOAPUnexpectedStatus,response.StatusCode) } Завтра буду убеждаться, что здесь собака и порылась ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.12.2008, 18:33 |
|
||
|
Нестабильно работает SOAP метод
|
|||
|---|---|---|---|
|
#18+
Спасибо всем, Голова бела от пепла :) поаккуратнее написал $zt. Все медленно и верно крутится, хотя ошибка 6059 все же появляется периодически. "Его пример другим наука... " (т.е. мой :)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2008, 09:24 |
|
||
|
Нестабильно работает SOAP метод
|
|||
|---|---|---|---|
|
#18+
Ivan.Kokov, чот я не понел, ошибка есть, чо стало лучше? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2008, 10:07 |
|
||
|
Нестабильно работает SOAP метод
|
|||
|---|---|---|---|
|
#18+
Ivan.KokovСобственно, задал вопрос в WRC, но м.б. удастся раньше понять, где собака порылась :) А ответ из WRC получили? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2008, 12:18 |
|
||
|
Нестабильно работает SOAP метод
|
|||
|---|---|---|---|
|
#18+
Просто острота вопроса снята тем, что я теперь игнорирую эту ошибку и отправляю повторный запрос в случае ее возникновения. Ответ из WRC получил, что будут искать причину возникновения ошибки 6059 Теперь я могу не спеша и с удовольствием и сам покопаться с этим вопросом. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2008, 13:00 |
|
||
|
|

start [/forum/topic.php?fid=39&msg=35717930&tid=1558623]: |
0ms |
get settings: |
6ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
56ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
76ms |
get tp. blocked users: |
2ms |
| others: | 210ms |
| total: | 381ms |

| 0 / 0 |
