Hallo Gemeinschaft!
Ich habe eine
SOAP-Server-Anwendung geschrieben sowie 2 clients dazu, mit Hilfe derer ich Dateien als dynamisches Byte Array hin und her schicken kann.
Das hat nun schon einige Wochen fehlerfrei funktioniert, allerdings wurden nur kleine Dateien versendet. Jetzt habe ich es mal mit einer 117MB großen Datei probiert und siehe da: Ich krieg clientseitig den Fehler, dass ich zu wenig Arbeitsspeicher habe. Gut, der Rechner hier hat nur 1GB, das ist nicht viel, aber .. ich sehe auch nicht sofort, wieso es nicht reichen sollte...
Ich habe mir direkt vor der Übergabe des dyn. Byte-Arrays an die entsprechende Funktion des Servers den zur Verfügung stehenden Arbeitsspeicher ausgeben lassen: es waren 500MB.
Und sobald ich weitergeh, schnippst die Auslastung nach oben und der Client kackt ab.
Habe es dann mal an einem anderen Rechner getestet, dort waren über 850MB freier Arbeitsspeicher vorhanden, aber die waren auch nicht ausreichend.
Hier mal der Code-Ausschnitt:
Delphi-Quellcode:
cl_s_var:=GetIWebService(true);
// InstanzVar der Klasse, die die vom Server über die WSDL-Datei
// zur Verfügung gestellten Funktionen und Prozeduren enthält
screen.Cursor := crHourGlass;
try
showmessage(memstat);
// hier sagt er mir, es stehen 500MB Arbeitsspeicher zur Verfügung
ref_id:=cl_s_var.filereceiver(bda64);
// Auslastung schnippst nach oben, paar Sekunden später kommt der Fehler
finally
screen.Cursor := crDefault;
end;
Ist im Endeffekt nichts sagend, der Code, oder?
Trotzdem die Frage:
Woran kann das liegen?
Vielen Dank schonmal für Eure Mithilfe!!
MfG
hyype