Quote:

I'm not sure that this is even possible in ASP.

It's possible that ASP is inherently single-threaded.



It is definitely possible for ASP to process more than one ASP page at a time, our app would be awful with multi users if it couldn't (some of our middle tier calls take a second or so to complete).

I spotted however that the number of worker processes for the IIS Application pool was set to one. I increased this to two and that helped a bit.

It helped in that other pages can now sometimes be processed even while one page is waiting on the lock. However it only helps to a certain extent. It appears that ASP page requests are handed out to the worker processes on some some of round-robin scheme. If you lock one worker process and then request another page that second page gets processed (presumably because it is processed by the second unlocked worker process). If you then request the page again it blocks until the lock is released, presumably because it is waiting to be handled by the first locked worker process.

In "the real world" the processing that takes place when the lock is in place will only take a few tens of milliseconds, so I don't think this is actually going to be an issue until something is going seriously wrong already.
_________________________
Remind me to change my signature to something more interesting someday