申万Web1损坏无法启动,问题解决--iplanet connector问题

来源:百度文库 编辑:神马文学网 时间:2024/05/03 05:23:15
神网二期网站重启故障分析及解决方案
当前版本:1.0
最后修改日期:2008-5-15
修订人:张炎冰
www.lidoo.com
修订记录
日   期
版 本 号
摘        要
作  者
2008-5-15
1.0
总结故障解决方案
张炎冰
VSS
0108 申万二期/
相对目录
$/200805 网站重启故障
目录:
一           故障背景. 2
二           故障解决. 2
2.1     过程说明. 2
2.2     故障分析. 2
2.2.1     问题的初步估计(2008.5.8) 2
2.2.2     增强log输出(2008.5.9) 3
2.2.3     问题解决(2008.5.13-2008.5.14). 5
2.3     解决办法. 5
2.4     操作命令. 5
为了应对证监会即将展开的针对各大证券公司网站做的安全性检查,申万提早做了一次网站安全性的测试。在测试途中,针对Web1的测试大致做了3-4个小时,Web1突然不提供对外服务,申万重启了应用,Web1也无法正常对外服务。甚至于将Web1、ias2机器都冷启动了一下,Web1还是无法正常的对外服务。
由于发生故障的机器发生在申万对外服务的机房里,申万不愿将发生故障的机器拿出来进行故障解决(包括重装),因此只有多次到申万机器现场观看重启的故障,拿回启动log做故障分析。
根据log、以及执行解决方法过程中遇到的问题,定位到可能的故障的发生点,将申万Web1运行的软件包打包回公司进行故障诊断,又发生公司Solaris机器不足,解决后又有硬盘不足等问题。
而且自从上次申万不续签维护合同后,iplanet的中间件已经有3、4年没有深入的使用了。在接手故障的时候只能凭记忆先进行恢复,随后针对故障表现在网上寻找相关的资料,在没有找到匹配的解决方式的时候,对可能引起问题的部件的相关文档做了仔细的阅读、分析,这些文档包括:iPlanet Application Server V6 Registry Guide.pdf(100页原版pdf)、iPlanetApplication Server V6SP1 Administration Guide.pdf(234页原版pdf)。
由于上述的原因,造成了本次解决Web1重启问题的主要时间耗费在申万运行软件的复制以及环境的部署上(文档的阅读都是在晚上或者等待软件的时候进行的)。
申万Web1无法重启正常对外服务,首先拿到申万的log日志,通过log日志只能初步判断是iws在不断的初始化,iws初始化的不正常造成iws无法对外服务。由于日志中记录的内容太简单,无法判断故障的起因。
Log日志如下:
[05/May/2008:01:05:03] info (18991): successful server startup
[05/May/2008:01:05:03] info (18991): iPlanet-WebServer-Enterprise/4.1SP14 BB1-01/15/2004 13:04
[05/May/2008:01:05:03] info (18991): log.cpp:openPluginLog() reports: Environment variable IAS_PLUGIN_LOG_FILE is not set. All plugin messages will be logged in the web server log file
# 下面的内容不断重复,每个2秒钟重复一次
[05/May/2008:01:05:03] info (18991): gxinit reports: Initializing...
[05/May/2008:01:05:03] info (18991): initialize.cpp:initialize() reports: Initializing iPlanet Application Server Web Plugin, version #  SP3
[05/May/2008:01:05:03] info (18991): ReadRegistry reports: Entered ReadRegistry
[05/May/2008:01:05:03] info (18991): ReadRegistry reports: Primary host [10.250.2.42:10818]
[05/May/2008:01:05:03] info (18991): ReadRegistry reports: sendRawPostData is 0 posttoken=HTTP_POST_BODY
[05/May/2008:01:05:05] info (18999): log.cpp:openPluginLog() reports: Environment variable IAS_PLUGIN_LOG_FILE is not set. All plugin messages will be logged in the web server log file
根据拿回来的日志无法判断具体的问题起因,需要加强iws启动时候的日志输出信息。分析iplanet的文档,可以通过设置参数的方式增强iws的日志输出信息。在公司内部进行了尝试,发现参数修改后,输出的日志信息丰富了许多,对诊断问题可以带来很大的帮助。写了操作手册让申万机房进行同样的处理。
在申万机房进行处理的时候,发现参数都无法进行正常设置,运行设置参数程序时报错,报错内容如下:
Font specified in font.properties not found [-b&h-lucida sans-medium-r-normal-sans-*-%d-*-*-p-*-iso8859-1]
Font specified in font.properties not found [-urw-itc zapfdingbats-medium-r-normal--*-%d-*-*-p-*-sun-fontspecific]
Font specified in font.properties not found [-urw-itc zapfdingbats-medium-r-normal--*-%d-*-*-p-*-sun-fontspecific]
Font specified in font.properties not found [-b&h-lucida bright-medium-r-normal--*-%d-*-*-p-*-iso8859-1]
Font specified in font.properties not found [-urw-itc zapfdingbats-medium-r-normal--*-%d-*-*-p-*-sun-fontspecific]
Font specified in font.properties not found [-urw-itc zapfdingbats-medium-r-normal--*-%d-*-*-p-*-sun-fontspecific]
Font specified in font.properties not found [-urw-itc zapfdingbats-medium-r-normal--*-%d-*-*-p-*-sun-fontspecific]
Font specified in font.properties not found [-urw-itc zapfdingbats-medium-r-normal--*-%d-*-*-p-*-sun-fontspecific]
Font specified in font.properties not found [-b&h-lucida sans-medium-i-normal-sans-*-%d-*-*-p-*-iso8859-1]
Font specified in font.properties not found [-urw-itc zapfdingbats-medium-r-normal--*-%d-*-*-p-*-sun-fontspecific]
Font specified in font.properties not found [-urw-itc zapfdingbats-medium-r-normal--*-%d-*-*-p-*-sun-fontspecific]
Font specified in font.properties not found [-urw-itc zapfdingbats-medium-r-normal--*-%d-*-*-p-*-sun-fontspecific]
Font specified in font.properties not found [-b&h-lucida bright-medium-i-normal--*-%d-*-*-p-*-iso8859-1]
Font specified in font.properties not found [-b&h-lucida sans-medium-i-normal-sans-*-%d-*-*-p-*-iso8859-1]
Font specified in font.properties not found [-urw-itc zapfdingbats-medium-r-normal--*-%d-*-*-p-*-sun-fontspecific]
Font specified in font.properties not found [-urw-itc zapfdingbats-medium-r-normal--*-%d-*-*-p-*-sun-fontspecific]
Font specified in font.properties not found [-urw-itc zapfdingbats-medium-r-normal--*-%d-*-*-p-*-sun-fontspecific]
Font specified in font.properties not found [-urw-itc zapfdingbats-medium-r-normal--*-%d-*-*-p-*-sun-fontspecific]
Font specified in font.properties not found [-b&h-lucida sans-medium-r-normal-sans-*-%d-*-*-p-*-iso8859-1]
Font specified in font.properties not found [-urw-itc zapfdingbats-medium-r-normal--*-%d-*-*-p-*-sun-fontspecific]
GXBindInit: GXBindBasic failed
GXContextInit: GXBindInit failed 2
[09/May/2008 18:16:50:0] error: ENGINE-context_init_failed: EngineClassSpace ContextModule.createContextInit failed:
error: could not get context
*** Errors in initialization from registry ***
Errors in initialization, exiting ...
通过以上的运行log判断:(2008.5.12一早将此结论发送给梁刚)
根据上述的情况判断,应该是iplanet的connector有故障。故障的可能情况
配置文件损坏
驱动软件损坏
LDAP数据内容损坏或LDAP损坏(估计概率小一些)
以后的工作主要是围绕上述的3种可能性进行展开。同时需要申万再提供一些详细资料,最好下列内容一次性能够提供齐全,这样有怀疑就能直接进行处理,不用再进行多次来回交互,以达到节约时间,尽快将问题处理完成的目的。
同时公司内部提供2台sun机器,能够模拟申万的实际环境情况。
为了尽快的解决Web1的启动问题,需要能够拿到在Web1上运行的完整的运行软件。
申万经过一天的打包,5.13日将web1机器上的/opt/netscape目录都拷贝出来了,派人到申万去将复制出来的内容拿回来。
复制出来的内容解压出来有1个多G,内部腾出来的机器空间不够,进行机器空间的整理(这台机器很长时间没有运行过,机器修复也占用了一定的时间)。直到第二天(2008.5.14)才将申万拿回来的文件全部部署上去。
5.14日上午一来就运行iplanet,发现一个最关键的文件: reg.dat(connector配置文件) 没有复制出来,立刻通知梁刚(梁刚在常熟路解决问题,到下午才回昌化路),下午快5点的时候拿到了Web1、Web2机器下的这个文件,立刻着手进行尝试解决问题。
将Web1的reg.dat放到内部机器上,遇到了和申万同样的问题:iws在不断的初始化。
将Web2的reg.dat覆盖上去,将环境设置成公司内部的情况,用工具修改reg.dat,发现iws不仅能正常的启动,而且ias启动后,iws可以连接到ias,显示动态的页面(iws和ias分别运行在不同的机器上,显示的是Web行情的页面)。当初的判断是正确的,是connector的配置文件损坏了,造成iws启动故障。
再次对比Web1和Web2上的reg.dat,发现Web1上的reg.dat文件缺少了大量的信息,connector启动的时候无法读到必须的参数造成了iws启动的失败。
虽然这么改好了,也可以运行iws,ias,但是一些环境的配置还是Web2上的配置,因此有手工修改reg.dat文件,将相关信息修改成公司内部的状况,发现iws,ias依旧运行正常。
经过实际操作确认:reg.dat是一个文本文件,记录着connector启动的时候必备的参数(其它运行时的关键参数都记录在ias的ldap中),可以按照Web1的实际环境修改Web2上的reg.dat文件(这2台机器运行的应用完全一致,机器环境不一样,连接的ias不同),放到Web1机器上,满足connector启动的要求就可以将Web1重启了。
1.    完整的备份Web1和ias2机器中的/opt/netscape目录(备份前需关闭iplanet中间件)
2.    将Web2的connector(在/opt/netscape/ias6_web2_ias3/ias/registry目录下)复制到Web1中(/opt/netscape/ias6_web1_ias2/ias/registry)目录下,覆盖原来的reg.dat文件。
3.    修改复制过来的reg.dat:
a)      用vi打开reg.dat
b)      按照Web1的实际情况修改文件内容,将所有原来Web2的配置修改成Web1的配置
命令
作用
:%s/ias6_web2_ias3/ias6_web1_ias2/g
在Web2上,connector安装在ias6_web2_ias3目录下,
在Web1上,connector安装在ias6_web1_ias2目录下
:%s/ias3/ias2/g
:%s/10.250.3.43/10.250.2.42/g
:%s/10.250.1.12/10.250.1.11/g
4.    启动ias2
5.    启动web1
这样可以通过IE访问Web1了。