ESL Diagnostic Pack

ESL Diagnostic Pack

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
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, a s voľbou Copy '<názov stĺpca>', ktorá skopíruje do schránky konkrétnu položku.

Fyzické procesy
Fyzické procesy

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

Inštancie JVM
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
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
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
Definície objektov

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

Definície objektov
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
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.
XML objekty možu byť celé XML dokumenty, alebo zoznam Childov, alebo len jeden element.
Hodnota môze byť teda väčšia ako 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
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
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
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.

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:

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