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