AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke SOAP Webservice, erster Funktionsaufruf dauert ewig
Thema durchsuchen
Ansicht
Themen-Optionen

SOAP Webservice, erster Funktionsaufruf dauert ewig

Ein Thema von moe120 · begonnen am 8. Mai 2014 · letzter Beitrag vom 11. Mai 2014
Antwort Antwort
Seite 1 von 2  1 2      
moe120

Registriert seit: 1. Okt 2012
Ort: Radeberg
34 Beiträge
 
Delphi XE6 Enterprise
 
#1

SOAP Webservice, erster Funktionsaufruf dauert ewig

  Alt 8. Mai 2014, 16:17
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).
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.171 Beiträge
 
Delphi 10.4 Sydney
 
#2

AW: SOAP Webservice, erster Funktionsaufruf dauert ewig

  Alt 8. Mai 2014, 19:08
Probier mal statt Servername die IP-Adresse.
Das Problem "erster Aufruf dauert lange" kenne ich wenn Probleme bei der Namensauflösung vorhanden sind.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Benutzerbild von Union
Union

Registriert seit: 18. Mär 2004
Ort: Luxembourg
3.487 Beiträge
 
Delphi 7 Enterprise
 
#3

AW: SOAP Webservice, erster Funktionsaufruf dauert ewig

  Alt 8. Mai 2014, 19:52
Wird das Interface beim ersten Aufruf erst aus dem WSDL generiert oder hast Du das importiert?
Ibi fas ubi proxima merces
sudo /Developer/Library/uninstall-devtools --mode=all
  Mit Zitat antworten Zitat
mjustin

Registriert seit: 14. Apr 2008
3.005 Beiträge
 
Delphi 2009 Professional
 
#4

AW: SOAP Webservice, erster Funktionsaufruf dauert ewig

  Alt 9. Mai 2014, 07:01
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.
Michael Justin
  Mit Zitat antworten Zitat
mquadrat

Registriert seit: 13. Feb 2004
1.113 Beiträge
 
Delphi XE2 Professional
 
#5

AW: SOAP Webservice, erster Funktionsaufruf dauert ewig

  Alt 9. Mai 2014, 11:57
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.
  Mit Zitat antworten Zitat
moe120

Registriert seit: 1. Okt 2012
Ort: Radeberg
34 Beiträge
 
Delphi XE6 Enterprise
 
#6

AW: SOAP Webservice, erster Funktionsaufruf dauert ewig

  Alt 9. Mai 2014, 14:34
Probier mal statt Servername die IP-Adresse.
Das Problem "erster Aufruf dauert lange" kenne ich wenn Probleme bei der Namensauflösung vorhanden sind.
hab in dem Einstellungsfeld in meiner App von Hause aus schon eine IP statt Servernamen drin stehen. Das kann es also nicht sein.


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.
guter Hinweis, danke, hab ich probiert aber ... möööp .. Seite mit den WSDL Infos ist in Null komma Nix geladen

Geändert von moe120 ( 9. Mai 2014 um 14:52 Uhr)
  Mit Zitat antworten Zitat
moe120

Registriert seit: 1. Okt 2012
Ort: Radeberg
34 Beiträge
 
Delphi XE6 Enterprise
 
#7

AW: SOAP Webservice, erster Funktionsaufruf dauert ewig

  Alt 9. Mai 2014, 14:38
Wird das Interface beim ersten Aufruf erst aus dem WSDL generiert oder hast Du das importiert?
die Interface-Sektion des Webservice hab ich bereits per Wizard in das Delphiprojekt importiert (Datei>Neu>Weitere>Webservice>WSDL Import), d.h. alle Funktionen und Parameter sollten bekannt sein.

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 ?
  Mit Zitat antworten Zitat
moe120

Registriert seit: 1. Okt 2012
Ort: Radeberg
34 Beiträge
 
Delphi XE6 Enterprise
 
#8

AW: SOAP Webservice, erster Funktionsaufruf dauert ewig

  Alt 9. Mai 2014, 14:42
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.
der webservice liegt als .exe im inetpub-Verzeichnis eines IIS, wenn ich die App für Windows compiliere statt aufs iPhone dann hab ich diese Anfangsverzögerung nicht. Ebenfalls kann ich mit der WindowsApp problemlos SSL nutzen was beim iPhone zu einem Fehler führt. (WSDL-Datei/-Ort kann nicht geladen werden: .... Fehler [Wert für IOHandler ist ungültig]) das sollte eig. laut Embarcadero mit XE5 Update1 behoben worden sein aber wurde es wohl nicht.

Das 2x Nacheinanderstarten hab ich probiert, keine Änderung

Geändert von moe120 ( 9. Mai 2014 um 14:46 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Union
Union

Registriert seit: 18. Mär 2004
Ort: Luxembourg
3.487 Beiträge
 
Delphi 7 Enterprise
 
#9

AW: SOAP Webservice, erster Funktionsaufruf dauert ewig

  Alt 9. Mai 2014, 14:50
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.
Ibi fas ubi proxima merces
sudo /Developer/Library/uninstall-devtools --mode=all
  Mit Zitat antworten Zitat
moe120

Registriert seit: 1. Okt 2012
Ort: Radeberg
34 Beiträge
 
Delphi XE6 Enterprise
 
#10

AW: SOAP Webservice, erster Funktionsaufruf dauert ewig

  Alt 9. Mai 2014, 14:58
habs jetzt mal mit false statt true als ersten Parameter probiert
Code:
Result:= getIvp_mobile_webservice(false, Url + '/wsdl/Ivp_mobile_webservice');
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 ?

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?
Miniaturansicht angehängter Grafiken
wsdl.png  
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:15 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz