ESL Diagnostic Pack poskytuje pohľad na aktuálne bežiace ESL a JAVA skripty v aplikácii. Je prístupný z D2000 CNF z menu Objekty -> ESL Diagnostic Pack alebo z D2000 GrEditor, menu Konfigurácia D2000 -> ESL Diagnostic Pack.
Každý skript je interpretovaný v rámci procesu, ktorý je v evidovaný v rámci DODM modelu. Podľa konfigurácie môžu byť tieto procesy zhodné s procesmi bežiacimi v operačnom systéme (HIP, EVH, SES, HIS) alebo sú to len DODM procesy (SEE).
Pohľad na fyzické procesy poskytuje záložka Physical process.
Význam stĺpcov:
ID (HOBJ) | Jednoznačný identifikátor objektu typu Proces v rámci DODM modelu. |
NAME | Jednoznačné meno objektu typu Proces v rámci DODM modelu. |
IP | Identifikátor počítača, na ktorom je proces spustený. |
AllocatedMermory | Množstvo spotrebovanej pamäte daným procesom. |
Všetky prehľady ponúkajú po stlačení pravého tlačidla myši ponuku s voľbou Copy, ktorá kopíruje zobrazený zoznam do schránky, a s voľbou Copy '<názov stĺpca>', ktorá skopíruje do schránky konkrétnu položku.
Pohľad na inštancie JVM je dostupný v záložke JVM Instances:
Pre každú JVM sú dostupné jej parametre:
Physical process | Meno fyzického procesu, v rámci ktorého je JVM vytvorená. |
Allocated memory | Alokovaná pamäť v Java Virtual Machine (total - free). |
Total memory | Celková pamäť v JVM. |
Free memory | Voľná pamäť v JVM. |
Max memory | Maximálne množstvo pamäte, ktoré sa JVM pokúsi použíť. |
Pohľad na DODM procesy poskytuje záložka DODM Process.
Význam stĺpcov:
ID (HOBJ) | Jednoznačný identifikátor objektu typu Proces v rámci DODM modelu. |
NAME | Jednoznačné meno objektu typu Proces v rámci DODM modelu. |
Physical process | Meno fyzického procesu, v rámci ktorého je DODM proces vykonávaný. |
D2000 HI | Meno procesu D2000 HI, ak proces slúži na interpretáciu ESL skriptov otvorených v príslušnom procese HIP. |
Rozdielna hodnota v stĺpcoch NAME a Physical process je len v prípade, ak Physical process je typu SES.
Pohľad na definície objektov typu Event alebo Schéma, tak ako sú umiestnené v rámci jednotlivých logických DODM procesov, poskytuje záložka Event Definitions.
Proces typu EVH obsahuje v zozname definíciu všetkých svojich potomkov (objekty typu Event), alebo definíciu objektov typu Event, ktoré boli na danom procese otvorené akciou OPENEVENT.
...
Proces typu SEE obsahuje v zozname definíciu serverovských častí skriptov aktuálne otvorených schém a objektov typu Event na dedikovanom procese HIS.
Význam stĺpcov:
ID (HOBJ) | Ak bol objekt otvorený inštančne (akcie OPEN alebo OPENEVENT), stĺpec obsahuje jeho dynamické HOBJ. Toto je návratová hodnota funkcie %GetSelfHBJ(@FALSE). |
NAME | Meno objektu, ktorý obsahuje daný ESL skript. |
Physical process DODM process | Meno objektov typu Proces (s príponou EVH, HIS, SEE, SES), ktorý danú definíciu obsahuje. |
D2000 HI | Meno procesu D2000 HI ak DODM proces slúži na interpretáciu ESL skriptov otvorených v príslušnom procese HIP. |
Kernel instance ID | Skutočné číslo inštancie. Hodnota 0, ak objekt nie je otvorený inštančne. Ak bol otvorený ako inštancia, tak tu je uvedená jeho skutočná inštancia. Toto je návratová hodnota funkcie %GetSelfInstanceId(@TRUE). |
Logical instance ID | Požadované číslo inštancie. Hodnota 0, ak objekt nie je otvorený inštančne. Ak bol otvorený ako inštancia, tak tu je uvedená jeho požadovaná inštancia. Toto je návratová hodnota funkcie %GetSelfInstanceId(@FALSE). |
BASE ID (HOBJ) | HOBJ objektu, ktorý obsahuje daný ESL skript. Toto je návratová hodnota funkcie |
%GetSelfHBJ(@TRUE). | |
EventType | Konfiguračný parameter. Možné hodnoty TRIGGEREVENT, SERVEREVENT, CLIENTANDSERVEREVENT, UNITEVENT |
QueueLength | V prípade objektov typu SERVEREVENT alebo CLIENTANDSERVEREVENT (sem patrí aj schéma) hodnota vyjadruje počet požiadaviek (napríklad volania RPC procedúr, zmeny sledované akciou ON CHANGE, ...) vo fronte. V prípade eventu typu TRIGGEREVENT a povolení fronty požiadaviek pre štart, hodnota vyjadruje počet požiadaviek pre štart. |
Openned by OPENEVENT | Príznak, či bola inštancia otvorená akciou OPENEVENT. Ak áno, je možné ju zatvoriť alebo reštartovať stlačením pravého tlačidla myši a výberom príslušnej voľby. |
lastInstanceId | Existencia definície objektu typu Event na procese typu EVH nemusí znamenať aj existenciu jeho inštancie. Tento stav sa vyskytuje pri objekte Event, ktorý je štartovaný zmenou hodnoty objektu (trigger). V ostatných prípadoch obyčajne k jednej definícii existuje práve jedna inštancia ESL skriptu. Každá bežiaca inštancia je v rámci procesu označená jednoznačným identifikátorom, ktorý je zobrazený v tomto stĺpci. Jeho hodnotu je možné získať volaním funkcie |
%GetEventInstanceId(). | |
Number of Instances | Počet inštancií objektu typu Event, ktoré boli odštartované z danej definície. Obyčajne je to 0 alebo 1. Vyššiu hodnotu je možné dosiahnuť v prípade použitia akcie ENABLE. |
Stlačením pravého tlačidla myši je dostupná ponuka s voľbami Edit a Copy. Voľba Edit je prístupná pre objekt typu Schéma len v prostredí grafického editora.
Zoznam všetkých sJAVA inštancií je dostupný prostredníctvom záložky sJava Instances.
Pre každú sú k dispozícii nasledovné údaje:
ID (HOBJ) | HOBJ objektu, ku ktorému daná inštancia prislúcha. |
NAME | Meno objektu, ku ktorému daná inštancia prislúcha. |
DODM process | Meno objektu typu Proces (s príponou EVH, HIS, SEE), ktorý danú inštanciu obsahuje. |
State | Init_Error – inštanciu sJava sa nepodarilo spustiť z dôvodu kompilačnej chyby alebo chyby, ktorú generoval JVM pri vytváraní inštancie triedy (napríklad sa nepodarilo nájsť závislé triedy - classNotFound java exception ...). IDLE – fronta požiadaviek na spracovanie je prázdna a žiadna požiadavka sa nespracováva (zmena hodnoty objektu, požiadavka na vykonanie RPC, ...). Running – prebieha spracovanie požiadavky. SyncWaiting – prebieha pasívne čakanie na ukončenie synchrónnej akcie (napr. čítanie dát z archívu, synchrónne volanie RPC, ...) počas spracovania požiadavky. |
Start Time | Čas vzniku inštancie (štartu skriptu). |
QueueLength | Počet nespracovaných požiadaviek vo fronte. |
DB Transactions count | Počet otvorených databázových transakcií (vzniknutých volaním metódy dbTransOpen). |
Table Change Listeners count | Celkový počet listenerov registrovaných volaním metódy addDBTableListener. |
RPC Conversation contexts count | Počet registrovaných aplikačne definovaných RPC konverzácií. |
Z pohľadu diagnostiky je najzaujímavejší pohľad na systém prostredníctvom záložky Event Instances.
Do pohľadu sú zaradené všetky bežiace inštancie ESL skriptov v systéme. Každá inštancia je popísaná nasledovnými atribútmi:
idInstance | Jednoznačný identifikátor inštancie. Je možné ho získať volaním funkcie |
%GetEventInstanceId(). | |
ID (HOBJ) | Ak bol objekt otvorený inštančne (akcie OPEN alebo OPENEVENT), stĺpec obsahuje jeho dynamické HOBJ. Toto je návratová hodnota funkcie |
%GetSelfHBJ(@FALSE). | |
NAME | Meno objektu. |
EventType | Konfiguračný parameter. Možné hodnoty TRIGGEREVENT, SERVEREVENT, CLIENTANDSERVEREVENT, UNITEVENT. |
Kernel instance ID | Skutočné číslo inštancie. Hodnota 0, ak objekt nie je otvorený inštančne. Ak bol otvorený ako inštancia, tak tu je uvedená jeho skutočná inštancia. Toto je návratová hodnota funkcie |
%GetSelfInstanceId(@TRUE). | |
Logical instance ID | Požadované číslo inštancie. Hodnota 0, ak objekt nie je otvorený inštančne. Ak bol otvorený ako inštancia, tak tu je uvedená jeho požadovaná inštancia. Toto je návratová hodnota funkcie |
%GetSelfInstanceId(@FALSE). | |
Modify time stamp | Časová značka z konfigurácie objektu. |
Start Time | Čas vzniku inštancie (štartu skriptu). |
Current Line | Aktuálne vykonávaný riadok. |
CNT count | (+) Počet vytvorených dátových kontajnerov. |
CNT dataSize | (+) Veľkosť pamäte, ktorú zaberajú dáta v kontajneroch umiestnené. |
Local vars data size | (+) Veľkosť pamäte, ktoré zaberajú všetky lokálne premenné (veľkosť jednotlivých premenných je možné zistiť v ESL Diagnostic Pack - Instance). |
DB Connects count | (+) Počet databázových pripojení vytvorených |
akciami DB_CONNECT, PG_CONNECT aSQL_CONNECT. | |
DB Transactions count | (+) Počet otvorených databázových transakcií otvorených akciou DB_TRANS_OPEN. |
Files count | (+) Počet súborov otvorených alebo vytvorených akciou %FIO_*. |
Object lists count | (+) Počet zoznamov otvorených akciou LST_CREATE. |
Status | Aktuálny stav skriptu (stav ES_WAIT_EXTERNAL_RQ zodpovedá stavu pasívneho čakania). |
Physical process, DODM process | Meno objektov typu Proces (s príponou EVH, HIS, SEE, SES), ktorý danú inštanciu obsahuje. |
Queue Length | Zhodné s Event Definitions. |
XML Docs count | (+) Počet |
handles na XML objekty. Hodnota je počet handles na XML objekty ktoré boli zverejnené do ESL prostredia. | |
DBS objects count | (+) Počet databázových objektov, s ktorými prebehla výmena dát (čítanie/zápis). |
D2000 HI | Zhodné s Event Definitions. |
Stĺpce označené (+) obsahujú v tomto pohľade celkový počet daných elementov, ktorý zahŕňa aj prípadné inštancie UNIT eventov !!!!
Stlačením pravého tlačidla myši nad inštanciou bude zobrazená nasledujúca ponuka.
Voľba Close Instance a Restart Instance je prístupná len pre inštancie, ktoré boli otvorené akciou OPENEVENT a umožňuje inštanciu zatvoriť alebo zatvoriť a znovu otvoriť (požadované číslo inštancie bude zachované).
Voľba Open Detail otvorí detailný pohľad na danú inštanciu (ESL Diagnostic Pack – Instance).
Voľba Open Tree Detail je povolená len pre skript schémy. Otvorí detailný pohľad na všetky otvorené schémy a eventy na danom procese D2000 HI.
Príklad:
Zo zobrazenia vidieť, že na ploche príslušného D2000 HI sú zobrazené dve schémy S.Browser a S.Master.
Schéma S.Browser má lokálny aj vzdialený skript (vzdialený je označený slovom REMOTE). Za menom je vždy zobrazený aj atribút idInstance pre jednoduchšiu identifikáciu inštancie. Vzdialený skript (označený REMOTE) používa dva eventy typu UNIT, ktoré sú deklarované v rámci ESL skriptu ako _u a _u1.
Schéma S.Master obsahuje podschému S.Sub.
V kontexte D2000 HI je ešte otvorený objekt typu Event s menom E.server. V mene má príznak REMOTE, teda je spustený ako vzdialený skript. Ak kliknete pravým tlačidlom myši nad event alebo schému, zobrazí sa ponuka:
Refresh – aktualizuje dáta zobrazené pre jednu inštanciu skriptu alebo schémy.
...
Ak je určitá schéma skriptovaná len prostredníctvom JAVA, zobrazia sa nasledovné informácie:
Ak je prítomná ESL aj JAVA, zobrazenie bude nasledovné:
Každá inštancia podrobnejšie popisuje svoj stav pomocou nasledujúcich položiek (v zátvorke je uvedený počet inštancií pre každú položku).
...
Dvojklik myšou na dátový kontajner zobrazí riadok jeho vzniku.
Pravým klikom na dátový kontajner je vyvolané kontextové menu. Po kliknutí na položku "Watch" sa otvorí Inšpektor objektov kontajnera.
...
Popis stĺpcov:
Handle | Jednoznačný identifikátor dátového kontajnera. Hodnota je zhodná s hodnotou, ktorú vráti akcia CNT_CREATE. |
userIdent | Hodnota užívateľom definovaného reťazca v rámci akcie CNT_DEBUG. |
Current Items | Aktuálny počet záznamov v kontajneri. |
Maximal Items | Maximálny počet záznamov v kontajneri (resetuje voľba Reset counters). |
Current Size | Veľkosť kontajnera v Bytoch. |
In Array mode | Príznak existencie interného poľa (pozri akciu CNT_CNVTOARRAY). |
Created by CNT_CREATE | Popisuje spôsob vzniku kontajnera. TRUE – |
akcia CNT_CREATE. FALSE – akcia GETARCHARR_TO_CNT. |
ACTIONs - zoznam akcií v ESL skripte
Každá akcia daného ESL skriptu je popísaná nasledovne:
Skript E.CallServerWithQueue:
Skript E. ServerWithQueue:
Popis stĺpcov:
Line | Riadok, na ktorom sa akcia nachádza. |
Action | Identifikácia typu akcie. |
Counter | Počet vykonaní danej akcie (resetuje voľba Reset counters). |
Counter passive | Počet pasívnych čakaní. Táto hodnota sa zvýši o 1 pri každom pasívnom čakaní akcie na vykonanie činnosti, ktorú vyvolala. Počítadlo môže byť aj väčšie ako Counter. Na našom príklade sú to akcie DELAY a RPC CALL SYNC (resetuje voľba Reset counters). |
Duration | Sumárny čas, ktorý akcia strávila aktívnym vykonávaním (resetuje voľba Reset counters). |
DurationPassive | Sumárny čas, ktorý akcia strávila pasívnym čakaním na vykonanie požadovanej činnosti (resetuje voľba Reset counters). |
maxDuration | Maximálny čas, ktorý akcia strávila aktívnym vykonávaním (resetuje voľba Reset counters). |
maxDurationPassive | Maximálny čas, ktorý akcia strávila pasívnym čakaním na vykonanie požadovanej činnosti (resetuje voľba Reset counters). |
actionInfo | Variabilná informácia závislá od typu akcie. Aktuálne poskytujú túto informáciu len dve akcie:
|
FIOs - zoznam otvorených súborov
Dvojklik myšou na súbor zobrazí riadok jeho vzniku (otvorenia).
Popis stĺpcov:
Id | Jednoznačný identifikátor súboru. Hodnota je zhodná s hodnotou, ktorú vráti príslušná %FIO_* akcia. |
File Name | Meno súboru. |
Encoding | Kódovanie súboru. |
DbConnects - zoznam databázových pripojení, ktoré vznikli akciami DB_CONNECT, PG_CONNECT a SQL_CONNECT
Dvojklik myšou na pripojenie zobrazí riadok jeho vzniku (otvorenia).
Popis stĺpcov:
Handle | Jednoznačný identifikátor pripojenia. Hodnota je zhodná s hodnotou, ktorú vráti príslušná akcia. |
parentDB_TRANS | Hodnota DEFAULT, ak je pripojenie na databázu realizované prostredníctvom tvz. Automatického pripojenia. Alebo meno objektu typu Databáza, ktoré bolo použité pre nadviazanie databázovej transakcie prostredníctvom akcie DB_TRANS_OPEN. |
connectString | Hodnota platná pri nadviazaní spojenia prostredníctvom akcie SQL_CONNECT s |
connectString-om. | |
outDataSize, inDataSize | Množstvo dát, ktoré boli v rámci daného pripojenia odoslané alebo prijaté. |
nr out, nr in | Počet výstupných alebo vstupných operácií. |
connectType | V závislosti od spôsobu vytvorenia spojenia hodnota PG_CONNECT, DB_CONNECT alebo SQL_CONNECT. |
dbObject | Meno objektu typu Tabuľka, ktoré bolo použité pri vytváraní spojenia (ak je k dispozícii len HOBJ objektu zobrazí sa nasledovne: #ObjNotFound#(302), pričom HOBJ=302). |
structTypId | Meno definície štruktúry priradené príslušnému objektu typu Tabuľka. |
bSqlPrepared | Príznak, či je na danom pripojení aktívny SQL_PREPARE. |
sqlPrepareStmt | Znenie SQL príkazu. |
Dbs - zoznam databázových objektov, ktoré boli skriptom čítané alebo bolo do nich zapisované
Pohľad sumarizuje množstvo prenášaných dát vzhľadom na objekty typu Tabuľka bez ohľadu na spôsob alebo pripojenie, na ktorom k prenosu došlo.
Popis stĺpcov:
Table | Meno objektu typu Tabuľka (ak je k dispozícii len HOBJ objektu, zobrazí sa nasledovne: #ObjNotFound#(302), pričom HOBJ=302). |
outDataSize, inDataSize | Množstvo dát, ktoré boli |
zapísané alebo |
načítané. | |
nr out, nr in | Počet výstupných alebo vstupných operácií. |
DbTrans - zoznam databázových transakcií otvorených akciou DB_TRANS_OPEN
Dvoklik myšou na pripojenie zobrazí riadok jeho vzniku (otvorenia).
Popis stĺpcov:
Handle | Jednoznačný identifikátor pripojenia. Hodnota je zhodná s hodnotou, ktorú vráti príslušná akcia DB_TRANS_OPEN. |
dbObject | Meno objektu typu Databáza, vzhľadom na ktorý bola transakcia otváraná. |
subConnectsNr | Počet pripojení typu |
PG_CONNECT, |
DB_CONNECT |
alebo SQL_CONNECT nadviazaných v rámci transakcie. | |
outDataSize, inDataSize | Množstvo dát, ktoré boli v rámci daného pripojenia odoslané alebo prijaté. |
nr out, nr in | Počet výstupných alebo vstupných operácií. |
UNITs - zoznam inštancií ESL Unitov
Zoznam inštancií eventov typu UNIT poskytuje podobné informácie, aké sú k dispozícii pri inštancii eventu.
Info | ||
---|---|---|
| ||
...