TsgcWebSocketServer_HTTPAPI › Eigenschappen › FineTune
Kernelmodus-knoppen op laag niveau die bepalen hoe http.sys aanvragen in de wachtrij plaatst, verwerkt en afhandelt.
property FineTune: TsgcServerHTTPAPI_FineTune read FFineTune write SetFineTune;
QueueLength=1000, SkipIOCPOnSuccess=False, OperatingMode=ompClassic, HighPerfAcceptsPerWorker=4
QueueLength is de diepte van de kernel-aanvraagwachtrij (HttpServerQueueLengthProperty); wanneer vol, antwoordt http.sys met 503 Service Unavailable zonder gebruikersmodus te betrekken — verhoog dit om herverbindingsbursts op te vangen (tot 65535). SkipIOCPOnSuccess schakelt FILE_SKIP_COMPLETION_PORT_ON_SUCCESS in op de aanvraagwachtrij zodat synchrone successen inline worden verzonden zonder een IOCP-pakket (genegeerd op Windows XP). OperatingMode kiest tussen ompClassic (enkele acceptorthread + PostQueuedCompletionStatus, historisch gedrag) en ompHighPerf (Microsoft's MSDN HP-patroon: geen acceptor, ThreadPoolSize x HighPerfAcceptsPerWorker vooraf geplaatste async-ontvangsten op de wachtrij-gebonden IOCP); wijzig alleen voor activering. HighPerfAcceptsPerWorker (standaard 4) vergroot het vooraf geplaatste ontvangstvenster voor hoge gelijktijdigheidsbelasting — elke vooraf geplaatste ontvangst houdt een buffer van ReadBufferSize vast totdat deze is voltooid. Zie de handleiding HTTPAPI FineTune voor een volledige bespreking.
oServer := TsgcWebSocketServer_HTTPAPI.Create(nil);
oServer.Host := '0.0.0.0';
oServer.Port := 8080;
// high-concurrency IoT backend
oServer.FineTune.QueueLength := 10000;
oServer.FineTune.OperatingMode := ompHighPerf;
oServer.FineTune.HighPerfAcceptsPerWorker := 8;
oServer.FineTune.SkipIOCPOnSuccess := true;
oServer.Active := true;