Tips of the “Activity: Servers” screen in promon - Forum - OpenEdge RDBMS - Progress Community

Tips of the “Activity: Servers” screen in promon


Tips of the “Activity: Servers” screen in promon

  • Recently I thought there is a bug on the “Activity: Servers” screen in promon but the deeper investigation proves I was wrong - it’s rather a feature. Maybe I’m not the only one who made such mistake. So I decided to share my findings with community.

    But first of all, a bit of theory: Activity counters are divided in two categories : copyable and non-copyable. The “copyable” activity counters are the ones that promon copies from database shared memory to one of two areas (Copy 1 and Copy 2) in promon's private memory. The values reported by promon are the difference between those two copies. The most of activity counters per database are copyable (unfortunately with a few exceptions). Activity counters per servers are copyable too - the only multi-instance counters. All activity counters per users are non-copyable - promon always reports them since user’s connection time.

    Promon allows to use the set of the actions that will change one or both copies of the copyable counters:

    A  Activate auto repeat mode.
    L  Load activity counters from start of session
    S  Sample activity counters
    U  Update activity counters
    Z  Zero the activity counters

    For example, the “U” action will update only “Copy 2” but will leave “Copy 1” unchanged. “Z” action updates both copies in promon’s memory (it’s the most “expansive” action).

    No matter which Activity screen will be used to make an action, promon will copy the whole set of the copyable activity counters. In other words, you will update data on all Activity screens at once. Note that the screen display time (the one on top left corner of the promon’s screens) is not related to the timestamps of data on these screens - neither for Status fields nor for Activity fields. Real timestamps are reported on a header of the Activity screens but precision is only a minute - MM/DD/YY HH:MM to MM/DD/YY HH:MM (hrs min sec)

    Activity counters per servers reported by the “Activity: Servers” screen are the difference of the counters for a particular server. But between the times when promon made “Copy 1” and “Copy2” new servers can be launched or old servers can be terminated.

    When we use, for example, the “U” action and there were no newly spawned servers that re-used the numbers of the recently terminated ones (the same slots in the Server Table) then:

    1. We will not see the activity of newly spawned server because promon uses data in “Copy 1” to create the list of the servers to report (even if “Copy 2” contains new servers);

    2. We can see statistics of the servers that do not exist anymore because the slots in the Server Table are not cleaned when a server is terminated. The same is true for the “Status: Servers” screen:

    11/16/19        Status: Servers
    Sv         Server                                    Pend.   Cur.   Max.   Port  User
    No    Pid  Type       Protocol               Logins  Users  Users  Users    Num  Type Threaded
      0   1256 Login      TCP                         6      0      0      5   3000  BROK        1
      1  11248 Auto       TCP                         1      0      1      5   3001  TSRV        1
      2      0 Inactive   TCP                         1      0      0      5   3005              0
      3      0 Inactive                               0      0      0      0      0              0

    Note that server 2 was terminated but the values in “Logins” and “Port Num” columns show its old data.

    By the way, “Logins” is a server’s activity counter but it’s not a “copyable” activity counter. Using _Servers VST you can create statistics of “Logins” and “Logouts” per sampling interval: New “Cur Users” = Old “Cur Users” + “Logins” - “Logouts”.

    By the way #2: Progress could replace the obsolete field “Protocol” on this screen by the time of server’s startup. So we can easy see which servers were the recently spawned.

    By the way #3, since V12.0 the screen have two new columns. Values in the column with strange name “User Type” are:
    BROK is a primary database broker (even if it’s not a login broker);
    SERV are either the secondary login brokers or the servers spawned by the broker that are not threaded (-threadedServer 0)
    TSRV are the servers spawned by the broker that are threaded. (-threadedServer 1)

    When there is a newly spawned server that re-used a number of the recently terminated server then

    3. the statistics stored in “Copy 1” and “Copy 2” belong to the different processes and their difference for this server number does not have a sense. Sometimes (not always) the data on this screen can look obviously wrong:

    11/16/19        Activity: Servers
    17:02:40        11/16/19 17:00 to 11/16/19 17:02 (1 min 47 sec)
                                        Total         Per Min          Per Sec          Per Tx
    Messages received                16777216T        9407785T 172399477324388320.00            0.00
    Messages sent                    16777216T        9407785T 172399477324388320.00            0.00
    Bytes received                   16777216T        9407785T 172399477324388320.00            0.00
    Bytes sent                       16777216T        9407785T 172399477324388128.00            0.00
    Records received                        0               0             0.00            0.00
    Records sent                     16777216T        9407785T 172399477324388320.00            0.00
    Queries received                 16777216T        9407785T 172399477324388320.00            0.00
    Time slices                      16777216T        9407785T 172399477324388320.00            0.00
    Activity for Server 2

    If you use VSTs to get an activity by servers then you can check an unique server ID (_Server-Num + _Server-Pid + _Connect-Time) to avoid such meaningless data.

  • Thanks George, that was informative as always. Any idea why Activity: Servers "Records received" is always zero?

  • "Records received" is not always zero. Remote client can send back to its server the new or updated records:

    04/07/19        Activity: Servers
    13:31:11        04/07/19 13:01 to 04/07/19 13:31 (30 min 1 sec)
                                        Total         Per Min          Per Sec          Per Tx
    Messages received                   35018            1167            19.44            0.98
    Messages sent                       19284             642            10.71            0.54
    Bytes received                    8006985          266751          4445.86          224.10
    Bytes sent                        7838352          261133          4352.22          219.38
    Records received                       33               1             0.02            0.00
    Records sent                        33246            1108            18.46            0.93
    Queries received                     6145             205             3.41            0.17
    Time slices                         72850            2427            40.45            2.04
    Activity for Server 6