Komponenta
PmRtManager slouží pro zvýšení stability a bezpečnosti běžících aplikací (zejména aplikací PROMOTIC).
Aplikace PROMOTIC jsou velmi často vytvořeny tak, aby běžely
24 hodin denně
365 dnů v roce. Často jsou tyto aplikace umístěny na vzdálených pracovištích kde obsluha přijde jen velmi zřídka. Přitom je požadováno, aby se při jakékoliv poruše systém zotavil. V tom případě, zajištěním restartu aplikace nebo celého počítače.
K tomuto účelu slouží v softwarovém světě druh programu zvaný
WatchDog (hlídací pes). Obvykle je to malý program, který slouží pro hlídaní jiných programů (v našem případě aplikací PROMOTIC). Pokud se aplikace nečekaně zastaví ("zasekne se", někdo ji zastaví, atd.), pak program
WatchDog tuto aplikaci restartuje (ukončí ji a znovu ji spustí) nebo restartuje celý počítač. Po restartu počítače také
WatchDog zajišťuje počáteční spuštění požadovaných aplikací.
V systému PROMOTIC slouží jako WatchDog nástroj PmRtManager.exe (viz
PmRtManager - Správce běžících aplikací).
Při svém spuštění
PmRtManager přečte konfiguraci ze souboru
PmRtManager.ini ve složce
\GCfg. Pak spustí požadované (hlídané) aplikace (programy), přiřadí a nastaví jim požadované počáteční hodnoty čítačů a tyto čítače pak periodicky dekrementuje. Pokud některý čítač (counter) dosáhne hodnoty 0, pak
PmRtManager předpokládá, že se aplikace "zasekla" a znovu ji restartuje (nebo restartuje celý počítač). Aby
PmRtManager aplikaci PROMOTIC opakovaně nerestartoval, musí tato aplikace periodicky volat metodu
Pm.WDogRefresh. Voláním této metody se čítače znovu nastaví na požadované počáteční hodnoty. Pokud aplikace volá metodu pravidelně, pak čítač nikdy nedosáhne hodnoty 0 (a tedy nikdy nerestartuje aplikaci).
Správce běžících aplikací
PmRtManager může běžet buď jako služba
Windows nebo jako obyčejná aplikace, nicméně spouštění, zastavování a hlídání běžících aplikací funguje stejným způsobem. Parametry programu viz
PmRtManager jako služba Windows.
Příklad:
Příklad souboru PmRtManager.ini ve složce \GCfg (pro 2 programy): [Global]
Period=1000
' Perioda dekrementace čítačů (v milisekundách)
Password=pm
' Heslo pro povolení ukončení PmRtManager.exe
WebServer=http://+:81/
' Nastaví port, na kterém pomocí HTTP lze monitorovat (pouze zobrazovat) činnost PmRtManager.
Pokud není nastaveno, pak se použije port 81.
[Program1]
' Název 1. hlídaného programu
' Parametr pro 1. hlídaný program
RestartOtherProgram=2
' Pokud PmRtManager zavře 1. program, pak zavře i program s číslem uvedeným v této položce
StartDelay=5
' Prodleva mezi spuštěním PmRtManager.exe a spuštěním 1. programu. Hodnota je v jednotkách "Period".
IniCounter=1000
' Hodnota, která se zapíše do čítače při spuštění programu. Pokud je tato hodnota 0, pak program se nehlídá. Čítač se dekrementuje (snižuje o hodnotu 1) v periodě "Period".
StopDelay=5
' Prodleva mezi ukončením a znovuspuštěním programu (nebo restartem OS Windows). Hodnota je v jednotkách "Period".
RestartWindows=0
' Pokud 1. program po spuštění ani jednou nenastaví čítač a čítač dojde k 0, pak: pokud RestartWindows=1, pak se ihned restartuje Windows, pokud RestartWindows=0, pak se pokusí 1. program zastavit a znovu spustit.
RestartProgram=-1
' Počet pokusů, kolikrát se PmRtManager pokouší uzavírat a spouštět program než restartuje celý počítač. Pokud RestartProgram=-1, pak počet pokusů není omezen.
[Program2]
Name=C:\Winnt\System32\Calc.exe
Parameter=
RestartOtherProgram=0
StartDelay=0
IniCounter=0
StopDelay=5
RestartWindows=0
RestartProgram=0
Tipy:
- Pokud nechcete program hlídat, ale pouze spustit, pak nastavte položku IniCounter=0.
- Pro zabránění restartů Windows nastavte položku RestartWindows=0 a RestartProgram=-1.
- Chceme hlídat Program1. Program2 hlídat nechceme ale chceme ho zastavovat a spouštět v závislosti na Program1.
Řešení: V souboru
PmRtManager.ini zadejte v sekci
[Program1] klíč
RestartOtherProgram=2 a v sekci
[Program2] klíč
IniCounter=0.
- Pokud je povolena položka LogEnable=1, pak jsou události PmRtManager zapisovány do souboru PmRtManager.log, který se automaticky vytvoří ve složce, kde je umístěn soubor PmRtManager.exe.
Postup při hlídání programu:
Každý hlídaný program má svůj nezávislý čítač a každý program se může nacházet v jiné fázi (v jiném stavu hlídání). Fázi programu lze zjistit v hlavním okně programu
PmRtManager nebo pomocí HTTP monitorování.
Následuje popis fází programu:
Ini - Inicializace proměnných. Pak se přejde do fáze StartDelay.
StartDelay - Pokud je zadano nenulové zpoždění StartDelay, pak PmRtManager čeká tuto dobu. Po uplynutí této doby (nebo ihned, pokud StartDelay není zadán nebo je 0), spustí PmRtManager příslušný program a naplní jemu přiřazený čítač hodnotou IniCounter. Pokud IniCounter je nenulový, pak přejde se do fáze Control. Pokud IniCounter není zadán nebo je nulový (tzn. program nemá být hlídán), pak přejde se do fáze NoControl
Control - PmRtManager pravidelně snižuje čítač s periodou zadanou v parametru Period (v PmRtManager.ini). Při snížení čítače na 0 (to znamená, že hlídaný program nestačil opětovně nastavit tento čítač), provede akci v závislosti na parametrech RestartWindows a RestartProgram (viz příklad PmRtManager.ini níže). Podle toho se přejde do fáze RequestStop nebo RestartWin.
RequestStop - PmRtManager program zastaví. Pak se přejde do fáze StopDelay.
StopDelay - PmRtManager čeká po ukončení programu (před jeho opětovným spuštěním) dobu StopDelay. Po ukončení této doby se přejde do fáze Ini.
NoProgram - Program nebyl v PmRtManager.ini zadán. PmRtManager obsluhu pro tento program zastavil.
NoControl - Program byl spuštěn a není hlídán. Položka IniCounter byla 0. PmRtManager může tento program ale zastavit a znovu spustit v závislosti na jiném programu a položce RestartOtherProgram.
RestartWin - Budou restartována OS Windows.
Upozornění!
Správce běžících aplikací
PmRtManager (nový
WatchDog) zcela nahrazuje původní program
PmWDog.exe, který už není součástí instalace PROMOTIC. Základní konfigurátory uvnitř konfiguračního souboru jsou shodné pro nový i starý
WatchDog, proto je případný přechod na nový
WatchDog jednoduchý. V zásadě tedy stačí převzít starý konfigurační soubor
PmWDog.ini, přejmenovat ho na název
PmRtManager.ini a nakopírovat ho do složky s
PmRtManager.exe programem.
Poznámka!
Vlastní spouštěcí soubor (např. soubor
autostart.bat) je nutno uložit do složky obsahující soubor
PmRtManager.exe a jeho zástupce do
Windows složky Start Up ('Při spuštění'). Viz
Program RunLater.