Evaluation log file
Description
This module is used to create various evaluations of log files and display them accordingly. The files are read out according to sessions (start of ClassiX® until end or crash). The remaining entries of the log file are thus assigned to the created sessions. If additional dbProf files are read in, these entries are assigned to the sessions by the OS Client ID, if possible. An option can be used to set whether or not the previous sessions should be reset before each import. If this option is not set, many days in a row can easily be read in.
Either several selected files, entire folders can be read in (subfolders are automatically taken into account) or a time period can be specified in which all log files are automatically searched and loaded. Specifying a time period is best suited in MorphIT, because the MorphIT user does not have to worry about the location of the log files and whether they are on the same computer, especially since in this case no files have to be uploaded. The automatic reading of log files depending on the time period requires that the log files are stored in a temporal subfolder structure, i.e. the following option must be activated in logging.ini.
log4cplus.OrganizeLogsByDate=true
Selecting individual files also allows you to view files for sessions from different time periods and points side by side.
In addition to the sessions and user logins, certain events such as deadlocks, timeouts, crashes, etc. are additionally summarised in monitors across sessions. After reading in, all sessions are displayed in the session list with the most important data. A session is opened by double-clicking on it and you can see what happened.
In the Statistics tab, graphical evaluations can be created flexibly. The monitors can be assigned to the diagrams as desired. There is a maximum of 3 diagrams, whereby only one monitor can be assigned to a diagram. You can drag and drop the monitors into the diagram areas or select a monitor and then click on the corresponding "Add monitor" button. For dbProf statistics, the desired evaluation can be selected after a double click.
In the X-axis option area, the evaluation variant can be selected, whereby the transactions are evaluated according to time or date. In the case of an evaluation based on time, all transactions are summarised according to their time, so that one can see, for example, which events have occurred at which time of day. In this case, it makes sense to load or select only sessions from a single day. The time span and the period length of the evaluation can be specified in the Options section. The period length self-explanatory determines the accuracy of the statistics. For statistics accurate to the minute, a period length of 1 minute should be selected, but this could lead to extensive graphs. If, on the other hand, you want to make a summary evaluation over several days, you should select the option by date. All transactions of a particular monitor are summarised in days and displayed graphically. You could also select the time of day under Options, outside which the transactions are not considered. The monitor user has the special feature that besides the normal evaluation of the login, the maximum number of simultaneous use of ClassiX on one day is graphically displayed.
Either "All sessions" or "Selected sessions only" can be set as an option. With the option "All sessions" all loaded sessions are used for the evaluation, otherwise only the sessions selected in the session list are used. The option "All sessions" can be used to read and compare only dbProf files of different days. So it is not necessary to read in all files from each day.
For any number of monitors the transactions can be viewed within a time span. This makes it easier to understand which events are interdependent within a limited period of time.
In the tab Blocks/ Crashes/Locks the transactions mentioned above for the selected sessions are displayed. The locking conflicts can be viewed in a summary by "Locked By" (Who is locking the others?) and segment.
Red lines in a list or also called ListView Fatals (crashes within a ListView) are displayed in the same tab.
RO and RW long distance transactions are grouped by location and displayed in the Long distance TXNs tab. The average duration and the average number of pages read are also displayed.
IV faults are displayed in a separate tab.
Evaluation: Performance
The following options are available for evaluating performance and determining the causes of good/bad performance:
- Determination of the key figures for the performance of one day (summary)
All you need to do is read in the server log file (cxdbprof). The next step is to drop the cxdbprof monitor into the fields "chart1" to "chart3". Using Oboxedit, the code number to be evaluated can now be selected from a table. Before starting the evaluation, select the option "Summary
The following indicators are the most meaningful:
- Waiting time per traffic
- Waiting time per commit
- Total lock wait time (Total lock wait time)
- Traffic
- Commits - Determination of key performance indicators over the course of a day (daily evaluation)
It is checked for a time span (time specification) how the performance has developed. This evaluation can be used, for example, to determine when blockages and the resulting longer waiting times occurred. This is the first step towards being able to see what the cause of this is, as you now know which intervals to concentrate on when looking for the cause. - Analysis of the system behaviour in a specific period
Once the log files have been read in completely, the monitors whose transactions are to be viewed can be selected in the group "Transactions within a time period". As a rule, these are all except the monitor "dbprof statistics". Now you can check exactly what has happened for a period of time.
What should be taken into account when evaluating the log files, or what are indications of code that can be optimised?
1. Evaluation of the blockades
2. Display blockade networks:
3. Check whether the topmost entries in the right-hand list are lines with a value higher than 50 in the "Number" column, or very many with high numbers (e.g. the first 15 entries more than 20 blockades in the "Number" column):
4. Review cross-country skiers TXN:
If long-runners that have been marked as blockage triggers (second column) appear in the list with more than two minutes:
5. Statistics:
If more than 600 blockades occurred:
Overview of key figures: Performance
Key figure | Description | Destination |
---|---|---|
Max KB read / 5sec. | In 5 second intervals cxdbprof logs how many kilobytes a client has read/written. From these values the best 1% are picked out and its average corresponds to this figure. | The cxdbprof logfile must be read in. Then the |
Max KB write / 5sec. |
Evaluation: System crashes
For the evaluation of the system crashes the log files of the clients must be loaded, those of the server (cxdbprof.log) can be ignored. By double clicking on the monitor "Crashes" in the list of monitors all crashes are displayed. In the list each crash is described by three columns. (Error message of the crash, if a deadlock has occurred before, output of the C++ stack)
In order to record a tendency of the number of crashes or to determine the increase/decrease of errors due to a difference, it is important to record key figures. This output of the key figures is done by clicking the corresponding button. By transferring the key figures daily to Excel, it is possible to make statements about the course of events.
The following key figures are available:
- Number of crashes (system crashes)
- Number of crashes with previously occurred deadlock
- Number of crashes with displayed error message
- Number of crashes without error message but with the C++ stack belonging to the error message
- Number of crashes without error message and without the C++ stack belonging to the error message
(The truth value of this metric is not very high, as unexpectedly terminated LogFiles are also recorded here).
Functionality
- List window
- Session
- Included transactions
- Locking Summary
- Error while reading in
- Evaluation
- Option window
List window
To carry out an evaluation, any number of log files must first be selected. The log files are first evaluated according to sessions. A session is the duration from the start of ClassiX® until the termination or system crash. If another ClassiX® instance is started during a session, a counter is incremented in the current session. If the option "Reset sessions each time log files are read in" is not set, log files can be read in one after the other without losing the previously read in sessions.
If a file ends before a session is finished, the session end time is set to the time of the last event.
If a log file does not start when ClassiX® starts, a session is created that takes the start time of the first event of the file.
If errors occur during reading in, these can be viewed later in the window Errors during reading in.
Columns of the session list:
CW | Shows the calendar week |
Start date | Date that marks the start of a session |
Start time | Time that marks the beginning of a session |
End date | Date that marks the end of a session |
End Time | Time that marks the end of a session |
Client | The client is either the logged on Windows user or the computer name |
OS Client | unique client number assigned by Object Store |
Parallel sessions | Number of sessions started and ended during an ongoing session |
Crashes | Number of crashes in the session |
ListView Fatals | Number of ListView Fatals in the session |
Deadlocks | Number of deadlocks in the session |
Timeouts | Number of timeouts in the session |
RW transactions | Number of RW transactions over 30 seconds session |
RO Transactions | Number of RO transactions over 30 seconds session |
Locks | Number of locking conflicts in the session |
Error | Number IV errors in the session |
File | File name, which is the origin of the session |
Double-click on a session to open the session window. The evaluations for the lists, blockades/crashes/locks, ListView Fatals, long distance TXNs and IV errors are always immediately created and displayed for the currently selected sessions.
Menu item | Description |
---|---|
Edit | - |
: File | - |
:: Select log file | Opens dialog boxes to select log files to be read. |
:: Select folder | Opens dialog boxes to select a folder whose log files are to be read. |
: Select time period | Opens dialog boxes to specify a time period from which log files are to be read. |
: Determine key performance indicators | |
Determine key performance indicators for several days | |
: Display blockade nets | |
Close | Close window |
Options | Opens options window |
Symbol | Description |
---|---|
![]() | Opens dialog boxes to specify a time period from which log files are to be read. |
![]() | Opens dialog boxes to select log files to be read. |
![]() | Copies the objects in the active tab to the clipboard |
![]() | Resets the evaluation and all lists |
Field | Description |
---|---|
Client | You can search for a client whose sessions are selected in the list. |
OS Client | To search for an OS Client ID. The sessions found are selected in the list. |
button | Description |
---|---|
![]() | Copies the objects of the session list to the clipboard |
All | All objects in the session list are selected |
None | All objects in the session list are deselected |
Close | The window is closed. |
Field | Description | ||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Monitors | List shows the different monitors and the number of transactions they contain. Double-clicking on a monitor displays its transactions in the Contained Transactions window. The following monitors are available:
| ||||||||||||||||||||||||||||||||||||||||||||||||||
: Graphic representation | - | ||||||||||||||||||||||||||||||||||||||||||||||||||
:: X-axis | - | ||||||||||||||||||||||||||||||||||||||||||||||||||
About the date | The transactions in the selected monitors are broken down by date and the total value is calculated for each day. In most cases, this represents the total number, except for the dbProf statistics. See description in the introduction. | ||||||||||||||||||||||||||||||||||||||||||||||||||
About the time | The transactions in the selected monitors are broken down by time and the total value is calculated for each time period. More can be found in the introduction. | ||||||||||||||||||||||||||||||||||||||||||||||||||
:: Monitors for diagram 1 | To create an evaluation, any monitor can be inserted into one of the chart lists by drag&drop or selected with the Add Monitor button. Only one monitor per chart is possible. The chart window shows variably either 1, 2 or 3 charts, depending on how many monitors have been inserted. The monitor "dbProf statistics" is edited by double-clicking in the list of a chart to select which evaluation is to be displayed. The "Del" key removes monitors from the list again. | ||||||||||||||||||||||||||||||||||||||||||||||||||
:: Monitors for diagram 2 | |||||||||||||||||||||||||||||||||||||||||||||||||||
:: Monitors for diagram 3 | |||||||||||||||||||||||||||||||||||||||||||||||||||
:: Options | - | ||||||||||||||||||||||||||||||||||||||||||||||||||
All sessions | If the option "All" is selected, all transactions contained in the monitors are used for the desired evaluation. In the case of Selected Sessions only the transactions of the selected monitors contained in the selected sessions are used for the evaluation. | ||||||||||||||||||||||||||||||||||||||||||||||||||
Only selected sessions | |||||||||||||||||||||||||||||||||||||||||||||||||||
Interval (only for About Time) | The interval indicates the time period in which the diagrams are displayed. The time period can be freely selected within one day. | ||||||||||||||||||||||||||||||||||||||||||||||||||
Period (only with About Time) | The period determines the duration of the calculation periods. e.g.: 10.00 - 10.05 for a period of 5 min. The period is freely selectable. | ||||||||||||||||||||||||||||||||||||||||||||||||||
::: Time span (only for About date) | Indicates the period of time for which transactions are to be considered on each day. This allows you to compare days where certain time periods are missing. | ||||||||||||||||||||||||||||||||||||||||||||||||||
Transactions within a period of time | Displays the transactions contained in the inserted monitors and selected sessions, contained transactions within a period in the Contained Transactions window. Press the "Del" key to remove monitors from the list. | ||||||||||||||||||||||||||||||||||||||||||||||||||
Options | - | ||||||||||||||||||||||||||||||||||||||||||||||||||
:: Period of time | Corresponds to the time period in which the transactions are to be displayed. |
button | Description |
---|---|
![]() | Displays the graphic diagrams according to the setting. |
![]() | The transactions within a time period are displayed. |
ListView Fatals
This list displays the ListView Fatals (Hard crashes within a ListView - Red lines) for the selected sessions.
If these occur more than once at one point, they are displayed together. By pressing a Double-clicking on a list entry displays the contained transactions in the Contained Transactionswindow.
Field | Description |
---|---|
The list shows the crashes, deadlocks, timeouts and locking conflicts of the selected sessions. By double-clicking, the session belonging to the transaction is displayed in the Session window. | |
Show crashes | Depending on how the check box is set, crashes may or may not appear in the list. |
Show deadlocks | Depending on how the check box is set, deadlocks may or may not appear in the list. |
Show timeouts | Depending on how the check box is set, timeouts may or may not appear in the list. |
Show lock conflicts | Depending on how the checkbox is set, lock conflicts are displayed in the list or not. The columns: Client, OS ID, Locked by, OS ID and Segment show more information specific to the lock conflict. |
Number of crashes | Number of crashes shown in the list |
Number of timeouts | Number of timeouts displayed in the list |
Number of deadlocks | Number of deadlocks displayed in the list |
Number of Locks | Number of locks displayed in the list |
button | Description |
---|---|
![]() | Opens the Locking Summary window for the locks included in the list, to give a better overview. |
Field | Description | ||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
In this tab, the long-running transactions are summarised in the list. These are all transactions over 30 seconds. These transactions are grouped together if they occur at the same point in the code. The total time and the number of pages are added together and the average time is calculated from the total time and the number. A distinction is made between R/W - read/write transaction and R/O - pure read transaction. The evaluation always takes place for the selected sessions. Double-click on a list entry to display the contained transactions in the Contained Transactions window. Columns in the list
| |||||||||||||||||||||
Display read TXNs | Depending on how the check box is set, the read TXNs are displayed or not in the list. | ||||||||||||||||||||
Display read/write TXNs | Depending on how the checkbox is set, the read/write TXNs may or may not appear in the list. | ||||||||||||||||||||
Number of RWs | Total number of RW TXNs displayed in the list | ||||||||||||||||||||
Total duration RWs | Total duration of all RW TXNs displayed in the list | ||||||||||||||||||||
Number of ROs | Total number of RO TXNs displayed in the list | ||||||||||||||||||||
Total duration ROs | Total duration of all RO TXNs displayed in the list |
This list displays the Instantview errors for the selected sessions. Identical errors are summarised. By double-clicking on a list entry, the contained transactions are displayed in the Contained Transactions window.
Session
This window displays all transactions included in the session sorted by timestamp. Transactions that are held in a monitor appear in red in the list (except for the dbProf statistics).
Symbol | Description |
---|---|
![]() | Copies the objects in the list to the clipboard |
Field | Description |
---|---|
calendar week | |
Client | |
Date | |
File | |
OS Client | |
Show warnings | Depending on how the checkbox is set, warnings may or may not appear in the list. |
button | Description |
---|---|
Close | Close window |
Included transactions
This window displays all transactions included in the period sorted by time stamp.
Symbol | Description |
---|---|
![]() | Copies the objects in the list to the clipboard |
Field | Description |
---|---|
Period | Shows the period from which the transactions originated. |
button | Description |
---|---|
Close | Close window |
Locking Summary
Locking conflicts are summarised by Locked by and by segment. To view the individual Locks, simply select the appropriate summary and Locks will be displayed in the Locking Conflicts list.
Field | Description |
---|---|
Locked by | This list shows the summary after Locked by. Double-clicking on a list entry opens the corresponding session in the Session window. |
Segment | This list shows the summary by segment. |
Locking conflicts | All locking conflicts contained in the currently selected summaries are displayed in this list. Double-clicking on a locking conflict opens its corresponding session in the session window. |
button | Description |
---|---|
Close | Close window |
Error while reading in
The errors that occurred during reading are displayed here.
Symbol | Description |
---|---|
![]() | Copies the objects in the list to the clipboard |
Field | Description |
---|---|
button | Description |
---|---|
Close | Close window |
Evaluation
In this window the diagrams of the evaluation are displayed.
Option window
Menu item | Description |
---|---|
Set default settings | all changed settings are reset to default |
button | Description |
---|---|
OK | Settings are saved and window is closed |
Setting | Description |
---|---|
Reset sessions each time log files are read | The sessions contained in the list are lost when a log file is read in. |
Blockade trigger - tree view
If users create time-consuming bookings, it can happen that other users are hindered in their activities, as individual data is exclusively blocked by the booking. The other users then wait for the end of the transaction before they can continue. They only notice this circumstance by an extended duration of the action they are about to perform. Such behaviour is called blocking. As long as the user is waiting for the release of his data, it is possible that he has already locked data for himself, for which other users must then wait. Similar to the snowball system, a network of blockades could develop in an unfavourable case, which is all triggered by the time-consuming booking of the first user.
To be able to find such time-consuming bookings that block many users, this tree view is available. Here you can see who the first blocker was, who he blocked, and who was blocked by the other users. Users who have only been blocked without triggering the blockade themselves are not displayed at the top level of the tree.
The behaviour of the snowball system must be prevented by targeted improvements to the source code - this tree view should help to locate the critical parts of the programme.
Field | Description |
---|---|
tree view | Only the "top" triggers of blockades are displayed in the tree view. For example, if user "A" has blocked user "B", but "A" itself has been blocked by "C", then "A" does not appear as the top node in the tree view, only "C". Below "C" you will find "A", which is then followed by "B". |
: Search for users | After entering a user ID, all items in the tree that are assigned to this user are expanded. |
List view | |
Meetings | Shows all top nodes of the tree in the list view sortable with all required information. |
: Blockades | Shows all transaction times of the top nodes in which blockades occurred. A transaction time is a period of maximum one minute between blockades of a level. So if a user "A" has triggered a blockade at 11:22 and another user is blocked by this user a maximum of one minute later, they are assigned to each other. However, if the second blockade is not until 11:24, another transaction time is set up. An attempt is made to assign a long-running transaction to these transaction times. So if a user has triggered several blockades at 14:49 and at 15:00 a long-running transaction of one minute duration has been logged, then this information is linked so that one can see in the tree and in the list which circumstance has triggered the blockades. |
List | The list displays the data of the first or the second level of the tree (see description of the group "List view" above this line). Columns in the list: The duration is added up from top to bottom (in the tree) according to the following rules: If a blockade has a blockade duration , then this is added up and the duration of the further blockades triggered by this blockade is ignored, because by dissolving the triggering blockade (top level in the tree), the blockades that resulted from this should also have been dissolved. The button at the top of the list can be used to copy its contents to the clipboard. |
button | Description |
---|---|
Close | Close window |
Related topics
Technical Documentation
System crashes
If the log level "FATAL" appears in a log file, this indicates that the machine has crashed. The next message with log level "ERROR" is the crash message that appears on the screen. The current session is closed and for this current transaction (crash message) the data field "settings" is displayed.
The only exception is a "FATAL" from the logger "cx.listview". With this one, the system does not crash because the ListView catches it.
If the system crashes without an error message, the last transaction (LogLevel "FATAL") is regarded as the end of the session and displayed in the list of crashes. (StopAllSessionsOfLogFile)
investigation:
+ cx.app INFO "Signal caught: SIGABRT"
+ cx.app ERROR
+ cx.main FATAL
+ FATAL session end
Evaluation Log File Module
Module name
logfistx.mod
Classes
-
Security
In addition to restricting access rights via the class and its data fields, the module can be restricted in its use via some of the received messages.
Message | Parameters | Function | Security |
---|---|---|---|
Message | Parameters | Function | Receiver module |
---|---|---|---|