本项目是测试当磁盘空间不足时,服务器写入日志失败,进入挂起状态,然后系统管理员重启服务,服务软件在启动时自动恢复未写入的那条日志记录,这样一种场景。
操作步骤如下:
1) 启动dp2circulation前端,打开出纳窗,调入一条读者记录,准备进行借还操作。
2) 在dp2libraryws所在的同一台机器上,启动dp2ciculation前端,在前端打开“系统维护/测试窗”。
了解一下dp2libraryws的数据目录,例如叫做“c:\libws_data”,记下这个盘的盘符。
在这个盘上,任意取一个临时文件名,利用上述测试窗,写入足够尺寸的数据到这个临时文件,把所在盘的剩余空间耗费到0,或者不足一二百bytes。这是为了保证一两次产生日志的流通操作,能导致磁盘空间耗尽。
注意,测试窗中的临时文件尺寸textbox中,可以输入类似 +1000或者-1000这样的字符串,动态调整那个临时文件的尺寸,以精确占据想要占据的磁盘空间。字符串尾部可以带M或K字样的尺寸单位,以简化操作。
3) 利用流通前端的出纳窗,进行借还操作,直到报服务器磁盘空间不够的错。这时若继续借还操作,借还操作会报系统因为维护而挂起。而这时若继续进行装载读者记录的操作,则不会报挂起错误,操作仍能进行。
4) 在流通前端上打开“系统维护/日志窗”,调出当天全部日志。你会发现,报服务器磁盘空间不足的那一次操作,并没有进入服务器日志。但是这次操作实际上是成功了的,通过观察借还信息可以发现这一点。
而报服务器挂起错误的那些次操作,是完整被拒绝了的,不存在操作成不成功的问题。
5) 利用流通前端的测试窗删除临时文件,恢复服务器的富余磁盘空间。然后,重新启动dp2libraryws服务。这可以通过重启IIS实现。
(注:如果不释放磁盘空间而直接重启服务,可能服务启动成功,也可能启动不成功。如果启动不成功,应处于挂起状态,如同启动前一样的状态)
6) 再次用流通前端的“日志窗”观察当天日志,会发现报空间不足错的那次出纳操作的日志,被增补在日志中了。
7) 观察dp2libraryws的错误信息文件error.txt(或者windows事件日志),会发现空间不足以及后来重启恢复的一些列动作都记载在了错误信息文件或windows事件日之中。