eG Monitoring
 

Measures reported by ProUsersTest

A Progress database server provides data concurrency and integrity between transactions using locking mechanisms. The locking activity of a database server should be monitored carefully because an application holding a specific lock for a long time could cause a number of other transactions relying on the same lock to fail.

This test indicates the level of locking activity on a database in terms of the number of locks of different modes held by each user per second and the time taken by each user to hold a RECORD lock and TRANSACTION lock. In addition, this test reveals the number of total locks held and total time since current lock mode was granted. This test also periodically reports the read-write activity of each user. Using this test, administrators can easily identify which user is performing resource intensive I/O operations. This way, this test reveals the irregularities in the I/O operations performed by the users and further analyze the real reason behind the abnormally high I/O operations performed by the user.

Outputs of the test: One set of results for every user on the target Progress database server being monitored.

The measures made by this test are as follows:

Measurement Description Measurement Unit Interpretation
Exclusive_locks Indicates the rate at which EXCLUSIVE locks were held by this user on the database during the last measurement period. Locks/Sec

Exclusive locks are used to lock data being modified by one transaction thus preventing modifications by other concurrent transactions. You can read data held by exclusive lock only by specifying a NOLOCK hint or using a read uncommitted isolation level. Because DML statements first need to read the data they want to modify you’ll always find Exclusive locks accompanied by shared locks on that same data.

Record_locks Indicates the rate at which RECORD locks were held by this user on the database during the last measurement period. Locks/Sec

 

Record_lock_waits Indicates the rate at which this user had to wait to get hold of RECORD locks on the database during the last measurement period. Waits/sec

 

Shared_lock Indicates the rate at which SHARED locks were held by this user on the database during the last measurement period. Locks/sec

 

Transaction_lock Indicates the rate at which TRANSACTION locks were held by this user on the database during the last measurement period. Locks/sec

 

Transaction_lock_waits Indicates the rate at which this user had to wait to get hold of TRANSACTION locks on the database during the last measurement period. Waits/sec

 

Lock_count Indicates the total number of locks that were currently held by this user. Number

A high value may indicate one of the following:

  • Too many transactions happening

  • Locked resources not being released properly

  • Locks are being held unnecessarily

The detailed diagnosis of this measure lists the Table name, Lock type, Userlock flag, Record ID, Transaction ID, Transaction flag, Transaction state, Transaction start time, Duration, Client IP address, Statement type and SQL text.

Lock_rate Indicates the rate at which the locks were held by this user during the last measurement period. Locks/sec

A low value is desired for this measure.

Total_session Indicates the total number of sessions established by this user on the database. Number

A high value may indicate that the user is causing a high load on the server.

The detailed diagnosis of this measure if enabled, lists all the current sessions of the user along with the Connection PID, Client IP Address, Connection Client Type, Connection Type ,Connection Time, Statement type and SQL text.

Session_usage Indicates the session utilization of this user. Percent

A high value may indicate that the user is causing a high load on the server. By increasing the _Startup-MaxUsers Parameter the maximum number of sessions allowed for the user can be increased. It will avoid the failure of session’s requests on the server.

Db_access_rate Indicates the rate at which this user performed database access operations during the last measurement period. Accesses/sec

 

DB_read_rate Indicates the rate at which read operations were performed by this user on the database server during the last measurement period. Reads/sec

 

DB_write_rate Indicates the rate at which data was written to the database server by this user during the last measurement period. Writes/sec

 

BI_read_rate Indicates the rate at which data was read from the Before-Image file by this user during the last measurement period. Reads/sec

 

BI_write_rate Indicates the rate at which data was written to the Before-Image file by this user during the last measurement period. Writes/sec

 

AI_read_rate Indicates the rate at which data was read from the After-Image file by this user during the last measurement period. Reads/sec

 

AI_write_rate Indicates the rate at which data was written to the After-Image file by this user during the last measurement period. Writes/sec