Этот баннер — требование Роскомнадзора для исполнения 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 |
|
||
|
Нестабильно работает SOAP метод
|
|||
|---|---|---|---|
|
#18+
Вот ответ из WRC: I think the error is exactly what is says: ERROR #6059: Unable to open TCP/IP socket to server localhost:80 I have tested for more than two hours and got similar errors, but sporadically - about 20 in this period. Not sure yet but it looks that webserver is not able to open new connection for incoming request. The error comes from the OPEN command in %Net.HttpRequest.Open() method: Open "|TCP|"_dev:(server:port:"SCWD"::8192:8192:/TCPNOXY):$zobjval(,/*Timeout*/26,0,3,26) Set sucess=$T I will investigate it later, it looks like somehow related to custom error trapping in AddInteger client method because I don't get this error when testing non change DemoProxy class. Continue tomorrow. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2008, 13:13 |
|
||
|
Нестабильно работает SOAP метод
|
|||
|---|---|---|---|
|
#18+
Вы это на какой системе запускали? Если Windows * Professional, то там стоит ограничение на 10 tcp-соединений одновременных, может в этом проблема? Если серверные дистрибутивы или unix, то там такой проблемы не должно быть. Поищите как настраивается этот параметр, в интернете встречаются описания. Второй возможный источник ошибок - CSP NSD, который они все пилят с третьей версии каше, да никак не допилят. =Сергей Шутов ООО Димас, Хабаровск Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.12.2008, 03:27 |
|
||
|
|

start [/forum/topic.php?all=1&fid=39&tid=1558623]: |
0ms |
get settings: |
5ms |
get forum list: |
8ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
49ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
46ms |
get tp. blocked users: |
1ms |
| others: | 195ms |
| total: | 317ms |

| 0 / 0 |
