|
![]() | Trasování a logování činnosti serveru | ![]() | Provoz a správa 602SQL serveru | Zámky a zamykání | ![]() |
Systémové triggery jsou uložené procedury automaticky spouštěné serverem, pokud nastane určitá událost.
Systémové triggery mají předepsaná jména a parametry. Jméno triggeru určuje, při jaké události bude spuštěn.
Všechny tyto procedury musí být umístěny do aplikace _SYSEXT mezi procedury uložené na serveru (nikoli mezi triggery, tam patří pouze triggery svázané s databázovými tabulkami). Výjimku tvoří procedury _on_server_stop_appl a _on_server_start_appl, které jsou součástí konkrétní aplikace. Při definování procedury fungující jako systémový trigger je nutno dodržet předepsaný počet a typy parametrů, jinak procedura nebude zavolána.
Pokud systémová procedura volá proceduru uloženou v některé aplikaci, musí se její jméno prefixovat jménem této aplikace.
PROCEDURE _on_server_start()
Procedura bude zavolána při spuštění SQL serveru. Procedura se zavolá v samostatném vlákně, takže server nebude čekat na její dokončení, a bude schopen obsluhovat klienty za jejího běhu.
Je-li akce, která se má provést při startu serveru, spojená s jedinou aplikací, je možné v této aplikaci vytvořit proceduru _on_server_start_appl se stejným významem.
Procedura se spustí pod účtem skupiny Config_admin.
PROCEDURE _on_server_stop()
Procedura bude zavolána při ukončování SQL serveru. Ukončení serveru se pozdrží do doby, dokud tato procedura neskončí.
Je-li akce, která se má provést při ukončení serveru, spojená s jedinou aplikací, je možné v této aplikaci vytvořit proceduru _on_server_stop_appl se stejným významem.
Procedura se spustí pod účtem skupiny Config_admin.
PROCEDURE _on_login_change(IN old_logname CHAR(31), IN new_logname CHAR(31))
Procedura se zavolá, kdykoli se klient přihlašuje nebo mění své uživatelské jméno. Činnost klienta se pozdrží do dokončení této procedury. Právo provádět tuto proceduru by měl mít každý klient. Nemá-li klient právo provést tuto proceduru, nastane chyba, ale klient se přesto přihlásí.
Procedura se provádí s právy nového uživatele.
PROCEDURE _on_backup(IN pathname CHAR(254), IN success Boolean)
Procedura se zavolá, když server vytváří kopii svého databázového souboru. V parametru pathname dostane jméno souboru, do něhož se kopie zapisuje (s plnou cestou), v parametru success je TRUE, pokud se kopii podařilo vytvořit, FALSE při chybě.
Případná komprimace zálohy a přesun na jiné médium se provádí až po provedení této procedury v asynchronním (neblokujícím) vlákně.
Procedura se spustí pod účtem skupiny Config_admin.
Procedury _on_server_start, _on_server_stop, _on_backup se provádějí s právy provozního správce databáze (skupiny Config_admin). Procedura _on_server_start může spustit samostatná vlákna, která budou provádět různé práce pro aplikace běžící na serveru, procedura _on_server_stop může ukončit činnost těchto vláken. Procedura _on_backup může například při chybě odeslat dopis správci.
Tyto procedury může vytvořit nebo modifikovat uživatel obsazený do role Author v aplikaci _sysext. Iniciálně je do této role obsazena skupina provozních správců Config_admin.
Spouštění procedur systémovými událostmi lze vypnout při startu serveru pomocí parametru příkazové řádky -Q (pro Windows server), resp. parametru -q (pro Linux server). Toto vypnutí se využije v případě, pokud se podařilo vytvořit proceduru, která způsobuje pád nebo zacyklení SQL serveru.
Seznam subsekcí:
![]() | Trasování a logování činnosti serveru | ![]() | Provoz a správa 602SQL serveru | Zámky a zamykání | ![]() |