602SQL-┌plnß dokumentace Index   Tisk  

SystΘmovΘ triggery

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). 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.

ReplikaΦnφ systΘmovΘ triggery (_on_replpacket_sent a _on_replpacket_received) se volajφ jen v p°φpad∞, ₧e je to explicitn∞ povoleno p°i nastavovßnφ parametr∙ replikacφ.

Pokud systΘmovß procedura volß proceduru ulo₧enou v n∞kterΘ aplikaci, musφ jejφ jmΘno prefixovat jmΘnem tΘto aplikace.

P°ehled systΘmov²ch trigger∙

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.

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Φφ.

PROCEDURE _on_login_change(IN old_logname CHAR(31), IN new_logname CHAR(31))

Procedura se zavolß, kdykoli se klient p°ihlaÜuje, odhlaÜuje nebo m∞nφ svΘ u₧ivatelskΘ jmΘno. ╚innost klienta se pozdr₧φ do dokonΦenφ tΘto procedury.

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, v parametr success je TRUE, pokud se kopii poda°ilo vytvo°it, FALSE p°i chyb∞.

PROCEDURE _on_replpacket_sent (IN ServerID BINARY(12), IN ServerName CHAR(31), 
 IN PacketType INT, IN PacketNO INT, IN ErrNO SMALLINT, IN ErrText CHAR(128));

Procedura se zavolß p°i odeslßnφ replikaΦnφho paketu, podrobnosti viz Prost°edky pro klientskou reakci na chyby replikacφ.

PROCEDURE _on_replpacket_received (IN ServerID BINARY(12), IN ServerName CHAR(31), 
 IN PacketType INT, IN PacketNO INT, IN ErrNO SMALLINT, IN ErrText CHAR(128),
 IN HdrRec INT, IN HdrID TIMESTAMP);

Procedura se zavolß p°i p°φjmu replikaΦnφho paketu, podrobnosti viz Prost°edky pro klientskou reakci na chyby replikacφ.

BezpeΦnost

Procedury _on_server_start, _on_server_stop, _on_backup , _on_replpacket_send a _on_replpacket_received se provßd∞jφ s prßvy provoznφho sprßvce databßze. 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.

Vypnutφ spouÜt∞nφ procedur

SpouÜt∞nφ procedur systΘmov²mi udßlostmi lze vypnout p°i startu serveru pomocφ parametrup°φkazovΘ °ßdky /Q. Toto vypnutφ se vyu₧ije v p°φpad∞, pokud se poda°ilo vytvo°it proceduru, kterß zp∙sobuje pßd serveru.