Notes/Domino 8.5.2 FP4 已发布

请参考 Release Notes下载链接

在 NSD 中查看 LotusScript 的调用堆栈

通过添加以下 Notes.ini 参数,可以抓取 LotusScript 的调用堆栈,帮助我们分析宕机等问题:

DEBUG_LS_DUMP=1

结果格式如下:

LotusScript Call Stack
<@@ ------ LotusScript Interpreter -> Call Stack for [ nlnotes:  0ef8:  1494]  (Time 10:38:14) ------ @@>

[3] COUNTVIEWS
[2] GETDBINFO @ line number 7
[1] COUNTDOCUMENTS @ line number 12
[0] INITIALIZE @ line number 2

请参考:Examining LotusScript call stack after a crash or hang with NSD

Notes/Domino 8.5.3 中文版已发布

请参考:IBM Lotus Notes and Domino V8.5.3 availability of group 1 national languages

Notes/Domino 8.5.3 已发布

Notes/Domino 8.5.3 已于10月4日发布,包含了很多实用的新功能:

  • 版本控制支持:可以将库中的每一个设计元素通过 SVN 等版本控制系统管理
  • JavaScript/CSS 聚合:服务器自动将多个 JS/CSS 文件动态合并为一个,大大改善性能
  • XPage 预加载选项:减少首次访问 XPages 时的等待时间
  • 全文搜索排序:新的 FTSearchSorted API,同时 XPages 也支持此功能
  • XPages 控件增加 HTML5 支持:增加 attrs、type 属性

完整的新功能列表请参考:Domino Designer 8.5.3 中的新增功能IBM US Announcement Letter

注册用户时“Entry found is not a person entry”错误的解决

从错误信息来看,应该是在 Names 中找到了与新注册用户重名的数据,但不是一般的用户文档。

可以通过 ($Users) 视图找到这个文档,然后再视具体情况处理即可。

time is too far in the future 问题的处理

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

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

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

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

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

运行 Java 代理时出现“Invalid or nonexistent document”错误

今天发现在 Domino 8.5.2 环境下如果通过 Java 代理引用 Script 库,那么代理运行的时候就会报“Invalid or nonexistent document”错误。此问题为已知的 bug,通过安装最新的补丁包可以解决。

Notes/Domino 8.5.2 FP3 已发布

请参考 Release Notes下载链接

通过服务器命令批量拷贝数据库

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

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

警告:Domino 8.5.2 FP1服务器丢失数据的风险

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

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

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