Identifikace chyb při ukládání XML dokumentů

V dokumentu jsou změněné prvky (tj. pojmenované uzly s textem, které již neobsahují žádné jiné uzly kromě tohoto textu) označeny atributem changed="true" a případné změny v propojení dokumentů pomocí primárních a cizích klíčů jsou označeny change-key="true". Server uloží jen tyto změněné údaje a ostatní ponechá. Případně je ještě provedeno uložení nových opakování, tj. kde skey="#…" (skey ~ segment-key - další podrobnosti viz. druhá kapitola této části viz. segmenty a metadata dokumentů).

Příklad uložení změny v dokumentu typu kontakt s pořadníkem 1234, do obálky save-document se vloží uzel:

example
<kontakt dkey="1234">...</kontakt>

Obdobným způsobem probíhá také zakládání nových dokumentů. Rozdíl je pouze v tom, že atribut dkey obsahuje před číslem křížek (znak "#"). tj. požadavek save-document může například pro založení nového dokumentu kontakt obsahovat uzel:

example
<kontakt dkey="#1234">...</kontakt>

Číslo za křížkem není v tuto chvíli podstatné, neboť křížek vyvolá použití nejbližšího nového primárního klíče navýšenému o jedničku oproti naposledy uložené nové instanci. UPOZORNĚNÍ: Server z důvodů schopnosti ukládat vícevláknově (paralelně) vždy při výskytu požadavku na založení dokumentu (křížku) nejprve zablokuje nový primární klíč a pak provede zpracování dokumentu a jeho uložení. Je-li pak toto uložení neúspěšné, vznká v číselné řadě primárních klíčů mezera. S mezerami v primárních klíčích je třeba běžně počítat (tomuto chování lze částečně předejít použitím atributu gappy v DAD)!

Další informace a příklady viz. též identifikace chyb při ukládání dokumentů.


Identifikace chyb při ukládání XML dokumentůIdentifikace chyb při ukládání XML dokumentůPříklad požadavků na pseudo-dokumentyUkládání pseudo dokumentůEvidence historie změn dokumentůPříklad pro rozpracované dokuementyPřímé SQL dotazy do databázePříklady práce se souboryPříklad XML nastaveníPříklad seznamu naplánovaných úlohPříklad naplánování úlohyPříklad odložení požadavku do-requestPožadavek registerPožadavek register-listPožadavek register-delPříklad transformPříklad spuštění akcePříklad spouštění akcí pomocí zpráv