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

