I have a legacy ASP.NET application in which there are some session/concurrency related issues and inconsistency.
I am looking for the best way to do the re-design/
This is the scenario A. Multiple users can log on to the site and access/modify a Ticket's details. However, if a user is already in the process of altering the workflow...the TicketId,UserId are stored in the DB with a time stamp.
B. If another user tries to access the same Ticket while its already being worked upon by a different user. Then, data is accessed from the DB and the most recent user is given a info-box saying that the Ticket is locked.
C. If the initial/locked-in user does a "Sign-Out" the lock is released in the DB. Now, the subsequent user can access with out hassle
All this fine...but if the initial user ..instead of "signing out"...just closes the browser window..the application still remains locked.
How to avoid this ? What is the best design in this scenario?