Lotus教程、Java教程、Java虚拟机、Java软件综合开发社区

Lotus、Domino、Java、C#、Web、数据库综合开发教程、资料社区

Domino 报告错误信息:“PANIC: Unexpected internal error returned to logger: 0×20762010”后宕机



Published by admin on 03月 2, 2011

产品:Lotus Domino
平台:Windows, Windows 64bit
软件版本: 8.5, 8.0, 7.0, 6.5

问题描述:

启用事务日志(任何记录样式)的 Domino 服务器需要无延时地写到日志中(TXN)。如果操作系统或者磁盘系统没有能力及时处理,那么日志中会出现错误,大多数情况下 Domino 会通过 PANIC 来保护数据丢失。基于从操作系统中返回的错误代码,当错误发生的时候可能会显示各种 Domino 错误消息。当外部应用程序通过直接的文件访问方式访问日志(而不是通过 Domino 服务器调用 API),同时Domino 试图写日志时,会发生以下错误:

PANIC: Unexpected internal error returned to logger: 0×20762010

注意消息中的“2076”是针对这种情况的,并且定义了两部分数值的“高位”部分。

如果“2076”位于8位错误代码的前4位时,说明是由于外部应用程序造成的错误。

解答:

由于该问题本身所致,该错误可能出现的非常少,除非外部应用程序经常以文件方式访问日志。因此可以解释“所有的服务器都以这种方式配置”。这是一个时间问题。

应用程序不应该直接(不是通过 API 调用)访问日志或者控制文件(ncontrol.lfh)。

如果不知道是哪个应用程序造成的这个问题,可以配置NSD收集Domino宕机时所有进程的信息(不仅是 Domino 进程)。这样,该应用程序就可以被识别出来。

为了配置 NSD 来收集访问文件的所有进程,使用 NSD的ALLHANDLES 选项。找到 DATA 目录下的 NSD.INI 文件(不是 NOTES.INI 文件)并添加以下行:

ALLHANDLES=1

…以回车结尾。保存该文件。(Domino 运行时也可以执行这个操作。)当下次运行 NSD 时,它的数据中将包含所有后台应用程序。

如果再次发生宕机,那么 NSD 将包含类似以下信息的条目:
<@@ - System Data -> Process Handles :: [ {process name}: {PID} ] (Time hh:mm:ss) - @@>
Handle Access Type KAddress Name

0xnnnn 0xnnnnnnnn File nnnnnnnn \Device\HarddiskVolume1\logdir\S000nnnn.TXN

(logdir\ 代表事务日志目录名)

当 NSD 使用 ALLHANDLES 选项后,它将需要更长时间去运行,因为需要额外的数据收集。这可能导致 NSD 超出了服务器文档中设置的最大时间。在服务器文档部分,“自动服务器恢复,清理 Script/NSD 最大执行时间:”这个默认值是300秒(5分钟)。实际 NSD 运行的确切时候是不可知的,一般不会达到600秒(10分钟)。

除了以上步骤外,还需要通过以下NOTES.INI 中的参数来收集Domino 服务器的宕机信息:

Console_Log_Enabled=1
Debug_ThreadID=1
Debug_RM_Debug=1
Debug_Delete_Extents=1
Debug_Show_Timeout=1
Debug_Capture_Timeout=1

重启 Domino 以启用这些配置。这些跟踪参数不会明显地增加服务器的运行负载,因此可以保留在服务器上。

该文档基于以下软件问题报告(SPR):
TWIG7NJFHY



【版权说明】:本网页上有部分内容来源于网上收集,但不能保证资料的完整性和准确性,仅提供参考和学习。如有侵权请立即通知我们,我们将立即删除,谢谢合作!

Add A Comment