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.

Fyzické procesy

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.

Fyzické procesy

Pohľad na inštancie JVM je dostupný v záložke JVM Instances:

Inštancie JVM

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.

DODM proces

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.

Definície objektov

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 HIS obsahuje v zozname definíciu aktuálne otvorených schém (klientska časť skriptu) a definíciu objektov typu Event (klientska časť skriptu), 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.

Definície objektov

Zoznam všetkých sJAVA inštancií je dostupný prostredníctvom záložky sJava Instances.

Definície objektov

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.

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 a SQL_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 otvorených XML dokumentov.
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.

Event Instances popup

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:

Otvorené schémy a eventy

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:

Event Instances popup2

Refresh – aktualizuje dáta zobrazené pre jednu inštanciu skriptu alebo schémy.

Reset counters – vynuluje počítadlá v zoznamoch CNTs, ACTIONs, DbConnects, Dbs a DbTrans (popis nižšie).

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).

CNTs  - zoznam dátových kontajnerov

Dvojklik myšou na dátový kontajner zobrazí riadok jeho vzniku.

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).
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:
  • REDIM - zobrazuje sa požadovaný rozmer pre 10 posledných vykonaní.
  • VAR - deklarácia lokálnej premennej. Zobrazuje sa meno lokálnej premennej a aktuálna veľkosť potrebnej pamäte (v prípade rekurzie a lokálnej premennej je to spotreba pamäte pre všetky jej inštancie).

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 connectStringom. 
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 odoslané alebo prijaté. 
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 DB_CONNECT, PG_CONNECT, 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.

Súvisiace stránky:

Napíšte komentár