Break_user

C/C++Pascal

BOOL cd_Break_user(cdp_t cdp, int client_number);
function cd_Break_user(cdp : cdp_t; client_number : Integer) : Boolean;


Parametry

cdp
kontextová proměnná klienta
client_number
číslo klienta


Od verze

7.0c

Popis

Funkce přeruší provádění požadavku klienta s číslem client_number na serveru. Pokud klient s tímto číslem neexistuje nebo server pro něj právě neprovádí žádný požadavek, funkce neudělá nic. Klient zůstává připojen. Odpojit běžného klienta může obdobná funkce Kill_user. Ukončit pracovní vlákno může funkce Operation_limits.

Funkci může volat pouze provozní správce databáze.

Funkce slouží k vnějšímu násilnému přerušení provádění dlouho trvajícího požadavku klienta, například zodpovídání špatně položeného dotazu, zacyklení v proceduře na serveru nebo nekonečné čekání na zámek. Funkce nepřeruší čekání klienta na semafor, na událost nebo čekání ve funkci Sleep a sama sebe.

Je-li požadavek klienta přerušen uvnitř provádění transakce, provede se rollback transakce.

Číslo klienta lze zjistit například z výsledku dotazu _iv_logged_users nebo funkcí Client_number .



Návratová hodnota

Funkce vrací FALSE při úspěchu a TRUE při chybě.



Příklad

Pro ukončení požadavku uživatele 'David' nejprve zjistíme jeho číslo:
SELECT client_number FROM _iv_logged_users INTO :cli_num WHERE login_name='David'
a poté provozní správce zavolá funkci cd_Break_user:
cd_Break_user(cdp, cli_num);

Viz