关于解决Domino web服务器(HTTP)宕机和挂起的问题

来源:互联网 发布:生鲜app源码 编辑:程序博客网 时间:2024/06/05 08:28

关于HTTP 的宕机的问题

因为HTTP任务的宕机的原因有很多种,所以要解决有关HTTP宕机的问题,需要用到几个文件来定位问题,但是首先就是要确定是否是HTTP进程引起的宕机。这可以通过查看在宕机时产生的NOTES.RIP 的文件来定位的, 而Quincy就是在系统被作为缺省的调试程序安装的,也就是它生成的NOTES.RIP。


有可能引起宕机的原因有:
代理或 CGI 坏了的图标(icons)或图像文件(images)
损坏的数据属性中不常用的设置,例如:控制访问的部分,隐藏公式(hide-when formulas)等。
损坏的磁盘缓存(disk cache)

解决宕机的问题可能包括:禁用任何值得怀疑的代理或CGI;清除磁盘缓存;进行数据库维护;重建视图;以及其它的一般性维护等。为了能够定位HTTP宕机的原因,需要最少2个单独的RIP文件。而技术支持需要对每一个宕机进行诊断,以定位出:
1。服务器在宕机的时候在做什么?
2。服务器在宕机的时候是处理的哪一个URL?

用刚才所得出来的URL来尝试是否可以引起再次的宕机,对于解决HTTP宕机是很重要的。一般是需要最少2-3次的重试,来看是否是由于它引起的宕机。

对于每一次的宕机,都需要收集下面的数据:
1。RIP 文件 (NOTES.RIP) 和/或 NSD: 需要收集每一次的NOTES.RIP或NSD文件。
2。Domino Web 日志: 为了能够定位出在服务器上的Web 活动的流程,用户需要在宕机期间启用在Domino服务器文档中启用记录Web活动的选项。具体方法如下:
1) 从 Domino Administrator 中单击“配置”附签。
2) 打开 Web 服务器的“服务器”文档。
3) 单击“Internet 协议”“HTTP”附签。
4) 在 Domlog.nsf 域中选择“启用”。
5) 保存此文档,然后重新启动 HTTP 任务以使更改生效。

 

3。控制台的输出(Console output) 和/或 LOG.NSF: 其中首选的是控制台的输出文件,因为此数据是一个典型的没有缓存的数据。而对于一些宕机事件,只有在选控制台的输出文件中才能找到错误信息。用户需要在Domino服务器的notes.ini文件中添加如下的参数,以得到控制台的输出文件。
DEBUG_OUTFILE=C:/domconsole.txt
DEBUG_THREADID=1


4。NOTES.INI和 服务器文档: 这些数据是用来查看是否有不正规的HTTP设置引起了宕机。

5。REQ*.LOG文件: 为了能够更深入地诊断Domino Web服务器宕机的问题,需要用户参照下面的步骤来为Domino启用记录HTTP的请求:

注意: HTTP 的请求日志是用于检查一些特殊的问题,一般是提交给Lotus 技术支持的。请不要把此功能用于其它的地方,因为这些日志文件会随着时间而增长,占用所有的磁盘空间,所以不能用于长时间使用。

为Domino启用记录HTTP的请求,可以采用下面方法中的一种:

1。在Domino控制台上输入命令:tell HTTP debug thread on

一旦记录日志被启用,发往服务器的请求将会被记录在REQ*.LOG的文件中(在Win32平台,此文件位于Domino的程序目录下;在UNIX平台,此文件位于Domino的数据目录下)。此命令只是作用于现有的HTTP会话,一旦HTTP任务被重新启动,将不会再记录HTTP的请求。

用户可以通过输入"tell HTTP debug thread off"来结束记录请求。

2。如果要使HTTP每次启用都记录请求日志,需要把下面一行加入到 HTTPD.CNF(此文件位于/NOTES/DATA目录下): debugthreadlogging on (注意此行参数必须是小写),然后重新启动HTTP任务。

注意:
1。REQ*.LOG的文件会增长得很快,所以需要定期移走或删除这些REQ*.LOG文件(建议为每天做一下)。
2。 REQ*.LOG可以在Domino服务器运行的时候被删除,删除后新的REQ*.LOG将会生成。


II. 关于HTTP 挂起的问题

HTTP 挂起的问题是一个比较难处理的问题,需要做很多的工作,并且需要收集很多次的数据来细化此问题。

有可能引起HTTP挂起的问题如下:

CPU spin (由于大量的视图重建,或是损坏的视图或文档)
过多的代理运行,或是有代理挂起的问题出现
在服务器文档中启用了DNSLookup
信号灯超时的问题
网络或是绑定的端口问题(建议:可以尝试重新安装补丁)
在服务器上的过多的数据传输交易(可以从Domino的统计值中得到相关信息)

为了能够精确定位出问题所在,需要用户提供出确切的环境情况,而技术支持需要确认服务器是否为挂起的状态,还是由于性能的问题引起了服务器在一段时间内没有相应。为了能够确认这些,用户需要在挂起的情形下,删除程序目录下面的已有的REQ*.LOG的文件。如果新的REQ*.LOG文件在几分钟之内被重新创建了,那么可以说明服务器还是处于活动状态,还可以处理新的浏览器所提出的请求。因此,可以说明HTTP的任务并没有被挂起,应该属于性能缓慢的问题,而技术支持就需要按照性能缓慢的问题来解决此问题。如果在删除了旧的REQ*.LOG的文件后,并没有新的REQ*.LOG的文件在几分钟之内生成,那么可以认定服务器的HTTP 状态是挂起了,因为没有新的浏览器所提出的请求被处理了。

在每次的挂起出现时,需要用户提供下面的文件给技术支持:
REQ*.LOG 文件
访问的日志 和/或 DOMLOG.NSF
控制台的输出和/或LOG.NSF
NSD
SEMDEBUG.TXT(如果与信号灯相关)


其它有可能需要的文件:
NOTES.INI 和服务器文档
STATREP.NSF
任务管理器的屏幕摄像(在Windows 平台上)
其它的操作系统级的诊断数据,例如:交换内存的使用情况等。

由于代理挂起引起的HTTP 挂起问题:

一个主要的引起HTTP挂起的原因就是Web触发的代理的挂起。对于处理由于代理引起的HTTP挂起,一般采用下面的三个步骤:
1。确认是否是由于一个代理引起的挂起
2。找出引发的线程或URL。
3。定位出引起挂起的代理

上面的三个步骤都是需要经过很多次的、反复的调试。在大多数的问题中,技术支持可能还需要在有问题的代理中添加信息框(Message Box)的陈述,以定位出引起挂起的原因。一旦引起挂机的代理被确认出来,技术支持将删除以前所加入的调试信息。

重要提示:对于解决HTTP挂起的问题,技术支持需要用户分离每一次的HTTP的挂起所生成的REQ*.LOG 文件。因为REQ*.LOG文件的内容是可以累计的,所以,需要用户在每次重新启动HTTP的任务之前把原来的REQ*.LOG文件移到磁盘上其它的位置。否则,新的挂起信息将会被记录到原来的文件中,从而导致所采集的信息的混淆。

原创粉丝点击