ESL Diagnostic Pack provides a view on the running ESL and JAVA scripts in an application. It is accessible from D2000 CNF Objects -> ESL Diagnostic Pack or D2000 GrEditor, Configuration D2000 -> ESL Diagnostic Pack.

Each script is interpreted within a process, which is DODM model. Depending on a configuration, these processes can be identical to the processes that run in an operating system (HIP, EVH, SES, HIS) or they are just DODM processes (SEE).

The physical processes are monitored on Physical process tab.

Physical processes

Description of columns:

ID (HOBJ)Unique identifier of object of Process type in DODM model.
NAMEUnique name of object of Process type in DODM model.
IPIP of computer where the process is running.
AllocatedMermoryMemory allocated to the given process.

When right clicking on any view, the popup menu appears with one option Copy. It enables to copy a displayed list into clipboard.

Physical processes

JVM Instances tab provides view on JVM instances:

Inštancie JVM

JVM parameters:

Physical processName of physical process in which JVM is created.
Allocated memoryAmount of allocated memory in the Java Virtual Machine (total - free).
Total memoryTotal amount of memory in the JVM.
Free memoryAmount of free memory in the JVM.
Max memoryMaximum amount of memory that Java Virtual Machine will attempt to use.

DODM Process tab provides view on DODM processes.

DODM process

Description of columns:

ID (HOBJ)Unique identifier of object of Process type in DODM model.
NAMEUnique name of object of Process type in DODM model.
Physical processName of physical process, in which DODM process is executed.
D2000 HIName of D2000 HI, if the process is used for interpretation of ESL scripts opened in the given HIP process.

If Physical process is of SES type, the value in NAME column is different than in Physical process column.

Event Definitions tab provides view on the definition of objects of Event or Picture type, as they are placed within the logical DODM processes.

Definitions of objects

The process of EVH type contains the definition of all its children (objects of Event type), or definition of objects of Event type, which were opened by OPENEVENT in the given process.

The process of HIS type contains the definition of currently opened pictures (client part of script) and definition of objects of Event type (client part of script), which were opened by OPENEVENT in the given process.

The process of SEE type contains the definition of server script of currently opened pictures and the objects of Event type on a dedicated HIS process.

Description of columns:

ID (HOBJ)If an object has been opened multiply (OPEN action or OPENEVENT action), the column contains its dynamic HOBJ. This is a return value of %GetSelfHBJ(@FALSE).
NAMEName of object containing ESL script.
Physical process
DODM process
Name of objects of Process type (with suffix EVH, HIS, SEE, SES), which contains the given definition.
D2000 HIName of D2000 HI if DODM process is used for interpretation of ESL scripts opened in the appropriate HIP process.
Kernel instance IDTrue number of instance. Value is 0 (zero), if the object is not opened multiply. If it has been opened as instance, in this column there is listed its real instance. This is the return value of function %GetSelfInstanceId(@TRUE).
Logical instance IDRequired number of instance. The value is 0 (zero), if the object is not opened multiply. If it has been opened as instance, in this column there is listed its required instance. This is the return value of function %GetSelfInstanceId(@FALSE).
BASE ID (HOBJ)HOBJ of object that contains the given ESL script. This is a return value of %GetSelfHBJ(@TRUE) function.
EventTypeConfiguration parameter. Possible values TRIGGEREVENT, SERVEREVENT, CLIENTANDSERVEREVENT, UNITEVENT.
QueueLengthFor object of SERVEREVENT or CLIENTANDSERVEREVENT type (this includes also a picture), the value means the number of requests (e.g. calls of RPC procedures, changes watched by ON CHANGE, ...) in a queue. For the event of TRIGGEREVENT type and the permission of request queue for start, the value means the number of requests for start.
Openned by OPENEVENTA flag that indicates whether the instance was opened by OPENEVENT action. If yes, it may be closed or restarted after pressing right mouse button and selecting an appropriate option.
lastInstanceIdThe existence of definition of Event object on EVH process not necessarily mean the existence of its instance. This condition can occur with the Event object that is started by changing the value of object (trigger). In other cases, usually, just one instance of ESL script exists toward one definition. Each running instance in the process is defined by the unique identifier, which is displayed in this column. Its value can be retrieved by calling %GetEventInstanceId().
Number of InstancesNumber of instances of object of Event type that were started from given definition. Usually, it is 0 or 1. Higher value may be achieved when using ENABLE script action.  

After pressing right-mouse button, the menu with two options appears. The Edit option is available for object of Picture type only in D2000 GrEditor.

Definície objektov

sJava Instances tab contains the list of all sJAVA instances.

Definície objektov

The following data of each instance are displayed:

ID (HOBJ)HOBJ of object which the given instance belongs to.
NAMEName of object  which the given instance belongs to.
DODM processName of object of Process type (with suffix EVH, HIS, SEE), which contains the given instance.
StateInit_Error – sJava instance failed to start due to a compiler error or an error generated by JVM when creating an instance class (e.g. failed to find the dependent classes - classNotFound java exception ...).
IDLE – the request queue waiting for processing is empty and no request is processed (changing the value of object, request to execute RPC, ...).
Running – the request is processed.
SyncWaiting – passive waiting on finishing the synchronous action (e.g. reading data from archive, synchronous calling the RPC, ...) during processing the request.
Start TimeCreation time of instance(start of script).
QueueLengthUnprocessed requests in the queue. 
DB Transactions countOpened database transaction count (created by calling the dbTransOpen method).
Table Change Listeners countTotal count of listeners registered by calling the addDBTableListener method.
RPC Conversation contexts countThe registered RPC conversations defined in the application.

Event Instances tab provides the most interesting view on the system in term of diagnostic.

Event Instances

This tab displays all running instances of ESL scripts in the system. Each instance contains these attributes:

idInstanceUnique identifier of instance. It may be get by calling the %GetEventInstanceId(). 
ID (HOBJ)If the object was opened multiply (OPEN script action or OPENEVENT), the column contains its dynamic HOBJ. This is a return value of %GetSelfHBJ(@FALSE).  
NAMEName of object.
EventTypeConfiguration parameter. Possible values TRIGGEREVENT, SERVEREVENT, CLIENTANDSERVEREVENT, UNITEVENT.
Kernel instance IDTrue number of instance. Value is 0 (zero), if the object is not opened multiply. If it has been opened as instance, in this column there is listed its real instance. This is the return value of function %GetSelfInstanceId(@TRUE).
Logical instance IDRequired number of instance. The value is 0 (zero), if the object is not opened multiply. If it has been opened as instance, in this column there is listed its required instance. This is the return value of function %GetSelfInstanceId(@FALSE).
Modify time stampTime stamp from the configuration of object.
Start TimeCreation time of instance (start of script).
Current LineCurrently executed line.
CNT count(+) Number of created data containers.
CNT dataSize(+) Memory size which is occupied by data from containers.
Local vars data size(+) Memory size which is occupied by all local variables (they size may be found in the ESL Diagnostic Pack - Instance).
DB Connects count(+) Number of database connections that are created by DB_CONNECT, PG_CONNECT and SQL_CONNECT.
DB Transactions count(+) Number of database transactions opened by DB_TRANS_OPEN.
Files count(+) Number of files opened or created by %FIO_* script action.
Object lists count(+) Number of opened by LST_CREATE.
StatusCurrent script status (status ES_WAIT_EXTERNAL_RQ means the passive waiting).
Physical process, DODM processName of objects of Process type (with suffix EVH, HIS, SEE, SES), which contains the given instance.
Queue LengthFor object of SERVEREVENT or CLIENTANDSERVEREVENT type (this includes also a picture), the value means the number of requests (e.g. calls of RPC procedures, changes watched by ON CHANGE, ...) in a queue. For the event of TRIGGEREVENT type and the permission of request queue for start, the value means the number of requests for start.
XML Docs count(+) Number of opened XML documents.
DBS objects count(+) Number of database objects with which data were exchanged (read/write).
D2000 HIName of D2000 HI if DODM process is used for interpretation of ESL scripts opened in the appropriate HIP process.

The columns with (+) contains the total count of elements which includes also possible instances of UNIT events !!!!

This menu appears after the right-clicking over the instance.

Event Instances popup

The option Close Instance and Restart Instance is available only for instances that were opened by OPENEVENT script action and enables to close the instance or close and reopen (the required number of instance will remain).

The option Open Detail opens detail view on the instance (ESL Diagnostic Pack – Instance).

The option Open Tree Detail is available only for the script of picture. It opens detailed view on all opened pictures and events in the D2000 HI.

Example:

Otvorené schémy a eventy

On the picture you may see that two pictures are opened in D2000 HI - S.Browser and S.Master.
The picture S.Browser has both a local and remote script (the remote one is specified by the word REMOTE). After the name, there is always the attribute idInstance for better identification of instance. The remote script uses two event of UNIT type, which are declared in ESL script as _u and _u1.
The picture S.Master contains the subpicture S.Sub.
In D2000 HI, there is opened the object of Event type - E.server. The name contains REMOTE flag, so it is started as the remote script. After right-clicking on the event or picture, this popup menu opens:

Event Instances popup2

Refresh – refreshes data on instance of script or picture.

Reset counters – resets the counters in the lists of CNTs, ACTIONs, DbConnects, Dbs and DbTrans (in the text below).

If some picture has only JAVA script, this information will display:

If the picture has both ESL script and JAVA scrip, both will be displayed:

Each instance describes in detail its status by the following items (the number in the square brackets represents the number of instances for each item).

CNTs  - data containers

After double-clicking on the data container, the line of its creation appears.

After right-click on the data container, the context-menu is opened. Click "Watch" to open Container object inspector.

Description of columns: 

HandleUnique identifier of data container. The value is the same as value returned by CNT_CREATE.
userIdentValue of string, defined by a user, within CNT_DEBUG.
Current ItemsCurrent items in the container.
Maximal ItemsMaximum items in the container (it may be reset by the option Reset counters).
Current SizeContainer size in Bytes.
In Array modeFlag that indicates the existence of internal array (see CNT_CNVTOARRAY script action).
Created by CNT_CREATEDescribed the way of creation of container. TRUE – CNT_CREATE script action. FALSE – GETARCHARR_TO_CNT script action.


ACTIONs  - the actions in ESL script

Each action of ESL script is je characterized as stated on the picture below:

Script E.CallServerWithQueue:

Script E. ServerWithQueue:

Description of columns:

LineLine on which the action occurs.
ActionIdentification of action type.
CounterNumber of usage of action (it may be reset by the option Reset counters).
Counter passiveNumber of passive wait states. This value increases by 1 after each passive waiting on the action to carry out the activity which caused. The counter can be higher than Counter. In the example above, the DELAY and RPC CALL SYNC action cause it (to reset it, use the option Reset counters).
DurationTotal duration of the active execution (it may be reset by the option Reset counters).
DurationPassiveTotal duration of the passive waiting for execution of required activity (it may be reset by the option Reset counters).
maxDuration Maximum duration of the active execution (it may be reset by the option Reset counters).
maxDurationPassive Maximum duration of the passive waiting for execution of required activity (it may be reset by the option Reset counters).
actionInfo Variable information which depends on type of action. Only two actions give the information:
  • REDIM - displays the required size for 10 latest executions.
  • VAR - declaration of the local variable. It displays the name of local variable and the current size of necessary memory (in case of recursion and the local variable it is the memory consumption for all its instances).


FIOs  - opened files

After double-clicking on the file, the line of its creation appears.

Description of columns:

IdUnique identifier of file. The value is equal to the value that is returned by the appropriate %FIO_* action.
File NameName of file.
EncodingFile encoding.


DbConnects - database connections that were created by DB_CONNECT, PG_CONNECT and SQL_CONNECT

DAfter double-clicking on the file, the line of its creation appears.

Description of columns:

HandleUnique identifier of connection. The value is equal to a value that returns the appropriate action. 
parentDB_TRANSDEFAULT = if the connection to a database is created by so-called Automatic connection, or name of object of Database type that was used to establish the database transaction by DB_TRANS_OPEN. 
connectStringThe value that is valid when establishing connection by SQL_CONNECT with connectStringom. 
outDataSize, inDataSizeAmount of data which were sent or received within the given connection. 
nr out, nr inNumber of output or input operations. 
connectTypeDepending on the method of establishing the connection, it is the value PG_CONNECT, DB_CONNECT or SQL_CONNECT.
dbObjectName of object of Table type, which was used when establishing the connection (if only HOBJ of object is available, the following message appears: #ObjNotFound#(302), but HOBJ=302). 
structTypIdName of structure definition assigned to the appropriate object of Table type.
bSqlPreparedFlag that indicates whether SQL_PREPARE is active on the given connection.
sqlPrepareStmtForm of SQL command.


Dbs - database objects that was read by script or recorded data

This view summarizes quantity of transferred data with regard to the objects of Table type regardless of way or connection on which the transfer occurred.

Description of columns:

TableName of object of Table type (if only HOBJ is available, the following message appears: #ObjNotFound#(302), but HOBJ=302). 
outDataSize, inDataSizeThe amount of data that were sent or received. 
nr out, nr inNumber of output or input operations.


DbTrans - database transactions opened by DB_TRANS_OPEN

After double-clicking on the file, the line of its creation appears.

Description of columns:

HandleUnique identifier of connection. The value is equal to a value that returns the appropriate action DB_TRANS_OPEN. 
dbObjectName of object of Database type, for which the transaction was opened.
subConnectsNrNumber of connections of type DB_CONNECT, PG_CONNECT, SQL_CONNECT established within the transaction.  
outDataSize, inDataSizeThe amount of data that were sent or received within connection.
nr out, nr inNumber of output or input operations.


UNITs - instances of Units

In the list of instances of UNIT events you may see similar information as in the list of event instance.

Related pages:

Napíšte komentár