|
![]() | Systémové dotazy | _IV_TABLE_COLUMNS | ![]() |
Odpověď na systémový dotaz _iv_logged_users obsahuje jeden řádek pro každé klientské vlákno na serveru. Jedno vlákno existuje pro každého připojeného uživatele, dále existují vlákna systémová, které spouští sám server, a samostatná vlákna spuštěná příkazem CALL DETACHED.
Při zobrazení vláken v okně Monitoru (záložka Klienti a vlákna) se barvou odlišují "normální" klienti (černá barva) od systémových vláken (modrá barva) a samostatně spuštěných SQL procedur (červená barva), názvy sloupců gridu jsou přeloženy (jména v závorkách), mohou být v jiném než zde uvedeném pořadí a číselné hodnoty mohou být nahrazeny slovním vyjádřením.
V odpovědi na dotaz jsou po řadě tyto sloupce:
Jméno sloupce | Typ | Obsah |
Login_name (Jméno) | CHAR(31) | jméno, pod nimž je uživatel přihlášen, u systémových vláken může být např. DB_ADMIN či ANONYMOUS |
Client_number (Číslo) | INT | interní číslo klienta, stejné jako vrací funkce Client_number; v předpisu pro logování (funkce _sqp_define_log) odpovídá zkratce %c |
Sel_schema_name (Aplikace) | CHAR(31) | jméno otevřené aplikace (schématu) |
State (Stav) | INT | stav provádění požadavku klienta - viz níže; normální klidový stav normálního klienta = 4 |
Connection (Spojení) | INT | způsob připojení klienta na server (0 = přímo, 1 = TCP/IP, 4 = HTTP tunel) |
Net_address (Síťová adresa) | CHAR(30) | síťová adresa klienta a číslo portu, na němž se připojil (prázdná pro klienty s přímým přístupem) |
Detached (Samostatné) | BOOLEAN | příznak, že jde o samostatné vlákno (spuštěné příkazem CALL DETACHED) |
Worker_thread (Pracovní) | BOOLEAN | příznak, že jde o systémové pracovní vlákno, které neobsluhuje klientský požadavek (např. replikační vlákna), nebo vlákno spuštěné jako samostatné (detached) |
Own_connection (Já?) | BOOLEAN | příznak, že jde o vlákno klienta kladoucího tento informační dotaz |
Transaction_open (Transact.) | BOOLEAN | příznak, že vlákno má otevřenou explicitní transakci |
Isolation_level (Izolace) | INT | stupeň izolace transakcí nastavený pro klienta (1 = READ COMMITTED, 3 = SERIALIZABLE) |
Sql_options (Volby SQL) | INT | součet příznaků kompatibility SQL nastavený pro tohoto klienta pomocí funkce Set_sql_option nebo převzaté globálně z nastavení na Řídicí konzoli |
Lock_waiting_timeout (Čekání) | INT | délka čekání na uvolnění zámků blokovaných jinými klienty, v desetinách sekundy, nebo -1, pokud se čeká neomezeně dlouho |
Comm_encryption (Utajení) | INT | je větší než nula pokud vlákno patří klientovi, jehož komunikace se serverem je šifrovaná, neutajená je v gridu označena jako Plain |
Session_number (Sezení) | INT | unikátní identfikace klientského vlákna, na rozdíl od čísla klienta ve sloupci client_number se po dobu spuštění SQL serveru neopakují; v předpisu pro logování (funkce _sqp_define_log) odpovídá zkratce %e |
Profiled_thread (Profilování) | BOOLEAN | pro konkrétní vlákno je explicitně zapnuté profilování; je-li profilování globálně zapnuté pro všechna vlákna, může zde být hodnota FALSE |
Thread_name (Jméno vlákna) | CHAR(31) | označení vlákna nastavené pomocí porcedury _sqp_set_thread_name; běžní klienti se takto označují automaticky (GUI client, ODBC client apod.) |
Hodnoty ve sloupci State mají tento význam:
0 nebo >100 | vlákno se provádí; v některých situacích se místo 0 vypisují hodnoty >100 signalizující interní vnitřní stavy, v nichž se vlákno nachází při práci, tyto hodnoty se nedají jednoduše interpretovat a slouží výhradně při případném zjišťování problémů ve spolupráci s Hotline (nejedná se o chybové stavy!); |
1 | vlákno čeká na zámek na stránce paměti (např. editované indexy) |
2 | vlákno čeká na uvolnění stránky v diskové cache |
3 | vlákno čeká na zámek na záznamu |
4 | vlákno čeká na příchod dalšího požadavku od klienta, normální klidový stav |
5 | vlákno odesílá odpověď na požadavek |
6 | vlákno přijímá nový požadavek od klienta |
7 | vlákno se ukončuje |
8 | vlákno čeká na semaforu (ve funkci Wait_for_semaphore) |
9 | vlákno čeká ve funkci Sleep |
10 | vlákno čeká na událost (ve funkci Wait_for_event) |
Vlákno uživatele, který tento dotaz položil má hodnotu sloupce State rovnou 0 (případný stav > 100 není chybou).
Příklad:
Vypsat uživatele (ne pracovní vlákna), kteří jsou přihlášeni do aplikace Majetek:
SELECT Login_name FROM _iv_logged_users WHERE sel_schema_name = 'Majetek' AND NOT worker_thread
![]() | Systémové dotazy | _IV_TABLE_COLUMNS | ![]() |