![]() |
SOAP Webservice, erster Funktionsaufruf dauert ewig
Ahoi,
habe einen kleinen SOAP Webservice der an mobile Endgeräte dies und das aus einer Datenbank rausziehen soll je nach Berechtigung. Das an sich klappt wie gewünscht, SOAP Webservice und iPhone-App sind mit XE6 gebaut. Der Import der WSDL klappt auch. Mein Problem ist nun jedoch, dass die erste Funktion des Webservice die ich vom mobilen Client aus aufrufe 5x so lange braucht wie alle weiteren Aufrufe, also in konkreten Zeiten: 1. Funktionsaufruf = 3000ms, 2. u. weitere Funktionsaufrufe = 600ms. Jemand sowas schonmal gehabt ? Es liegt auch nicht an der Funktion, es ist egal welche ich als erstes aufrufe, die erste aufgerufene braucht 3 Sekunden, die 2. dann nur noch 0,6s. Code-technisch mach ich das im Client in etwa so:
Code:
function get_webservice(url: String; use_ssl: Boolean): Ivp_mobile_webservice;
var tp_prefix: String; begin if use_ssl then tp_prefix:= 'https://' else tp_prefix:= 'http://'; if (AnsiPos('http://', AnsiLowerCase(url))<>1) and (AnsiPos('https://', AnsiLowerCase(url))<>1) then url:= tp_prefix + url; Result:= getIvp_mobile_webservice(true, Url + '/wsdl/Ivp_mobile_webservice'); end; mein_webservice:= get_webservice(url, ssl_ja_nein); //1. Aufruf, dauert 3 Sekunden x:= mein_webservice.gib_mir_5(); //2. Aufruf, dauert 0,6Sekunden x:= mein_webservice.gib_mir_5(); mit SOAPUI kann ich das Problem nicht nachstellen, da dauern alle Aufrufe, auch der 1. nur um die 100ms (über LAN statt 3G + Firewall). |
AW: SOAP Webservice, erster Funktionsaufruf dauert ewig
Probier mal statt Servername die IP-Adresse.
Das Problem "erster Aufruf dauert lange" kenne ich wenn Probleme bei der Namensauflösung vorhanden sind. |
AW: SOAP Webservice, erster Funktionsaufruf dauert ewig
Wird das Interface beim ersten Aufruf erst aus dem WSDL generiert oder hast Du das importiert?
|
AW: SOAP Webservice, erster Funktionsaufruf dauert ewig
Falls die WSDL extern erreichbar ist würde ich auf dem mobilen Gerät den Webbrowser verwenden um diese zu öffnen und so die Zeit für den Verbindungsaufbau über 3G / Firewall zu testen.
|
AW: SOAP Webservice, erster Funktionsaufruf dauert ewig
Wie wird der Webservice denn gehostet? Viele Web-Services beenden Anwendungen (in dem Fall deinen Dienst) bei Inaktivität und starten sie dann erst wieder beim ersten Zugriff. Wobei man das schnell ausschließen kann, indem man die App 2x kurz hintereinander startet. Hast du auch beim zweiten Start die Verzögerung, dann kann man das als Fehlerquelle schon mal ausschließen.
|
AW: SOAP Webservice, erster Funktionsaufruf dauert ewig
Zitat:
Zitat:
|
AW: SOAP Webservice, erster Funktionsaufruf dauert ewig
Zitat:
Aber ich vermute auch dass der beim ersten Start da nochmal was holt, aber was und wo kann man das abstellen wenns nicht unbedingt nötig ist ? |
AW: SOAP Webservice, erster Funktionsaufruf dauert ewig
Zitat:
Das 2x Nacheinanderstarten hab ich probiert, keine Änderung |
AW: SOAP Webservice, erster Funktionsaufruf dauert ewig
Vermutlich werden unter iOS noch diverse dylib geladen beim ersten Start. Ansonsten erfolgt die Neugenerierung aus WSDL nur wenn Du sie mit True als erstem Parameter aufrufst, der default ist False.
|
AW: SOAP Webservice, erster Funktionsaufruf dauert ewig
Liste der Anhänge anzeigen (Anzahl: 1)
habs jetzt mal mit false statt true als ersten Parameter probiert
Code:
Aber da krieg ich den Fehler siehe Anhang. (das #2406... Version prüfen..) ist ein Fehlercode von mir damit ich weiss an welcher Stelle es geknallt hat) Mir deucht einer der 40-Tausend nicht näher dokumentierten Haken beim WSDL-Import Wizard ist falsch gesetzt ?
Result:= getIvp_mobile_webservice(false, Url + '/wsdl/Ivp_mobile_webservice');
Komisch ist auch dass der Aufruf dieser Zeile (mit true statt false) nur schlappe 50ms dauert, sollte er da nicht schon losschlagen und sich alles holen wenn das die Ursache ist? |
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:37 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz