机会锁的生活包括三个不同的时间跨度。 在每个过程中,服务器通过不同的方式确定对来自客户端的请求的反应,以打开另一个客户端锁定的文件。 一般情况下,可以通过授予尽可能多的共享、请求所需的最低访问级别,以及使用适合应用程序的最低侵入性机会锁来最大程度地降低应用程序对应用程序的影响,从而最大程度地降低应用程序对应用程序的影响。
首先是服务器为客户端打开文件但授予锁定前的句点。 在此期间,文件上不存在锁,服务器依赖于共享、访问模式和你请求的机会锁类型,以确定它对另一个请求的反应以打开同一文件。 例如,如果打开有问题的文件进行写入访问,则可以禁止授予允许读取缓存访问其他客户端的机会锁。 服务器授予锁之前的时间跨度通常以毫秒为单位,但可能更长。
授予机会锁后,服务器会检查锁以确定对锁定文件中打开请求的服务器反应。 同样,应用程序打开文件的方式及其持有的锁类型会影响服务器响应的方式。 有关服务器在每个情况下如何响应的详细信息,请参阅 机会锁类型。
最后,服务器确定锁定应断开(已结束),但在应用程序完成对中断的反应之前,存在跨度。 根据锁的类型,应用程序可以将锁降级到较低级别或根本不降级为无。 应用程序还可以关闭文件和锁定。 在此期间,服务器会保留来自其他客户端的任何请求,以打开以前锁定的文件。 此时间跨度的范围可能从毫秒到几十秒不等。 有关详细信息,请参阅 中断机会锁。