Požadavek do-scan-files
Účel a dopady
Naplánuje na serveru úlohu analýzy (a volitelně výmazu) souborů ve file-systémovém úložišti, které nemají odpovídající referenci v databázi, případně dočasných souborů zanechaných nedokončenými operacemi. Nejde o okamžité provedení, požadavek jen vytvoří novou položku v plánovači serveru (cron). Výsledky proběhlé analýzy se zjišťují samostatným požadavkem get-scan-files. Vedlejší efekt: úspěšné vytvoření zapisuje novou úlohu do databáze plánovače; vlastní běh úlohy později maže soubory a/nebo databázové záznamy o nich.
Dostupnost, kontext, oprávnění apod.
- Uzel patří do rodiny uzlů s prefixem
do-, které server plánuje jako úlohycron; sdílí společný dispatch sdo-import,do-export,do-manage,do-optimize-filesaj.. - Smí použít uživatel s
r_adminnebor_manage– na rozdíl od dosavadní dokumentace, která požadovala vlastnost uživatelep_admin; server tuto vlastnost prodo-scan-filesvůbec nekontroluje. - 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>
<do-scan-files
validity="{string}"
repeat="{string}"
sched-from-end="{bool}"
when-off="{bool}"
failsafe="{string}"
run-as="{number}"
by-action="{bool}"
db-log="{bool}"
scan="{bool}"
test="{bool}"
delete="{bool}"
temp="{bool}"
temp-threshold="{number}"
opt="{bool}"
opt-threshold="{number}"
cross="{bool}"
place-holder="{bool}"
test-crc="{bool}"
wait-for-lock="{bool}"
query-timeout="{number}"
/>
</request>
Parametry a pravidla (atributy, potomci)
Atributy validity, repeat, sched-from-end, when-off, failsafe mají stejný význam a syntaxi jako u sdíleného typu do-task. Server u téhož uzlu navíc čte i tři obecné plánovací atributy, které sdílený typ do-task v současné podobě nepopisuje: run-as (typ: number; nepovinný), by-action (typ: bool; nepovinný) a db-log (typ: bool; nepovinný).
Vlastní atributy uzlu do-scan-files:
scan- Základní analýza - Spustí porovnání databáze a file-systému, pokud předchozí analýza neexistuje nebo byly její výsledky smazány. (typ:bool; nepovinný)test- Vynutit nový test - Vynutí nové provedení základní analýzy i tehdy, existuje-li už její výsledek. (typ:bool; nepovinný)delete- Výmaz souborů - Provede výmaz souborů určených předchozí analýzou k výmazu. (typ:bool; nepovinný)temp- Zahrnout dočasné soubory - Zahrne do zpracování i dočasné soubory. (typ:bool; nepovinný)temp-threshold- Stáří dočasných souborů - Stáří dočasných souborů v sekundách, od kterého se považují za určené k výmazu. (typ:number; nepovinný; výchozí:7776000= 90 dní)opt- Výmaz optimalizovaných souborů - Provede výmaz starých optimalizovaných souborů. (typ:bool; nepovinný)opt-threshold- Stáří optimalizovaných souborů - Stáří optimalizovaných souborů v sekundách, od kterého se považují za určené k výmazu. (typ:number; nepovinný; výchozí:86400= 1 den)cross- Rozšíření cross - Aktivuje rozšíření křížové kontroly základního testu. (typ:bool; nepovinný)place-holder- Rozšíření place-holder - Aktivuje rozšíření základního testu nad soubory bez odpovídajícího záznamu. (typ:bool; nepovinný)test-crc- Ověřit CRC - Na rozdíl od dosavadní dokumentace jde o boolean, ne číslo. Je-li atribut uveden, jeho hodnota ("true"/cokoli jiného) přímo určuje, zda se v rámci rozšíření provede ověření CRC součtů souborů; není-li uveden, použije se výchozí chování dané globální konfigurací serveru. (typ:bool; nepovinný; výchozí: dle konfigurace serveru)wait-for-lock- Čekat na zámek - Pro provedení operace je třeba získat výhradní přístup k souborům;"true"znamená čekat na jeho uvolnění, jinak úloha při nezískání zámku skončí neúspěchem. (typ:bool; nepovinný; výchozí:false)query-timeout- Timeout databázových dotazů - Přepíše pro tuto úlohu globální konfigurační timeout dotazů. Atribut v dosavadní dokumentaci vůbec nebyl uveden. (typ:number; nepovinný; výchozí: hodnotaqueryTimeoutz konfigurace serveru)
Závislosti
- Nejsou-li uvedeny
test,delete,optanitemp(žádný z nich"true"), server bez ohledu na hodnotu atributuscansám nastavíscannatrue– ve výchozím volání bez atributů se tedy vždy provede aspoň základní analýza. - Skutečné provedení výmazu dočasných souborů (
temp) nastává jen tehdy, když zároveň neběžítestani (efektivní)scananideletefáze v témže spuštění – kombinacetemp="true"s jinými akcemi tedy sama o sobě nemusí výmaz dočasných souborů provést, přestože byl požadován. test-crc, není-li uveden, přebírá výchozí hodnotu z konfigurace serveru, ne pevnou konstantu.
Příklady požadavku
(Zatím bez ověřeného příkladu.)
Zpracování a vedlejší účinky
- Server nejprve ověří oprávnění (
r_adminnebor_manage); bez něj se žádná úloha nevytvoří. - Poté se pokusí sestavit
JobScanFilesz uzlu požadavku. Selže-li rozpoznánívalidity/repeat/failsafe/temp-threshold/opt-threshold/query-timeout(neplatná syntaxe/hodnota), je výsledná úloha označena jako neznámá a vytvoření selže. - Uspěje-li vytvoření, úloha se zapíše do databáze plánovače a zařadí do fronty serveru; samotná analýza a případný výmaz proběhnou až později, v čase daném plánováním (
validity/repeat), ne synchronně v rámci tohoto požadavku – odpověď proto nenese žádný výsledek analýzy, jen potvrzení naplánování. Výsledky se čtou samostatným požadavkem get-scan-files.
XML odpověď (syntax + popis)
<response>
<do-scan-files
status="ok|error"
id="{number}"
next-run="{datetime}"
detail="{string}"
/>
</response>
Parametry a pravidla (atributy, potomci) – odpověď
status- Výsledek -"ok"při úspěšném naplánování, jinak"error"(nebo"skip"při přeskočené transakci). (typ:enum; povolené hodnoty:ok,error,skip)id- Id úlohy - Identifikátor nově vytvořené úlohy v plánovači, přítomen jen přistatus="ok". (typ:number)next-run- Čas dalšího spuštění - Datum a čas (YYYY-MM-DD HH:MM:SS) příštího plánovaného spuštění, přítomen jen přistatus="ok". Tento atribut dosavadní dokumentace vůbec nezmiňovala. (typ:datetime)detail- Popis chyby - Přítomen jen přistatus="error"/"skip". (typ:string; nepovinný)
Příklady odpovědi
(Zatím bez ověřeného příkladu.)
Chyby a reakce
<do-scan-files status="ok" id="…" next-run="…"/>– úloha byla úspěšně naplánována.<do-scan-files status="error" detail="Systemova chyba pri vkladani pozadavku"/>– vytvoření úlohy selhalo (neplatná syntaxe číselných/plánovacích atributů).<do-scan-files status="error" detail="Nemate patricna opravneni"/>– volající nemár_adminanir_manage.<do-scan-files status="error" detail="Transakce byla odvolana"/>/<do-scan-files status="skip" detail="Transakce byla preskocena"/>– požadavek byl vyřazen standardním transakčním zpracováním obálky.- Výraz pro identifikaci chyb v odpovědi serveru:
do-scan-files[@status='error'].
Související požadavky
- get-scan-files – zjištění výsledků úlohy naplánované tímto požadavkem.
- do-manage, do-optimize-files – další úlohy plánované stejným mechanismem
do-. - undo – zrušení naplánované/opakující se úlohy podle
idvráceného touto odpovědí.