cancel
Showing results for 
Search instead for 
Did you mean: 

Are the server properties "Req" and "ReqCountActive" identical?

VolkerBarth
Contributor
0 Kudos
2,096

(Aside:This has been originally asked as part of that FAQ: What is PROPERTY ( CompletedReq')?, but hey, we can convert comments into questions, too, so here we are, Breck...)

I have not tested that but there description is identical, both in v12 and v17:

Req:
The number of times the server has been entered to allow it to handle a new request or continue processing an existing request.
ReqCountActive:
The number of times the server has been entered to allow it to handle a new request or continue processing an existing request.

Accepted Solutions (1)

Accepted Solutions (1)

Breck_Carter
Participant

Question: Are the Req and ReqCountActive properties the same?

No, they are not... and it goes further than that.

The cumulative Req server property has been around forever and it has always been useful.

The cumulative ReqCountActive connection property was introduced in Version 9 and is also useful.

Both properties are prominently displayed by Foxhound as server and connection-level requests-per-second measurements of Throughput.

However... The database and engine-level ReqCountActive properties were introduced in Version 12 and have no known purpose or usefulness; they are not recorded by Foxhound.

Here is an excerpt from the Foxhound internal docs...

           Recorded
              by
Scope      Foxhound?  Property        SQL Anywhere Versions     Notes
---------- ---------  --------------  ------------------------  -----
connection   yes      ReqCountActive  - - - - 9 10 11 12 16 17  
database     no       ReqCountActive  - - - - - -- -- 12 16 17  not cumulative, does not match server Req or connection ReqCountActive
engine       yes      Req             5 6 7 8 9 10 11 12 16 17  
engine       no       ReqCountActive  - - - - - -- -- 12 16 17  not cumulative, does not match server Req or connection ReqCountActive

Here is a simple query that was repeated while 10 V17 connections were busy pounding away at a cumulative rate of 12,000 transactions per second...

SELECT CONNECTION_PROPERTY ( 'ReqCountActive', 15 ), DB_PROPERTY ( 'ReqCountActive' ), PROPERTY ( 'Req' ), PROPERTY ( 'ReqCountActive' );

CONNECTION_PROPERTY('ReqCountActive',15),DB_PROPERTY('ReqCountActive'),PROPERTY('Req'),PROPERTY('ReqCountActive')
'28','0','4358','0'
'19357','0','197690','0'
'84316','0','844765','0'
'135113','0','1347953','0'
'207971','0','2071532','0'

As you can see, the database and engine-level ReqCountActive properties were always zero (yes, dbsrv17 -zt was specified) while the connection-level ReqCountActive was approximately 1/10th the value of the server-level Req (as expected).

Here is an adhoc query against the Foxhound database that shows the server-level Req property = SUM ( connection-level ReqCountActive 😞

SELECT sample_detail.sample_set_number,
       sample_detail.Req, 
       SUM ( sample_connection.ReqCountActive ) AS "SUM ( ReqCountActive )"
  FROM sample_detail INNER JOIN sample_connection
    ON sample_detail.sample_set_number = sample_connection.sample_set_number
 WHERE sample_detail.sampling_id = 12
   AND sample_detail.sample_set_number BETWEEN 93081 AND 93185
 GROUP BY sample_detail.sample_set_number,
       sample_detail.Req
 ORDER BY sample_detail.sample_set_number;

   sample_set_number                  Req SUM ( ReqCountActive ) 
-------------------- -------------------- ---------------------- 
               93081                79316                  74540 
               93094               553347                 549128 
               93107              1007281                1006445 
               93120              1507909                1504002 
               93133              2029523                2025734 
               93146              2569196                2564751 
               93159              3087456                3083358 
               93172              3598468                3595030 
               93185              4027857                4027021 
(9 rows)
Execution time: 0.002 seconds

Answers (1)

Answers (1)

Former Member
0 Kudos

I think (and somebody can correct me if I'm wrong), that the number has a similar meaning, but Req counts all requests since the server started, whereas ReqCountActive counts all requests for all active connections (i.e. it decreases when a connection is closed). ReqCountActive is only counted while the RequestTiming server property is ON. ReqCountActive and ReqTimeActive are paired together so that you could calculate, say, the average request time.

See http://dcx.sap.com/index.html#sqla170/en/html/3bc92fda6c5f1014a489d6c2c7723e3d.html

and http://dcx.sap.com/index.html#sqla170/en/html/8176b8c76ce210149d3bb4fd6b8f4d21.html

I agree that the the documentation on the list of database server properties could be more clear. Feel free to post a comment on dcx to that effect.