做 Domino 开发有一段时间的人估计都见过这个错误,产生的原因是曾经把 Domino 服务器的时间往回调过。

说的更细致一些,比如服务器的时间曾经是2012年,所以视图更新时间、上次复制时间等信息都记录为2012年。这时如果把时间调回2011年,那么就算有新的文档添加到数据库,它的修改时间也比视图的更新时间要晚,所以在这种情况下视图并不会自动更新。我举的只是其中一个问题,足以说明问题的严重性。

关于如何解决这个问题,IBM 技术支持网站给出的方法是新建拷贝或者新建复本,但一个一个处理太麻烦了。可以使用我之前提到的批量拷贝库来处理这个问题:

  • 通过操作系统的 ls 命令获取文件列表
  • 生成批量拷贝库(如果需要保持复本关系要加 REPLICA 参数)的脚本
  • 将所有库拷贝到临时目录
  • 停掉服务器,删除原目录、将临时目录改名为原目录名

我实际操作过一次,一个有几十个库的系统不到半小时就搞定了。大家也可以试试看。

首先在控制台输入以下命令,启用额外的数据库拷贝命令(不是群集也可以用):

set config CLUSTER_ADMIN_ON=1

无需重启服务器,以下命令就可以用于拷贝数据库了:

CL copy serverA!!db1.nsf serverB!!db2.nsf(将 serverA 上的 db1 新建拷贝到 serverB 的 db2)

CL copy serverA!!db1.nsf serverB!!db2.nsf REPLICA(将 serverA 上的 db1 新建副本到 serverB 的 db2)

CL copy serverA!!db1.nsf serverB!!db2.nsf TEMPLATE(将 serverA 上的 db1 新建拷贝为模板到 serverB 的 db2,不含文档)

CL copy db1.nsf db2.nsf(将 db1 从当前服务器新建拷贝到 db2)

将各个拷贝数据库的命令写成一个文本文件copydb.txt,保存到服务器的程序目录:

CL copy db1.nsf bak/db1.ntf TEMPLATE

CL copy db2.nsf bak/db2.ntf TEMPLATE

然后在服务器控制台输入:

< copydb.txt

就完成了批量备份数据库设计为模板库的工作。

请参考:Cluster_admin_on

在某些情况下,Linux/Unix 下的 Domino 数据目录会在服务器退出时被删除。(后果很严重!)

其原因是记录临时目录的文件 ~notetmp.reg 错误的指向了数据目录,所以数据目录被当成临时文件清除掉了。在 852FP3 发布之前,可以通过删除 ~notetmp.reg 文件来解决这个问题。

请参考:Domino data can be deleted during server shutdown on UNIX and Linux platforms

ND 7.0.x 系列已于四月底到期,这意味着 IBM 不再提供此版本的技术支持,同时也不会再有新的修补版本。还在使用此版本的,请抓紧时间升级。

注:ND7 于2005年发布,首次引入 NSFDB2(已故)、web service,7.0.2版新增 Notes Access for SAP,是一个很不错的版本。现在它走了,我们很怀念它。

请参考:End of Service (EOS) of Lotus Enterprise Integrator, Notes, and Domino 7.0.x

Domino 中视图高效的一个关键就是,后台的更新任务会保持视图索引为最新,这样在打开视图时直接从索引中快速获取内容。但是如果一个视图标识为对 Notes 端隐藏,那么更新任务则不会处理此视图。当从 web 端打开视图时,http 进程首先更新视图索引,再返回视图内容。如果视图比较大,这可能要花很长的时间,所以请注意避免这种情况的发生。

请参考:Updall does not index views flagged as hidden in design properties

注:此条博客不是在开玩笑:)

最近由于工作比较忙,加上团队内组织学习 XPages 占用了不少业余时间,所以有很久没有更新 Blog 了。这次给大家推荐一本新书:

Mastering XPages: A Step-by-Step Guide to XPages Application Development and the XSP Language

显而易见,这是一本介绍 XPages 开发的书。XPages 从8.5版推出到现在已经有近3年的时间了,但其实可用的学习资源还比较少。就我个人而言,基本上就是 IBM 的培训 + 官方的文档 + LDD Wiki,实际上缺少了 XPages 原理/架构、应用发开最佳实践的书。

Mastering XPages 正好填补了这方面的空白(之前有过一本中文的关于 XPages 的书基本可以忽略)。本书在架构方面包含了 XPages 的设计思想、JSF 的介绍(XPages 是基于 JSF 框架的);应用开发方面包含了所有控件的介绍、Domino 文档/视图数据源的应用;还涵盖了扩展性、国际化、安全性、性能等方面。借用前些天 XPages Level 2 培训的讲师的一句话:“Mastering XPages 是现阶段关于 XPages 最全面、最权威的文档和资源”。

本书我也正在阅读中,目前进度只是到了第六章,但仅此六章我已经觉得受益匪浅,所以在此将此书推荐给所有想学习 XPages 的朋友们。大家可以下载和书籍配套的样例代码,边做实验边学习收获更大。

顺便打个广告,其他推荐的图书请看我的豆瓣读书页面,我打分4-5星的书都值得一读。

(最后要说的是此书刚刚出版,目前只有英文版,对英文不好的朋友来说可能是个障碍,不过此书真的非常棒,请尝试读一下!)

我一直是 Firefox 的坚定支持者,最近也更新了新版,外观、速度等各方面感觉良好。升级过程中有两个小问题:

  • 一些常用扩展无法使用。这是每次升级都会遇到的问题,其实很多宣称无法支持的扩展通过安装 Add-on Compatibility Reporter 扩展就可以使用(并非所有的都能用,请自行测试)
  • 新版移除了状态栏,原有在状态栏放置的一些扩展按钮就显得累赘了。安装 Firefox 4 UI Fixer 扩展可以将这些按钮移动到工具栏。

折腾完毕,Firefox 最棒!