Stavy databázového spojenia
Aby systém založený na databázovom SQL serveri (viď Technológia spracovania dát) mohol pracovať, musí mať nastavené spojenie (tzv. "connection") na databázu, ktorá obsahuje dáta, s ktorými má pracovať. Takýchto spojení môže existovať v niektorých prípadoch i niekoľko (predovšetkým pri používaní multiverzie). Instalační program ABRA Gen zakládá jedno spojení automaticky v rámci instalace systému, tudíž běžný uživatel, který neprovozuje multiverzi systému, se tím nemusí vůbec zabývat. Na administráciu spojení v ABRA Gen slúži nástroj DBAdmin.
Každé spojení se nachází v nějakém stavu. Stav spojení buď systém nastavuje automaticky, pokud uživatel v rámci systému ABRA provedl uživatelsky takové akce, které vedou na změnu stavu spojení, anebo jej lze nastavit ručně pomocí nástroje DBAdmin. V jakém stavu se dané spojení aktuálně nachází je vidět jednak v nástroji DBAdmin a jednak při přihlašování uživatele do systému v dialogu pro výběr spojení na databázi. (Ako bolo spomenuté v popise tohoto dialógu, dialóg pre výber spojenia sa nezobrazuje len v prípade, že v inštalácii existuje iba jedno spojenie a to je v stave OK, keďže v takom prípade je jeho zobrazenie zbytočné). Vo všetkých ostatných prípadoch sa dialóg vyvolá. Užívateľovi je tak vždy indikované, že pripojením k danému spojeniu môže s ohľadom na stav spojenia dôjsť k zmenám súčasnej databázy, ktoré môžu byť i nevratné. Napr. pri zmene stavu spojenia v nástroji DBAdmin zo stavu OK na Obnova by došlo k zlikvidovaniu súčasnej databázy (bola by nahradená novou toho istého mena, do ktorej by sa obnovili dáta zo zálohy).
Možné stavy spojení na databázi podle toho, jaké operace uživatel vykonal nebo chce vykonat:

Grafický indikátor tohoto stavu:
Stav "Nová databáze" způsobí, že při příštím spuštění systému ABRA Gen (po výběru daného spojení) dojde k vytváření nové databáze. Tento stav teda znamená, že spojenie je pripravené na vytvorenie novej databázy. Podle toho, jestli bylo v definici daného spojení zadáno, zda do něj nahrát i demodata (z vybraného *.DEM souboru) volbou Nahrát demodata či nikoli, příp. pokud se jedná o Přechod mezi systémy ABRA Gen a bylo zadáno, že se mají nahrát data vyexportovaná z jiné databáze systému ABRA Gen (z vybraného *.DBE souboru) volbou Nahrát data ze souboru, bude po přihlášení do takového spojení vytvořena:
- nová prázdná databáze obsahující pouze aktuální výchozí data (tzv. inicializační data(initdata)) dodávaná výrobcem k dané verzi programu
- alebo nová databáza naplnená zvolenými demonštračnými dátami resp. štartdátami (ako je to s aktuálnosťou initdát v tomto prípade, viď popis inicializačných dát)
- nebo nová databáze naplněná daty vyexportovanými z původní databáze systému ABRA Gen, z něhož se přechází, viz přechod mezi systémy ABRA Gen (migrace)
Databáza bude vytvorená v stave zodpovedajúcom aktuálne nainštalovanej verzii, tzn. podľa súboru CreateDB.DBO. Súbor CreateDB.DBO obsahuje o.i. operácie, ktoré zabezpečia naplnenie databázy dátami v závislosti od kontextu (tzn. buď initdátami, alebo initdátami + demodátami či štartdátami, alebo v prípade migrácie nenaplnia databázu initdátami, ale dátami vyexportovanými z pôvodnej databázy).
Variantne je možné novú databázu vytvoriť aj podľa *.DBO súborov z iného (zo zadaného) adresára, čiže vďaka tomu teoreticky aj podľa *.DBO z inej verzie, ako je verzia aktuálnej inštalácie. Viac viď v rámci nástroja DBAdmin, krok Zákaznícke úpravy.
V rámci vytvárania novej databázy je o.i. možné uskutočniť jej zákaznícke úpravy (napr. pridanie vlastných databázových objektov (tabuľky, triggery, ...)). Viac viď v rámci nástroja DBAdmin, krok Zákaznícke úpravy.
Konkrétne kroky, ktoré teda systém pri tvorbe novej databázy vykoná:
- Vytvoří novou databázi (soubor *.fdb) zadaného jména a na zadaném místě (u Win PC mluvíme o cestě).
- Vytvoří tabulky a jiné databázové objekty v této databázi podle souboru Create*.DBO.
- Vytvoří tabulky a jiné databázové objekty v databázi podle definic uživatele a to, jedná-li se o tvorbu nového spojení prostřednictvím nástroje DBAdmin a byly-li v kroku Zákaznické úpravy zadány i *.DBO soubory se zákaznickými úpravami.
- Provede načtení inicializačních dat resp. demodat/startdat.
- Upraví strukturu právě založených tabulek podle případných definic extra položek uložených v repozitoři. (Pokud by existovaly výrobcem defaultně dodávané extra položky, pak by se nejdříve provedlo načtení první části. inicializačních dat (jen s dodávanými definicemi extra položek), pak by se provedla podle nich úprava struktury tabulek a teprve poté by se provedlo načtení zbývajících inicializačních dat do tabulek s již upravenou strukturou.)
- Vytvoří indexy k tabulkám databáze.
Pokud databáze téhož jména na téže cestě již existuje, tak podle stavu příznaku Smazat databázi před spuštěním bude tato databáze buď nejdříve smazána, nebo bude obnova zastavena.
Tento stav sa nastavuje:
- užívateľ (typicky administrátor) ho môže nastaviť sám v nástroji DBAdmin:
- po pridaní nového spojenia pomocou voľby Pridať nové spojenie
- nastavením parametrov existujúceho spojenia v rámci voľby Editovať parametre spojenia

Grafický indikátor tohoto stavu:
Stav "Obnova" znamená, že spojenie je pripravené na vytvorenie novej databázy s naplnením dátami zo súboru vybranej zálohy. Po prihlásení do takéhoto spojenia bude vytvorená prázdna databáza, do ktorej sa obnovia dáta uložené v zadanom *.ABF súbore zálohy.
Obnova dát zo zálohy obnoví databázu "tak, ako bola". Je jedno, či bola štruktúra dát taká alebo onaká. (Štruktúra databázy sa vytvorí podľa informácií uložených v zálohe). Tj. výsledek obnovy dat provedené systémem ABRA Gen je podobný, jako bychom databázi obnovili přímo prostředky databázového stroje. Tedy je jedno, v jaké verzi systému ABRA Gen budeme provádět obnovu dat ze zálohy pořízené třeba ve starší verzi. Výsledkem je soubor databáze přesně taková, jaká byla v okamžiku pořízení zálohy dat. (Samozrejme druhá vec je to, či táto databáza bude použiteľná v aktuálnej verzii systému. Vo väčšine prípadov nie, a je preto potrebné následne spraviť update dát danej databázy, viď ďalej.)
Súbor zálohy *.ABF odporúčame obnovovať do rovnakej verzie databázového servera. V opačnom prípade môžu byť niektoré obnovy dát komplikované. Môže sa napr. stať, že obnova dát nebude možná do nejakej novšej verzie databázového servera, ktorý v danej dobe ešte nebude systémom ABRA Gen podporovaný. Preto vždy konzultujte kompatibilitu databázových serverov uvedenú v kap. Databázový server.
Následne sa spojenie automaticky prepne do stavu Update a prebehne dátový update, tzn. prípadná úprava týchto obnovených dát tak, aby zodpovedali aktuálne nainštalovanej verzii. Táto operácia môže trvať aj dlhšiu dobu v závislosti od veľkosti obnovovaných dát. Samozrejme, že ak ide o zálohu dát obstaranú v rovnakej verzii systému, ako do ktorej obnovujeme, žiadne úpravy nie sú nutné a žiadne neprebehnú. K prepnutiu na stav Update však dôjde formálne vždy, aj keď je záloha z rovnakej verzie, pretože v aktuálnej verzii mohlo dôjsť k doinštalácii modulu. Aby sa databázové objekty pre daný modul v danej databáze vytvorili (v tomto prípade podľa súboru CreateDB.DBO), je potrebné vykonať dátový update.
Opakovaná obnova:
Obnovu dát je možné vyvolať i opakovane, a to buď od začiatku alebo s pokračovaním v mieste, kde bola predchádzajúca obnova prerušená (chyba v dátach zálohy/výpadok a pod.). Ako také opakované vyvolanie prebehne, ak je spojenie v stave Obnova, viď popis príznaku Zmazať databázu pred spustením. Ak k prerušeniu spracovania (chyba/výpadok) došlo až po prepnutí do stavu Update, pri novom spustení systému sa už vyvolá rovno update (obnova sa už nevykonáva, spojenie už hlási stav Update.)
Ak bude databáza v stave nedokončenej obnovy alebo sa počas obnovy vyskytli chyby, nebude možné sa do takého spojenia prihlásiť (ani keby sa následne ručne nastavil jeho stav na OK alebo Update). Ak sa teda chyby vyskytnú, databáza sa najprv bude musieť uviesť do korektného stavu ručne editáciou postihnutých tabuliek v databáze. Ak sa také chyby vyskytnú počas obnovy a pokračuje sa v obnove, tak sa na konci obnovy (ale pred začiatkom obnovy ďalších častí a update) zobrazí informačné hlásenie a proces sa preruší. Tento okamih je totiž ten pravý na prípadné otvorenie databázy a zahájenie ručných opráv. (Po spustení procesu update by totiž niektoré update operácie mohli "prejsť" a dáta by potom mohli byť všelijako pozmenené). Po vykonaní prípadných ručných opráv opakujte obnovu dát, pokiaľ nebude spojenia nastavený na OK.
V prípade prerušenia obnovy a jej následnom zopakovaní nesmie byť stav spojenia nastavený na OK alebo Update.
V priebehu obnovy dôjde k vytvoreniu nasledujúcich dočasných tabuliek:
Názov | Popis |
---|---|
nx$restore_state |
V tejto tabuľke je uložená informácia, či bola korektne vykonaná inštrumentácia (naplnenie tabuliek). Pokiaľ tu nie je záznam s hodnotou 1, tak inštrumentácia neprebehla a vykoná sa znova. V závislosti na hodnote v stĺpci State sa nastaví interný príznak RestoreState:
Príznak RestoreState sa nastavuje:
|
nx$restore_backupH | Informácia o súboru zálohy. Kontrolní součet souboru zálohy musí souhlasit s kontrolním součtem zde uvedeným. Inak povedané obnova pokračuje s tým súborom obnovy, s ktorým začala. |
nx$restore_data | Informácia o tom, koľký záznam sa obnovuje pre danú tabuľku. |
nx$restore_dll_A |
Príkazy, ktoré sa majú vykonať po naplnení tabuliek dátami, a informácia o tom, či sa vykonali. Hodnota v stĺpci State môže nadobúdať tieto hodnoty:
|
nx$restore_dll_B |
Príkazy, ktoré sa majú vykonať pred naplnením tabuliek dátami, a informácia o tom, či sa vykonali. Hodnota v stĺpci State môže nadobúdať tieto hodnoty:
|
nx$restore_error | V této tabulce jsou uloženy zaznamenané chyby (i z předchozího spuštění obnovy). |

Grafický indikátor tohoto stavu:
Stav "Update" znamená, že spojenie je pripravené na úpravu databázy do stavu zodpovedajúceho aktuálne nainštalovanej verzii. Po přihlášení do takového spojení (tj. po výběru takového spojení v rámci spuštění systému ABRA Gen, viz dialog pro výběr spojení na databázi), bude zahájen proces update dat, tj. struktury a data vybraného spojení budou upraveny tak, aby bylo použitelné s aktuálně nainstalovanou verzí (dojde k aplikaci UpdateListu (resp. souboru UpdateDB.DBO) na zvolenou existující databázi). Proces dátového update je potrebný aj v prípade doinštalácie modulu, keď sa majú do danej databázy pridať databázové objekty pre nový modul. Aby sa v danej databáze vytvorili (v tomto prípade podľa súboru CreateDB.DBO), je potrebné uskutočniť práve dátový update.
Táto operácia môže trvať niekoľko minút a je nevratná. Tzn., že po dokončení procesu dátového update môžu byť dáta iné, ako boli pred jeho zahájením. Záleží na tom, či výrobca medzi jednotlivými verziami systému (tzn. medzi verziou, z ktorej pochádza vaša databáza a verziou, ktorú máte aktuálne nainštalovanú a v rámci ktorej práve realizujete update dát) uskutočnil nejaké úpravy v štruktúrach dát (pridal napr. nové tabuľky do databázy napr. pre nejakú novú agendu, pridal položku do existujúcej tabuľky a nastavil pre ňu nejakú východiskovú hodnotu a pod.). Od počtu týchto zmien sa tiež odvíja, ako dlho bude táto operácia trvať.
Po dokončení procesu dátového update sa stav spojenia automaticky prepne do stavu OK.
Tento stav sa nastavuje:
- automaticky pri aktualizácii programu, viď Aktualizácia existujúcej inštalácie - update
- automaticky po úspešnej obnove dát uskutočnenej v rámci stavu Obnova
- alebo ho užívateľ (typicky administrátor) môže nastaviť sám v nástroji DBAdmin:
- nastavením procesu update dát existujúceho spojenia pomocou voľby Update databázy
- nastavením parametrov existujúceho spojenia v rámci voľby Editovať parametre spojenia
Do v. 10.01 vrát. boli procesy obnovy a dátového update spojené do jedného. Ich rozdelenie v rámci zavedenia tzv. inkrementálneho update od v. 10.02 umožňuje realizovať dátový update samostatne. Je tak možné nastaviť spojenie na databázu staršiu, ako je aktuálne inštalovaný program (napr. databáza obnovená zo zálohy prostriedkami databázového stroja, databáza z inej inštalácie programu a pod.) a nastaviť na príslušnom spojení stav Update.
Po přihlášení do takového spojení (tj. po výběru takového spojení v rámci spuštění systému ABRA Gen) dojde k povýšení databáze do stavu odpovídajícího příslušné verzi, právě aplikací změnového seznamu UpdateDB.DBO. Pri tomto spôsobe je potrebné mať na pamäti, že nedôjde k preneseniu/obnove informácií repository (zo zdrojovej inštalácie, z ktorej databáza pochádza).
Schéma realizácie update databázy zo staršej verzie systému nastavením spojenia na danú fdb a nastavením stavu Update

Grafický indikátor tohoto stavu:
Stav "OK" znamená, že spojenie je v poriadku a pripravené na použitie, tzn. stav indikuje spojenie s prevádzkyschopnou databázou. Tzn., že po přihlášení do takového spojení (tj. po výběru takového spojení v rámci spuštění systému ABRA Gen), se s příslušnou databází nic dalšího neprovádí a bude možno se systémem ihned začít pracovat.
Tento stav sa nastavuje:
- automaticky po úspešnom vytvorení novej databázy v rámci stavu Nová databáza
- automaticky po úspešnom dokončení obnovy dát uskutočnenej v rámci stavu Obnova
- automaticky po úspešnom dokončení update dát uskutočneného v rámci stavu Update
- alebo ho užívateľ (typicky administrátor) môže nastaviť sám v nástroji DBAdmin:
- nastavením parametrov existujúceho spojenia v rámci voľby Editovať parametre spojenia
Stav OK odpovídá příznaku "Databáze je vytvořena", jenž byl v nástroji DBAdmin k dispozici ve verzích předcházejících verzi 10.02.
Úprava jedného z viacerých spojení:
Procesy vytvorenia databázy, obnova dát a dátový update začínajú až po výbere konkrétneho spojenia. To umožňuje napr. obnovovať databázu jedného spojenia a pritom neobmedziť spustenie programu užívateľom, ktorí chcú pracovať v spojení inom.
Ak napr. užívatelia majú spojenie "Produkčné" a ďalšie spojenie "Testovacie", môžu aktualizovať testovacie dáta z ostrých dát bez odstávky systému Produkčného spojenia.