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.
Description of columns:
ID (HOBJ) | Unique identifier of object of Process type in DODM model. |
NAME | Unique name of object of Process type in DODM model. |
IP | IP of the computer where the process is running. |
AllocatedMermory | Memory 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.
JVM Instances tab provides view on JVM instances:
JVM parameters:
Physical process | Name of physical process in which JVM is created. |
Allocated memory | Amount of allocated memory in the Java Virtual Machine (total - free). |
Total memory | Total amount of memory in the JVM. |
Free memory | Amount of free memory in the JVM. |
Max memory | Maximum amount of memory that Java Virtual Machine will attempt to use. |
The DODM Process tab provides a view of DODM processes.
Description of columns:
ID (HOBJ) | Unique identifier of object of Process type in DODM model. |
NAME | Unique name of object of Process type in DODM model. |
Physical process | Name of physical process, in which DODM process is executed. |
D2000 HI | Name 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.
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). |
NAME | Name 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 HI | Name of D2000 HI, if DODM process is used for interpretation of ESL scripts, opened in the appropriate HIP process. |
Kernel instance ID | True 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 ID | Required 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. |
EventType | Configuration parameter. Possible values are TRIGGEREVENT, SERVEREVENT, CLIENTANDSERVEREVENT, UNITEVENT. |
QueueLength | For 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 OPENEVENT | A 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. |
lastInstanceId | The 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 Instances | The 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.
The sJava Instances tab contains the list of all sJAVA instances.
The following data of each instance are displayed:
ID (HOBJ) | HOBJ of an object to which the given instance belongs. |
NAME | Name of the object to which the given instance belongs. |
DODM process | Name of the object of Process type (with suffix EVH, HIS, SEE), which contains the given instance. |
State | Init_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 Time | Creation time of instance(start of script). |
QueueLength | Unprocessed requests in the queue. |
DB Transactions count | Opened database transaction count (created by calling the dbTransOpen method). |
Table Change Listeners count | Total count of listeners registered by calling the addDBTableListener method. |
RPC Conversation contexts count | The registered RPC conversations defined in the application. |
The Event Instances tab provides the most interesting view of the system in term of diagnostics.
This tab displays all running instances of ESL scripts in the system. Each instance contains these attributes:
idInstance | Unique 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). |
NAME | Name of object. |
EventType | Configuration parameter. Possible values are TRIGGEREVENT, SERVEREVENT, CLIENTANDSERVEREVENT, UNITEVENT. |
Kernel instance ID | True 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 ID | Required 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 stamp | Timestamp from the configuration of the object. |
Start Time | Creation time of instance (start of script). |
Current Line | Currently 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. |
Status | Current script status (status ES_WAIT_EXTERNAL_RQ means the passive waiting). |
Physical process, DODM process | Name of objects of Process type (with suffix EVH, HIS, SEE, SES), which contains the given instance. |
Queue Length | For 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. |
DBS objects count | (+) Number of database objects with which data were exchanged (read/write). |
D2000 HI | Name 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.
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:
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:
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:
Handle | Unique identifier of the data container. The value is the same as the value returned byCNT_CREATE. |
userIdent | Value of string, defined by a user, within CNT_DEBUG. |
Current Items | Current items in the container. |
Maximal Items | Maximum items in the container (it may be reset by the option Reset counters). |
Current Size | Container size in Bytes. |
In Array mode | The flag that indicates the existence of an internal array (see CNT_CNVTOARRAY script action). |
Created by CNT_CREATE | It 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:
Line | The line on which the action occurs. |
Action | Identification of action type. |
Counter | Number of usage of action (it may be reset by the option Reset counters). |
Counter passive | The 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). |
Duration | Total duration of the active execution (it may be reset by the option Reset counters). |
DurationPassive | Total duration of the passive waiting for execution of required activity (it may be reset by the option Reset counters). |
maxDuration | The maximum duration of the active execution (it may be reset by the option Reset counters). |
maxDurationPassive | The 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:
|
FIOs - opened files
After double-clicking on the file, the line of its creation appears.
Description of columns:
Id | Unique identifier of file. The value equals to the value returned by the appropriate %FIO_* action. |
File Name | Name of file. |
Encoding | File 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:
Handle | Unique identifier of connection. The value is equal to a value that returns the appropriate action. |
parentDB_TRANS | DEFAULT = 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. |
connectString | The value that is valid when establishing a connection by SQL_CONNECT with connectString. |
outDataSize, inDataSize | Amount of data which were sent or received within the given connection. |
nr out, nr in | Number of output or input operations. |
connectType | Depending on the method of establishing the connection, it is the value PG_CONNECT, DB_CONNECT, or SQL_CONNECT. |
dbObject | Name 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). |
structTypId | Name of structure definition assigned to the appropriate object of Table type. |
bSqlPrepared | The flag that indicates whether SQL_PREPARE is active on the given connection. |
sqlPrepareStmt | Form 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:
Table | Name of object of Table type (if only HOBJ is available, the following message appears: #ObjNotFound#(302), but HOBJ=302). |
outDataSize, inDataSize | The amount of data that was read/written. |
nr out, nr in | Number 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:
Handle | Unique identifier of connection. The value is equal to a value that returns the appropriate action DB_TRANS_OPEN. |
dbObject | Name of object of Database type, for which the transaction was opened. |
subConnectsNr | The number of connections of type PG_CONNECT, DB_CONNECT, or SQL_CONNECT established within the transaction. |
outDataSize, inDataSize | The amount of data that was sent or received within a connection. |
nr out, nr in | Number 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:
Pridať komentár