|
![]() | Prost°edky pro klientskou reakci na chyby replikacφ | ![]() | P°φprava sdφlenφ aplikace mezi servery |
Tabulky se vytvo°φ v aplikaci _SYSEXT
p°i prvnφm v²skytu replikaΦnφ chyby, je-li zapnut p°φznak Logovat do tabulky v zßkladnφm nastavenφ replikacφ (dialog ReplikaΦnφ parametry mφstnφho serveru).
Tabulka _REPLERRHDR
Obsahuje zßhlavφ informace o chyb∞ p°i zpracovßnφ replikaΦnφch dat
Sloupce, typy a jejich v²znam:
DT
|
TIMESTAMP
|
Datum z Φas vzniku chyby, zßrove≥ slou₧φ jako unikßtnφ index a odkaz do tabulky _REPLERRREC |
ServerID
|
BINARY(12)
|
UUID zdrojovΘho serveru |
ServerName
|
CHAR(31)
|
JmΘno zdrojovΘho serveru |
Typ
|
BOOLEAN
|
TRUE = Chyba je v doÜl²ch datech (replikaΦnφ data se nepoda°ilo zpracovat)
FALSE = Chyba je v odesφlan²ch datech (p°iÜel paket typu zamφtnutφ replikace) |
PacketNO
|
INTEGER
|
╚φslo replikaΦnφho paketu |
Tabulka _REPLERRREC
Obsahuje informace o zßznamu, kter² zp∙sobil chybu
Sloupce, typy a jejich v²znam:
DT
|
TIMESTAMP
|
Odkaz na hlaviΦku v tabulce _REPLERRHDR |
ApplID
|
BINARY(12)
|
UUID aplikace |
ApplName
|
CHAR(31)
|
JmΘno aplikace |
TableNO
|
SMALLINT
|
╚φslo tabulky |
TableName
|
CHAR(31)
|
JmΘno tabulky |
W5_UNIKEY
|
BINARY( 16) |
Hodnota univerzßlnφho klφΦe pro replikaci |
RecRem
|
INTEGER
|
╚φslo zßznamu v tabulce na zdrojovΘm serveru (je-li znßmΘ) |
RecLoc
|
INTEGER
|
╚φslo zßznamu na lokßlnφm serveru |
RecCnf
|
INTEGER
|
╚φslo zßznamu s nφm₧ je p°ichßzejφcφ zßznam v konfliktu (mß v²znam pouze v p°φpad∞ replikaΦnφho konfliktu a duplicity klφΦ∙) |
DetID
|
INTEGER
|
Odkaz do tabulky _REPLERRATTR (mß v²znam pouze v p°φpad∞ replikaΦnφho konfliktu a duplicity klφΦ∙) |
ErrNO
|
SMALLINT
|
K≤d chyby |
ErrText
|
CLOB
|
Text chyby |
UNIKEY
|
BLOB |
Hodnota primßrnφho klφΦe (pou₧ije se pouze pokud tabulka nemß univerzßlnφ klφΦ pro replikace) |
Tabulka _REPLERRATTR
Detaily replikaΦnφho konfliktu nebo duplicity klφΦ∙. Obsahuje hodnoty unikßtnφch klφΦ∙ a v p°φpad∞ replikaΦnφho konfliktu i hodnoty atribut∙, ve kter²ch je zm∞na, hodnoty jsou v textovΘ form∞.
Sloupce, typy a jejich v²znam:
DetID
|
INTEGER
|
Odkaz na zßznam v tabulce _REPLERRREC |
AttrNO
|
TINYINT
|
╚φslo atributu |
AttrName
|
CHAR(31)
|
JmΘno atributu |
RemVal
|
CLOB |
Hodnota atributu na zdrojovΘm serveru |
LocVal
|
CLOB
|
Lokßlnφ hodnota |
CnfVal
|
CLOB
|
Hodnota v zßznamu, kter² je s p°ichßzejφcφm v konfliktu |
ProgramovΘ ovlßdßnφ replikaΦnφch trigger∙ a zßpisu do logovacφch tabulek
Pro programovΘ povolenφ resp. zßkaz spouÜt∞nφ trigger∙ _ON_REPLPACKET_RECEIVED
a _ON_REPLPACKET_RECEIVED
a zßpisu do logovacφch tabulek slou₧φ funkce Repl_GetSet_local_server_props
, kterß pro parametr oper
rovn²
RPLS_GET_LOGTABLES
(28) vracφ stav povolenφ zßpisu do logovacφch tabulek
RPLS_SET_LOGTABLES
(29) povoluje resp. zakazuje zßpis do logovacφch tabulek
RPLS_GET_REPLTRIGGERS
(30) vracφ stav povolenφ spouÜt∞nφ replikaΦnφch trigger∙
RPLS_SET_REPLTRIGGERS
(31) povoluje resp. zakazuje spouÜt∞nφ replikaΦnφch trigger∙
ProgramovΘ sledovßnφ v²m∞ny replikaΦnφch paket∙
Stav v²m∞ny replikaΦnφch paket∙ se zvolen²m replikaΦnφm serverem lze u₧ivatelsky zjistit na °φdicφm panelu aplikace na zßlo₧ce Popis. Pro programovΘ zjiÜt∞nφ slou₧φ klientskß API funkce Repl_GetSet_server_props
, kterß pro parametr oper
rovn²
RPSP_GET_LASTRCVD
(7) vracφ Φφslo poslednφho p°ijatΘho paketu (integer)
RPSP_GET_LASTSNDD
(8) vracφ Φφslo poslednφho odeslanΘho paketu (integer)
RPSP_GET_LASTACKD
(9) stav p°φznaku "DoÜlo potvrzenφ poslednφho paketu" (Boolean)
P°φznak m∙₧e mφt tyto hodnoty:
FALSE
(0) Poslednφ paket byl odeslßn, potvrzenφ zatφm nep°iÜlo
TRUE
(1) Poslednφ paket byl potvrzen
NONEBOOLEAN
(128) Poslednφ paket byl zamφtnut (d∙vod zamφtnutφ, lze odchytit pomocφ systΘmovΘho triggeru _ON_REPLPACKET_RECEIVED
nebo najφt v tabulkßch _REPLERRHDR
a _REPLERRREC
)
Programovß reakce na chyby replikacφ
Reakci na chyby replikaci, tj. pokud nep°iÜlo potvrzenφ odeslanΘho paketu nebo pokud p°iÜlo zamφtnutφ replikaΦnφho paketu, umo₧≥ujφ funkce: Repl_resend_packet
a Repl_cancel_packet
.
Pokud nep°iÜlo potvrzenφ poslednφho paketu, je mo₧nΘ zavolat funkci Repl_resend_packet
, ta v takovΘmto p°φpad∞ odeÜle prot∞jÜφmu serveru dotaz na stav, prot∞jÜφ server vrßtφ Φφslo naposledy p°ijatΘho paketu a mφstnφ server podle toho jestli:
Pokud p°ijde zamφtnutφ replikaΦnφho paketu, je mo₧nΘ bu∩ odstranit p°φΦinu odmφtnutφ (zpravidla duplicitu klφΦ∙ v indexu) na vzdßlenΘm serveru a zavolat funkci Repl_resend_packet
a ta znovu odeÜle odmφtnut² paket. Nebo je mo₧nΘ odstranit p°φΦinu odmφtnutφ na mφstnφm serveru, zavolat funkci Repl_cancel_packet
, kterß zruÜφ zamφtnut² paket a zm∞nφ stav serveru jako by se poslednφ paket v∙bec neodesφlal, a potom znovu vyvolat p°ereplikovßnφ zm∞n.
Funkcφm Repl_resend_packet
a Repl_cancel_packet
odpovφdajφ tlaΦφtka Znovu odeslat a ZruÜit paket na °φdicφm panelu aplikace.
![]() | Prost°edky pro klientskou reakci na chyby replikacφ | ![]() | P°φprava sdφlenφ aplikace mezi servery |