Hallo moelski,
Zitat von
moelski:
Was aber schon merkwürdig ist sind die Connections die TIdHTTPWebBrokerBridge offen hält.
Ich ändere das mal: die Connections die
Windows offen hält.
TIME_WAIT und 2 Minuten sind das deutliche Indiz.
Zitat von
moelski:
Müsste die nicht im Normalfall sofort verschwinden? [...] Oder sehe ich da was falsch?
1) Nein und 2) Ja.
Nach der Socket Freigabe wartet der
TCP/
IP Stack per Default 120 Sekunden für die Freigabe aus dem FD_WAIT State. Dieses Verhalten des Betriebssystems soll u.a. einer sauberen Beendigung der Kommunikation dienen.
Zitat von
moelski:
Das blöde an der Sache ist nun, das - wenn der Webservice schnell abgefragt wird - eine Menge Connections rumdümpeln und auf ihr Timeout warten.
Hat jemand eine Idee?
Ja, das ist richtig. Deswegen kann man dieses Verhalten über die Registry (insb. bei Servern) steuern. Grundlagen hier:
http://msdn.microsoft.com/en-us/library/ms819739.aspx und guter Suchbegriff ist "TcpTimedWaitDelay".
Schau auch mal, ob bei der WebBrokerBridge sowas wie ReuseSocket als Property verfügbar ist (ich weiß das jetzt nicht aus dem Kopf).
Wenn Du am Zielrechner das Verhalten änderst, mußt Du aber mit den freien Ports aufpassen. Gerade bei W2k3 oder W2k8 sind dort iirc nur Ports 1000 bis 5000 für ausgehende Kommunikation frei, da kommt man schnell als Limit.
hth,
Gruß,
Assertor