ESL Diagnostic Pack provides a view of 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 contained by the DODM model. Depending on the 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 the 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 the computer where the process is running.
AllocatedMermoryMemory allocated to the given process.

When right-clicking on any view, the popup menu appears with options Copy and Copy '<column name>'. The first option enables copying a displayed list into the clipboard. The second option copies a specific item to the 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.

The DODM Process tab provides a view of 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 the Physical process is of SES type, the value in the NAME column is different than in the Physical process column.

The Event Definitions tab provides a view of 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 the 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 the 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 instance number. Value is 0 (zero), if the object is not opened multiply. If it has been opened as an instance, its real instance is listed in this column. This is the return value of function %GetSelfInstanceId(@TRUE).
Logical instance IDRequired instance number. The value is 0 (zero), if the object is not opened multiply. If it has been opened as an instance, its required instance is listed in this column. This is the return value of function %GetSelfInstanceId(@FALSE).
BASE ID (HOBJ)HOBJ of an object that contains the given ESL script. This is a return value of the %GetSelfHBJ(@TRUE) function.
EventTypeConfiguration parameter. Possible values are TRIGGEREVENT, SERVEREVENT, CLIENTANDSERVEREVENT, UNITEVENT.
QueueLengthFor an object of SERVEREVENT or CLIENTANDSERVEREVENT type (including 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 the request queue for the start, the value expresses the number of requests for the 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 the right mouse button and selecting an appropriate option.
lastInstanceIdThe existence of the definition of an Event object on the EVH process does 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 a unique identifier, which is displayed in this column. Its value can be retrieved by calling %GetEventInstanceId().
Number of InstancesThe number of instances of an object of Event type that were started from the given definition. Usually, it is 0 or 1. A higher value may be achieved when using ENABLE script action.  

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

Definície objektov

The 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 an object to which the given instance belongs.
NAMEName of the object to which the given instance belongs.
DODM processName of the 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 the 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.

The Event Instances tab provides the most interesting view of the system in term of diagnostics.

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 obtained 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 are TRIGGEREVENT, SERVEREVENT, CLIENTANDSERVEREVENT, UNITEVENT.
Kernel instance IDTrue instance number. Value is 0 (zero), if the object is not opened multiply. If it has been opened as an instance, its real instance is listed in this column. This is the return value of function %GetSelfInstanceId(@TRUE).
Logical instance IDRequired instance number. The value is 0 (zero), if the object is not opened multiply. If it has been opened as an instance, its required instance is listed in this column. This is the return value of function %GetSelfInstanceId(@FALSE).
Modify time stampTimestamp from the configuration of the 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 occupied by all local variables (their 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 an object of SERVEREVENT or CLIENTANDSERVEREVENT type (including 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 the start, the value means the number of requests for the start.
XML Docs count

(+) Number of handles to XML objects.

The value is the number of handles to XML objects that have been published to the ESL environment.
XML objects can be entire XML documents, or a list of Children, or just one element.
Therefore, the value can be greater than the number of open 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 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 enable to close the instance or close and reopen (the required number of instance will remain).

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

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

Example:

Otvorené schémy a eventy

In the screenshot 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 the instance. The remote script uses two events of UNIT type, which are declared in the ESL script as _u and _u1.
The picture S.Master contains the subpicture S.Sub.
In D2000 HI, the object of the Event type is opened - E.server. The name contains the 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 an 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-clicking on the data container, the context menu is opened. Click "Watch" to open the Container object inspector.

Description of columns: 

HandleUnique identifier of the data container. The value is the same as the value returned byCNT_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 modeThe flag that indicates the existence of an internal array (see CNT_CNVTOARRAY script action).
Created by CNT_CREATEIt describes the way of container's creation. TRUE – by CNT_CREATE script action. FALSE – by GETARCHARR_TO_CNT script action.


ACTIONs  - the actions in the ESL script

Each action of the ESL script is je characterized as stated in the screenshot below:

Script E.CallServerWithQueue:

Script E. ServerWithQueue:

Description of columns:

LineThe line on which the action occurs.
ActionIdentification of action type.
CounterNumber of usage of action (it may be reset by the option Reset counters).
Counter passiveThe number 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 the 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).
maxDurationThe maximum duration of the active execution (it may be reset by the option Reset counters).
maxDurationPassiveThe 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 the type of action. Only two actions give the information:
  • REDIM - displays the required size for the 10 latest executions.
  • VAR - declaration of the local variable. It displays the name of the 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 equals to the value 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

fter double-clicking on the file, the row 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 the so-called Automatic connection or name of an object of Database type that was used to establish the database transaction by DB_TRANS_OPEN
connectStringThe value that is valid when establishing a connection by SQL_CONNECT with connectString
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 the object of Table type, which was used when establishing the connection (if only HOBJ of an object is available, the following message appears: #ObjNotFound#(302), but HOBJ=302). 
structTypIdName of structure definition assigned to the appropriate object of Table type.
bSqlPreparedThe flag that indicates whether SQL_PREPARE is active on the given connection.
sqlPrepareStmtForm of SQL command.


Dbs - database objects that were read/written by a script

This view summarizes the quantity of transferred data with regard to the objects of Table type regardless of the 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 was read/written. 
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.
subConnectsNrThe number of connections of type PG_CONNECT, DB_CONNECT, or SQL_CONNECT established within the transaction.  
outDataSize, inDataSizeThe amount of data that was sent or received within a 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 instances.

Related pages:

Napíšte komentár