TsgcHTTP3Server › Methoden › QPACKBlockedResumed
Meldet, wie viele Anfrage-Header-Abschnitte auf QPACK-Einfügungen blockiert und später fortgesetzt wurden.
function QPACKBlockedResumed: Integer;
Die Gesamtzahl der Anfrage-Feldabschnitte, summiert über alle aktuellen Verbindungen, die auf QPACK-Encoder-Stream-Anweisungen warten mussten und danach dekodiert und zugestellt wurden. 0, wenn noch nie eine Anfrage blockiert wurde. (Integer)
Ein QPACK-Encoder darf in einer Header-Sektion auf Einträge der dynamischen Tabelle verweisen, bevor die Anweisungen eingetroffen sind, die diese Einträge erzeugen, weil der Encoder-Stream und der Anfrage-Stream getrennte QUIC-Streams ohne Reihenfolgegarantie untereinander sind. RFC 9204 Abschnitt 2.2.1 bezeichnet einen solchen Anfrage-Stream als blockiert. Statt fehlzuschlagen, puffert der Server die Header-Sektion (und alle DATA- oder Trailer-Frames, die ihr auf demselben Stream folgen), wartet, bis der QPACK-Encoder-Stream des Clients die fehlenden Einfügungen liefert, dekodiert dann die Header und spielt die eingereihten Frames der Reihe nach ab, sodass OnH3Request weiterhin eine normale, korrekt geordnete Anfrage sieht.
QPACKBlockedResumed zählt, wie oft dieser Wiederherstellungspfad abgeschlossen wurde. Anders als QPACKDynamicInserts ist es eine Summe über alle Verbindungen, da es die Gesamtzahl der Vorkommen misst und nicht die auf einer einzelnen Verbindung erreichte Tiefe.
Dies ist ein Diagnosezähler für Überprüfung, Tests und Protokollierung; er beeinflusst das Protokoll nicht. Ein Wert ungleich null ist bei Clients normal, die eine aggressive Kodierung mit der dynamischen Tabelle verwenden, und bestätigt lediglich, dass die Behandlung blockierter Streams funktioniert. Bei Clients, die die dynamische QPACK-Tabelle nicht verwenden, wächst er nie.
Dieses Mitglied ist derzeit nur in der Delphi/C++Builder-Implementierung verfügbar.
Log('QPACK blocked-then-resumed sections: ' +
IntToStr(oServer.QPACKBlockedResumed));