Tracking Concurrent Users

I have a Winform/VB.NET application that runs through Citrix. I need a idea on how best to be able to keep track of concurrent users in the application. The application logins are stored in a table in SQL Server 2000. The purpose of tracking this information is that we havea audit report that is suppose to display the login name that has inserted, updated or deleted records in the database. 

Currently I can only track on users information at a time but need to be able to track concurrent users information. Again this is a winform/VB.NET application running on citrix. 

Anything would be greatly appreciated. 


Answer this question

Tracking Concurrent Users

  • Jon Vincent

    Maybe a webservice with a Application session variable. When user open and close the application it calls a Webservice method adding them or deleting them from the Application Session Array (User List) to get a Concurrent user list then you just call a GetUser which gives you back the Application Session variable which would be an array of users. Has holes in it though say for example if your application crashes you would need to write some checks for this.

    Sorry my best guess. 

    James

  • DevOrDie

    Kragie, Agree totally with the user table login stuff, it is certainly at better way in a two tier structure. It is in fact what we do in house for a specific application but I was not sure on exactly what level of application we have here or if they would be remote working in place, so I gave the general solution that I would use if I had to cover for remote or firewalls.  You are right it is a more round about way but you still get a certain level of accurancy and it is fairly flexible, you are just also splitting the code off into a webservice you would still have to write the same checks and bits even with Sql Server. Anyway.. ;-) Good to have a second view.  

    Cheers, 

    James

  • Steve - new to VPF9

    I'd just have a logged-on user table.  Have a datetime or timestamp field that gets updated every time it's doing something, and a dts based scheduled task to clear out users that haven't done anything in the past 20 or so minutes.  

    I think in this case, a web service may give you the scalability, but the overhead of a web service is not desired if you are doing something similar to like a Sarbarnes & Oxley control.  In that case, you'll have to be able to determine exactly who's logged it at any given second, how many, and be able to ensure on the application level that if you're not logged in per click or action, the application must reset to the login scenario.

    Just make the checks to ensure that the user's logged in per any important user event, and true = logged in, false = not logged in.  I think the idea of using SQL Server is more precise than basing it off a web service.  It seems like a very round about way, and may require another server if the core application is intense.  Why go through the hassle unless you're working between multiple firewalls or over the net.

  • Tracking Concurrent Users