Einzelnen Beitrag anzeigen

Benutzerbild von GuenterS
GuenterS

Registriert seit: 3. Mai 2004
Ort: Österreich > Bad Vöslau
760 Beiträge
 
Turbo Delphi für Win32
 
#1

Indy 9 HttpServer Thread Frage

  Alt 2. Feb 2008, 11:03
Hallo,

ich experementiere gerade etwas mit den Indy Komponenten herum. Derzeit verwendet wir ein Apache Modul, welches ich gerne durch einen eigenen Dienst ersetzen würde. Das Apache Modul hat ursprünglich Aufrufe entgegengenommen und entsprechend derer Aktionen gestartet, wie zubereitung eines XML Files und versand dieses an eine andere Adresse. Es war also nicht der typische Webserver, der einem Browser HTML Seiten zur Ansicht übermittelt.

Ich wollte nun halt mal testen wie gut die HTTPServer Komponente von Indy (Version 9) mit massiven Anfragen umgehen kann und ob es auch die Reihenfolge einhalten kann und tut.

Dazu habe ich mir ein kleines Testtool geschrieben, welches Server und Client zugleich ist.

Bei jeder Anfrage soll in einem bestimmten Verzeichnis eine Text-Datei angelegt werden, in welcher die Zahlen 0-5000 stehen. Das Interessante ist jedoch der Dateiname. Angefangen wird dieser mit einer Zahl welcher einem internen Zähler des Webservers entspricht + dem Teil welcher aus der Anfrage (QueryParams) kommt.

Wenn man eine Anfrage an diesen Server schickt in der Form http://..../?test1 dann wird eine Datei, je nach internem Zählerstand des Webservers, 1_test1.txt erzeugt.

Das schicken der Anfragen wird in eigenen Threads erzeugt, da sonst ja auf beendigung der Get Anfrage gewartet wird.

Für jeden Aufruf wird ein andere Parameter übergeben (die Zahl vor dem .txt wird erhöht).

Wenn alles korrekt funktionieren würde, hätte ich mir Dateien in der Form

0_test0.txt
1_test1.txt
2_test2.txt
usw.

erwaratet.
Diese wurde auch teilweise erfüllt, allerdings nicht bei allen. Komischerweise sind zwar alle Dateien angelegt worden, es wurde keine vergessen, jedoch spielt der Zähler im Webserver etwas verrückt (wird nicht immer erhöht).

So bekomme ich bsp. Dateien wie
0_test0.txt
1_test1.txt
1_test2.txt
1_test3.txt
2_test4.txt

Ich hänge das Projekt inklusive der ausführbaren Datei mal gezippt an. Ich habe es mit Delphi7 Professional erstellt.

Wäre toll, wenn jemand wüßte was da falsch läuft.
Angehängte Dateien
Dateityp: zip httpserver_448.zip (270,8 KB, 9x aufgerufen)
Günter
Pünktlichkeit ist die Fähigkeit vorherzusagen um wieviel sich der Andere verspäten wird.
  Mit Zitat antworten Zitat