Loading...
 

Evaluation log file

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:
 logfistx01.jpg

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):
 logfistx02.jpg

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:
 logfistx03.jpg

5. Statistics:
If more than 600 blockades occurred:
 logfistx04.jpg

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

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

Toolbar
Symbol Description
 Select time period Opens dialog boxes to specify a time period from which log files are to be read.
 open.png Opens dialog boxes to select log files to be read.
copytoclipboard.png Copies the objects in the active tab to the clipboard
 list_clear.png Resets the evaluation and all lists

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

Buttons
button Description
copytoclipboard.png 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.

Main information
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:

Meetings List of all sessions
User List of all sessions with user login
Deadlocks
Timeouts Timeout Exceptions
Crashes Number of system crashes
RW transactions RW Transactions lasting over 30 seconds
RO Transactions RO Transactions lasting over 30 sec
Locking Conflicts Number of locking conflicts (read from dbProf files)
IV Error InstantView error
dbProf statistics The dbProf statistics contain the following values and summaries. For a description of the individual values, please refer to the dbProf documentation.
Waiting time [sec] per traffic [MB] This is the total lock wait time divided by the total traffic. This is a meaningful indicator of the speed of the system, because both the wait time and the system load are used in the form of traffic.
Waiting time [sec] per lock Corresponds to the average waiting time until you get a lock on a page.
Waiting time [sec] per commits [n] Corresponds to Total lock wait time divided by the number of commits. Also represents a key figure for measuring the system speed.
KB read
KB written
Commits [n]
Readonly commits [n]
Aborts [n]
Lock timeouts [n]
Lock waits [n]
Deadlocks [n]
Total lock wait time [sec]
Total number of transactions Sum of commits, readonly commits and aborts
Total traffic [MB] Sum of KB read and KB written
Total locks [n] Sum of lock waits and lock timeouts
: 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.

Buttons
button Description
 CX_STATISTICS.png Displays the graphic diagrams according to the setting.
CX_AMOUNT_calculation.png 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.

Blockades/falls/locks

The blockades can be displayed in a chained tree view.
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

Buttons
button Description
CX_AMOUNT_calculation.png Opens the Locking Summary window for the locks included in the list, to give a better overview.

Cross country TXNs
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

Type RW or RO
Statement IV (or internal) statement at which the transaction occurred
Modules Module in which the statement is contained.
Started at Statement Specifies the statement at which the transaction started.
Modules Module containing the Started at Statement.
Quantity Number of times this cross-country skier appeared at the same place
Total time Total duration of the aggregated transactions
Pages ges. Total number of pages read for the summary transactions
Average time Average time of a transaction (total time divided by number)
Pages average Average number of pages read from a transaction (pages total divided by number)
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

Instantview error

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

Toolbar
Symbol Description
copytoclipboard.png Copies the objects in the list to the clipboard

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

Buttons
button Description
Close Close window

Included transactions

This window displays all transactions included in the period sorted by time stamp.

Toolbar
Symbol Description
copytoclipboard.png Copies the objects in the list to the clipboard

Fields
Field Description
Period Shows the period from which the transactions originated.

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

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

Buttons
button Description
Close Close window

Error while reading in

The errors that occurred during reading are displayed here.

Toolbar
Symbol Description
copytoclipboard.png Copies the objects in the list to the clipboard

Fields
Field Description

Buttons
button Description
Close Close window

Evaluation

In this window the diagrams of the evaluation are displayed.

Option window

Edit" menu
Menu item Description
Set default settings all changed settings are reset to default

Buttons
button Description
OK Settings are saved and window is closed

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

Fields
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:
Duration of the blockades: The duration can only be made on the basis of several entries for blockades of the same user in the same segment. Since there are not always several entries per blockade in the log file (cxdbprof), the exact blockade duration cannot be determined for each blockade.

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.
If a blockade does not have a blockade duration, then the blockade durations of the other blockades created by this blockade are determined and added together.

The button at the top of the list can be used to copy its contents to the clipboard.

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

Received messages
Message Parameters Function Security

Sent messages
Message Parameters Function Receiver module

Operational business