Hi jerrys,
In the _connect you find the actual connections to the database. But since webspeed is running stateless (I assume, otherwise you wouldn't have a problem) each agent (luckily

) doesn't represent a 'connected' user.
An agent connected can handle some 12 requests per second (well that's what progress says in OE10 for licensing purposes, but that is a whole different story) so 5 agent can represent at max 60 concurrent users.
What I mean with session is that we keep an internal table (progress tables) which handles the sessions from the internet. For each session a record is made and with each request the request time and date is updated. So in the product we have, you can say for instance idle time = 900 sec. Which means if after 15 min (900sec) the users didn't do a request the sessions becomes idle. In practice it means the user has to log in again and the session is cleaned up.
With a situation like that, you can
estimate the number of concurrent users:
For each <sessiontable) where requesttime < time -idle-time:
count the records.
end.
Again I say estimate because a user could have closed the browser with the famous little cross at the right top of the page.....
If you don't have session tables then it's virtual impossible to guess the number of concurrent users since the webspeed agents doesn't know (or care) where the request came from. (well that's not totally true but true enough).
Otherwise you have to guess by looking how many agents are running and why they are running. I mean are there many agents because of long requests or because of many requests from many users....
There is no good way with web applications to determine the session has ended unless the users uses the log off button, but most time the little cross at the top of the page is much more interesting to push.
There utility has to consist of some session table mechanism as I described I suppose... So maybe you can find the tables and do the math yourselfs?
HTH,
Casper.