It was originally on Novell with FPD 1.02 that I tried RLOCK() and discovered that Novell didn't release locks for several hours. We tried every suggestion we could get from CompuServe, but never found a solution.
Back in NT3.51/Citrix days I looked again at RLOCK() and found that the locks weren't released very fast at all. In the time it took to restart a thin client the locks were still in place. Rebooting the terminal server seemed the best way to recover and that had a big business impact.
Hence my dislike of RLOCK(), based on old observations.
We're rather strange in using Terminal Services instead of PCs for the clients.
How fast does Win2000 Terminal Server release locks from users of thin clients that are disconnected, if at all? I don't think user sessions timeout, which means if they don't connect to the same Terminal Server they left - we're stuck.
Windows Server 2003 will solve that, because it has an extra Session Directory coordinating component that allows true load sharing across a cluster and automatically reconnects them to the right server.
Maybe then it'll be time for us to re-examine locking.