Přejít na obsah
Skip to main content

Požadavek update-dad

Účel a dopady​

Vyvolá krátkou odstávku serveru a aktualizaci struktury databáze podle aktuálních DAD souborů uložených ve zdrojové aktualizační složce – bez nutnosti restartu celého serveru. Vedlejší účinky: server se dočasně pozastaví, odhlásí právě přihlášené klienty (notifikace o odhlášení) a po dobu odstávky vrací na webové požadavky stránku 503-error.htm z kořene webového sídla s informací o odhadované době trvání.

Dostupnost, kontext, oprávnění apod.​

Smí použít jen uživatel s r_admin nebo r_db; jinak je požadavek zamítnut. Podléhá standardnímu transakčnímu zpracování obálky <request> (transactional/přeskočení při odvolané transakci) – viz obálka požadavku.

XML požadavek (syntax + popis)​

<request>
<update-dad
time="{number}"
/>
</request>

Parametry a pravidla (atributy, potomci)​

  • time - Odhadovaná délka trvání (s) - Klientskou stranou odhadovaný počet vteřin trvání odstávky, použitý serverem pro informaci v hlavičce HTTP 503 po dobu aktualizace. (typ: number; nepovinný)

Požadavek nemá žádné potomky.

Závislosti​

  • Je-li time uveden, ale nejde převést na celé číslo, chová se to, jako by odhad byl 0 (žádný odhad se do hlavičky nezapisuje).
  • Není-li time uveden vůbec, použije se místo něj konfigurační hodnota serveru dad_update_tm, pokud je nenulová.

Příklady požadavku​

(Zatím bez ověřeného příkladu.)

Zpracování a vedlejší účinky​

  • Server připraví aktualizaci a znovunačtení struktury a informuje připojené klienty o nadcházejícím odhlášení.
  • Není-li server právě už pozastaven, ihned se pozastaví voláním interní Pause() a nastaví se příznak pokračování po dokončení aktualizace; probíhá-li pozastavení již (např. souběžný požadavek), druhé volání server znovu nepozastavuje.
  • Po dobu odstávky (řádově sekundy až desítky sekund dle rozsahu změn) server načte DAD soubory z aktualizační složky, porovná je se stávající strukturou databáze a nalezené rozdíly do databáze doplní; poté automaticky obnoví provoz. Aktualizaci databáze může předcházet souborová aktualizace požadavkem update-files, který zkopíruje/přesune nové DAD (a webové) soubory do příslušných zdrojových složek.
  • Přesný průběh vlastního porovnání a zápisu struktury (mimo nastavení výše uvedených příznaků a pozastavení) probíhá mimo tento dispatcher a nebyl v rámci této revize dále ověřován; chování při neplatném DAD (zastavení provozu, nutnost dodat DAD z předchozí verze) přebírá starší dokumentace jako neověřený předpoklad.

XML odpověď (syntax + popis)​

<response>
<update-dad
type="ok"
/>
</response>

Požadavek vrací jen potvrzení o přijetí; samotná aktualizace probíhá až po odeslání odpovědi během následné odstávky.

Příklady odpovědi​

(Zatím bez ověřeného příkladu.)

Chyby a reakce​

  • <update-dad status="error" detail="Nemate patricna opravneni"/> – volající nemá r_admin ani r_db.
  • <update-dad status="error" detail="Transakce byla odvolana"/> / <update-dad status="skip" detail="Transakce byla preskocena"/> – požadavek byl vyřazen standardním transakčním zpracováním obálky.
  • Na rozdíl od staré dokumentace neexistuje pro tento požadavek žádná obecná chybová větev s atributem detail u úspěšného zpracování – jediné dvě možné odpovědi jsou úspěch (type="ok") a odepření/přeskočení výše. Výraz pro identifikaci chyb v odpovědi serveru: update-dad[@status='error'].

Související požadavky​

  • update-files – souborová aktualizace DAD a webových souborů, typicky prováděná před tímto požadavkem.