I do what Adam does.  Application scope array, all reads and writes
properly locked :-).  A user tries to hit an edit page.  The requested
record ID is compared to a list of reserved IDs and, if the record is
not in the array, it is added in along with user ID and 'last
accessed' time.  Every time the user hits that page (which could be a
form post or a link get -- i.e. they moved to a subsidiary screen
controlling something for that page) the 'last accessed' value is
updated.

Before any user executes the above the system first loops over the
records in the array and determines if any of the 'last accessed'
values have expired -- where expiration is determined as a time
interval longer than the allowed session expiry of the application. 
Any lock fitting this criterion is released.

Also a separate admin app allows superadmins to manually break locks,
so if a user exits the record improperly (for example closing the
browser) there exists a method to break the lock before it expires.

I keep meaning to write up a paper on this.  Its really cool, and a
fairly common question.

-- 
--mattRobertson--
Janitor, MSB Web Systems
mysecretbase.com

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~|
Find out how CFTicket can increase your company's customer support 
efficiency by 100%
http://www.houseoffusion.com/banners/view.cfm?bannerid=49

Message: http://www.houseoffusion.com/lists.cfm/link=i:4:206103
Archives: http://www.houseoffusion.com/cf_lists/threads.cfm/4
Subscription: http://www.houseoffusion.com/lists.cfm/link=s:4
Unsubscribe: 
http://www.houseoffusion.com/cf_lists/unsubscribe.cfm?user=11502.10531.4
Donations & Support: http://www.houseoffusion.com/tiny.cfm/54

Reply via email to