Nuo gedimų izoliuoti kodeko darbuotojai
HotPDF gali perkelti didelės rizikos DCTDecode, JPXDecode ir JBIG2Decode paveikslo dekodavimą iš pagrindinio proceso
Izoliacijos režimai
cimAutomaticyra numatytasis ir naudojaHotPDFCodecWorker.exe, kai jis yra šalia pagrindinio vykdomojo failo, kitaip palieka suderinamą proceso viduje keliącimRequiredžlunga saugiai, kai darbuotojas trūksta, negali pradėti, sugriūva, pasibaigia laikui, atmeta įvestį arba viršija išvesties ribącimDisabledvisada naudoja esamus proceso viduje dekodavimo įrenginius
Kai prieinamas darbuotojas priima užklausą, cimAutomatic nebandys pakartotinai nesėkmingo arba kenkėjiško įvesties pagrindiniame procese
Proceso riba
Kiekviena dekodavimo užklausa veikia naujame paslėptame procese, priskirtame vienam-procesui Windows Job objektui
- Job objektas nutraukia darbuotoją ir bet kokius bandytus palikuonis, kai uždaromas jo aprašas
CodecWorkerMemoryLimitBytestaiko vienam-procesui įsipareigotos atminties lubas ir pagal numatymą yra 512 MiBCodecWorkerTimeoutMillisecondspagal numatymą yra 10 000 ms ir nutraukia pakibusį darbuotoją- Koduota įvestis, pasirinktinai JBIG2 globalai ir BGR24 išvestis naudoja vieną atsitiktinai pavadintą bendrinamos atminties atvaizdavimą su versijuotu fiksuoto pločio protokolu
- Dekoduotos išvesties talpa yra apribota deklaruotos paveikslo geometrijos ir
DecodeBudgetBytes - Žemos skiriamosios gebos JPEG užklausos neša tikslius tikslinius matmenis ir grąžina redukuotą-DCT geometriją nesuformuodamos visos skiriamosios gebos darbuotojo rastro
Konfigūracija
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;
Tuščias CodecWorkerExecutable išsprendžiamas į HotPDFCodecWorker.exe šalia dabartinės programos
Telemetrija
GetLastCodecWorkerInfo praneša būseną, proceso identifikatorių, išėjimo kodą, praėjusias milisekundes ir apribotą pagrindinės pusės diagnostiką
GetLastJPEGReducedDecodeInfo praneša šaltinio, mastelio, išvesties ir skenavimo linijos geometriją po izoliuotos redukuotos JPEG užklausos
Atskiri statusai apima neprieinamus arba nepaleidžiamus darbuotojus, laiko pabaigą, gedimą, dekodavimo atmetimą, protokolo neatitikimą ir dekoduotos išvesties ribas
Sudarymas ir diegimas
build-HotPDF-Codec-Worker.cmd
Sukūrimo komanda išveda atskirus Win32 ir Win64 darbuotojus po tools\CodecWorker\<platform>\Release; diekite darbuotoją, atitinkantį pagrindinio proceso architektūrą