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).