Offline Files XP vs.Win7 笔记3
上期回顾
上一次我们主要介绍了Offline Files的几种主要的模式以及模式之间的切换等逻辑。
简介
本文讲主要介绍XP和Windows 7基本模式切换的细节以及针对冲突管理(Conflict Management)不同的机制和行为。
概述
从Offline到Online
举个例子,客户端将\\Server\aShare和\\Server\bShare 配置为Offline Available。由于某种网络断开,两个共享目录都处于Offline(Not Connected)状态。
由于状态自动切换机制,Offline Files检测到网络恢复尝试将两个共享目录切换为Online模式。
这一过程中, Offline Files检测Sample.docx文件在客户端有没有应用程序的Open handle(是否正在被使用),Offline Files将会做以下两种操作:
- 1. 如果客户端正在使用Sample.docx但并没有做修改,那么Offline Files会将应用程序的open handle转到服务器上对应的那个文件上。
- 2. 如果客户端正在使用Sample.docx且文件已被修改,那么Offline Files将不会对应用程序的open handle做任何修改且不会将该文件置为online。
这种情况下针对状态切换(OfflineàOnline),XP和Windows 7有不同的行为:
- · 在XP中,一旦Offline Files检测到\\Server\aShare\sample.docx在客户端正在被使用且已被修改并且导致切换失败后,\\Server\aShare和\\Server\bShare均无法切换到Online状态。
- · 在Windows 7中,一旦Offline Files检测到\\Server\aShare\sample.docx正在被使用且已被修改并且导致切换失败后,仅\\Server\aShare\sample.docx文件处于Offline (Need to sync) 状态,\\Server\aShare目录下的其余文件已经整个\\Server\bShare都能正常的切换到Online状态。
这是因为在XP上Offline Files的影响范围是以共享服务器(或整个Distributed File System (DFS) namespace)为单位,而Windows 7上Offline Files的影响范围是以某个共享文件(或某个DFS scope)为单位的。
从Online到Offline
跟上面有一点不同的是,从Online切换到Offline的过程中,在XP中,如果某个文件由于网络问题无法访问,客户端上属于这台文件服务器的所有Offline Files全部会被置为Offline(Not Connected)状态。而在Windows 7中,如果某个文件由于网络问题无法访问,那么这个文件所在的共享文件目录会被置为Offline(Not Connected)状态,其余的共享目录不受影响。举个例子,
- · 在XP中,如果用户由于网络错误的原因无法访问\\Server\aServer或者\\Server\aShare\Sample.docx,\\Server\aShare和\\Server\bShare都会被置为Offline
- · 在Windows 7中,如果用户由于网络错误的原因无法访问\\Server\aServer或者\\Server\aShare\Sample.docx,只有\\Server\aShare会被置为Offline,\\Server\bShare不受影响。
Conflict
如果文件或文件夹在处于Offline的状态并且在Offline Files无法进行自动更新[1]的情况下,用户对客户端和服务器端的同一个文件做了不同的修改。当状态恢复[2]为可进行自动更新的状态[3]时,自动更新过程中就会发生冲突,即Conflict。
注[1]:Offline且无法自动更新的状态,如,Offline(not connected), Offline(Working offline)
注[2]:自动恢复或手动恢复
注[3]:可进行自动更新的状态,如Online,Offline(Slow Link)
针对Conflict的处理,XP会有弹出窗口提示你需要选择怎么处理有冲突的文件:保留客户端版本,保留服务器端版本。
Windows 7上针对冲突管理更人性化。当用户从Offline切换到Online,Background Sync就会在后台立即被触发,当Offline Files服务检测到冲突时,并不会有立即弹出的对话框提示你操作,而是你可以通过访问控制面板的Sync Center查询更新结果再人工的管理冲突文件:保留客户端版本,保留服务器端版本或保留两个版本。
经验上讲,冲突管理简单而且易管理很少出现问题。