Eine Antwort, die gelegentlich ein paar Bytes liefert, kann innerhalb jedes Lese-Inaktivitätslimits bleiben, während sie insgesamt viel zu lange dauert. Ein Lese-Timeout muss nicht die gesamte Übertragungsdauer messen.

Wählen Sie die Richtlinie nach der Arbeitslast. Ein endliches Archiv braucht ein Abschlussbudget; ein Ereignisstrom kann legitim stundenlang weiterlaufen und zeitweise still sein.

Nützlichen Fortschritt messen

Behalten Sie bei einem Dateidownload eine Gesamtfrist bei und erwägen Sie die vom Client unterstützten Niedriggeschwindigkeits- oder Fortschrittssteuerungen. Legen Sie das Intervall und die Menge nützlicher Daten fest. Ein Heartbeat-Byte kann Aktivität zeigen, ohne echten Fortschritt beim Abschluss der Datei zu machen.

Halten Sie den Tunnelaufbau vom Body-Transfer getrennt. Auf den Abschluss von CONNECT zu warten und einen langsamen Ziel-Body zu empfangen, sind verschiedene Phasen mit unterschiedlichen Beweisen.

Verbrauchen oder schließen Sie die Antwort auf jedem Ausstiegspfad. Ein langsamer Stream, der offen bleibt, kann die nächste Anfrage auf Pool-Kapazität warten lassen, was aus einem anderen Grund einen weiteren Timeout erzeugt.

Wenn die beobachtete Dauer die vorgesehene Richtlinie überschreitet, prüfen Sie die genaue Client-Version und die Leseschleife. Ein korrekt funktionierender Inaktivitäts-Timer, das Verhalten einer benutzerdefinierten Schleife und ein Implementierungsfehler erfordern jeweils unterschiedliche Korrekturen.

Ähnliche Artikel