Nepovinný parameter typu Int. Priorita pri volaní RPC.
Popis
Akcia špecifikuje procedúru (prostredníctvom mena procName), ktorá bude zavolaná, ak nastane zmena obsahu danej databázovej tabuľky.
Túto zmenu identifikuje príslušný proces D2000 DbManager ako jediný interpret databázových operácií v rámci systému D2000.
Ak identifikuje zmenu, automaticky generuje príkaz na zavolanie registrovanej RPC procedúry.
Kľúčové slovo PRTY umožňuje zadanie priority vykonania registrovanej RPC procedúry. Táto vlastnosť zabezpečí prioritné vykonanie registrovanej RPC Procedúry. Priorita je zadaná parametrom
prtyIdent za kľúčovým slovom PRTY.
Akcia
ON DB_CHANGE tableIdent GOTO NONE zruší volanie procedúry pri zmene tabuľky.
Jedna tabuľka môže mať v kontexte inštancie ESL skriptu maximálne jednu procedúru pre obsluhu jej zmeny. Preto opakovaná registrácia obsluhy pre jednu tabuľku bude
mať za následok ESL run-time chybu a dôjde k prerušeniu vykonávania skriptu.
Procedúra procName musí mať nasledovnú deklaráciu:
RPC PROCEDURE ProcName (IN INT _dbTable, IN INT _actionId)
END ProcName
Namiesto RPC môže byť použité RPCX.
Hodnota formálneho parametra _actionId je jedna z nasledovných možností:
_actionId
0
Úspešné zahájenie sledovania tabuľky.
_actionId
1
Sledovanie tabuľky sa nepodarilo inicializovať - nebeží proces
D2000 DbManager alebo identifikátor
tableIdent nie je identifikátorom objektu typu Tabuľka
alebo
došlo k neočakávanému prerušeniu sledovania tabuľky - napríklad pád procesu
D2000 DbManager.
_actionId
10
D2000 DbManager vykonáva akciu DB_REFRESH_TABLE alebo bola uložená definícia štruktúry, ktorá je nakonfigurovaná na objekte typu Tabuľka.
_actionId
11
D2000 DbManager dokončil operáciu
DB_*, DBS_*
PG_*
alebo
bola vykonaná operácia nad tabuľkou z procesu D2000 HI prostredníctvom užívateľského
rozhrania.
Ak sú modifikácie vykonávané v rámci databázovej transakcie (DB_TRANS_OPEN ...), oznam o zmene tabuľky proces
D2000 DbManager
generuje pri operácii potvrdenia zmien (DB_TRANS_COMMIT).
_actionId
12
Tabuľka sa vymazala z konfigurácie aplikácie.
_actionId
13
Došlo k prepnutiu aktívnej inštancie procesu D2000 DbManager alebo v
redundancii D2000 Server, ku ktorému je proces D2000 DbManager
pripojený, prešiel zo stavu HOT do stavu SBS. Je nutné, aby
bola následne znovu volaná akcia ON DB_CHANGE na registráciu u nového aktívneho procesu D2000 DbManager. Poznámka: Pri prepnutí aktívnej inštancie alebo pri prepnutí redundancie D2000 (keď sa D2000 DbManager stane
pasívnym), sú zatvorené všetky transakcie, ukončené všetky databázové operácie a všetky handle sú zneplatnené.
Preto je nutné
následne zopakovať na novej aktívnej inštancii všetky inicializačné časti skriptov (otváranie databáz, tabuliek atď.).
0 komentárov