Izolowane od awarii procesy CODEC-ów

HotPDF może przenieść dekodowanie obrazów wysokiego ryzyka DCTDecode, JPXDecode i JBIG2Decode poza proces nadrzędny

Tryby izolacji

Gdy dostępny proces roboczy przyjmie żądanie, cimAutomatic nie ponawia nieudanych ani złośliwych danych wejściowych w procesie nadrzędnym

Granica procesu

Każde żądanie dekodowania przebiega w świeżym ukrytym procesie przypisanym do jednoprocesowego obiektu Job systemu Windows

Konfiguracja

PDF.CodecIsolationMode := cimRequired;
PDF.CodecWorkerExecutable :=
  'C:\Program Files\MyApp\HotPDFCodecWorker.exe';
PDF.CodecWorkerTimeoutMilliseconds := 5000;
PDF.CodecWorkerMemoryLimitBytes := 256 * 1024 * 1024;

Bitmap := PDF.ExtractLoadedImage(0);
if Bitmap = nil then
begin
  PDF.GetLastCodecWorkerInfo(Info);
  Writeln(Ord(Info.Status), ': ', Info.ErrorMessage);
end;

Pusty CodecWorkerExecutable zostaje rozpoznany jako HotPDFCodecWorker.exe obok bieżącej aplikacji

Telemetria

GetLastCodecWorkerInfo raportuje status, identyfikator procesu, kod zakończenia, upływające milisekundy i ograniczoną diagnostykę po stronie nadrzędnej

GetLastJPEGReducedDecodeInfo raportuje geometrię źródła, skalowania, wyniku i linii skanowania po izolowanym żądaniu zredukowanego JPEG

Odrębne statusy obejmują procesy robocze niedostępne lub niemożliwe do uruchomienia, limit czasu, awarię, odrzucenie dekodowania, niezgodność protokołu i limity wyników dekodowania

Budowanie i wdrażanie

build-HotPDF-Codec-Worker.cmd

Polecenie budowania wytwarza osobne procesy robocze Win32 i Win64 w katalogu tools\CodecWorker\<platform>\Release; wdrażaj proces roboczy zgodny z architekturą procesu nadrzędnego

Powiązane API