关于解决WebSphere服务不能启动问题的几点经验总结
Last Version:2003-3-20
简述
WebSphere服务不能启动的原因通常有以下几种情况引起。有没杀干净的java进程;数据库没有启动;数据库部分参数设置错误;数据库结构坏掉;was连接数据库的schema不一致;病毒;补丁等原因。起初WebSpher服务不能启动,只好重新安装,浪费了不少时间,走了不少弯路。当出现WebSphere服务不能启动时,一般请先按下面步骤做一下检查。通常情况下,只要重新初始化一下管理库就可以了。
目录
一、首先检查是否有没有杀干净的java进程
二、检查db2数据库是否正常启动
三、检查管理数据库was是否存在
四、检查存放数据库的设备是否正常mount
五、检查WebSphere联接was库的schema是否一致
六、was管理数据库的修复(初始化)
七、检查文件库是否坏掉与was管理库的重建
八、Windows平台还应排除是否病毒原因
九、Linux平台通常跟系统补丁有关
内容
一、先检查是否有没有杀干净的java进程
在unix下:
# ps –ef | grep java
# kill –9 pid(注意确认是was的java进程)
然后再重新启动一次was服务。
# /opt/WebSphere/AppServer/bin/startupServer sh&
# tail –f opt/WebSphere/AppServer/logs/tracelog
在windows平台使用资源管理器查看并杀掉was java,重新启动服务。
二、检查db2数据库是否正常启动
如果WebSphere使用的db2作为管理库,那么应该首先检查db2是否正常启动。如果没有启动应启动它:检查是否有数据库 mount fsck
在unix下:
# su – db2as
$ db2admin start
$ su – db2inst1
$ db2start
在win平台下从cmd窗口或服务中启动。
三、检查管理数据库was是否存在
如果db2服务器动正常,仍不能启动,需要检查数据库是否存在。
在unix下:
$ db2
=>list db directory
=>connect to was user <user> using <password>
在window平台下从db2 command widow或控制中心查看。
四、检查存放数据库的设备是否正常mount
如果存在数据库却联接不上,可能情况之一是数据库设备没有正确mount上,在UNIX平台,非正常关机或一些对磁盘有破坏的操作会导致这种情况出现。
请使用下面命令检查没有mount上的磁盘。
# df –k
# mount
# mountall
# cat /etc/vfstab
假设检查到/dev/dsk/c0t0d0s6设备没有正确mount,使用 # fsck –f /dev/dsk/c0t0d0s6对其修复,再重新启动服务器。
五、检查WebSphere联接was库的schema是否一致
现象:
$ db2
=>db2
=>force application all
# /opt/WebSphere/AppServer/bin/startupServer sh&
启动服务后运行
=>list applications
也能列出已经联接was库,但仍启动失败。这时,确认是否改动过WebSphere联接数据库的dbUser,因为db2中不同用户创建的表存放在不同的schema下面,如果原来初始化成功,连接也正常,为了某种原因(如保密)将websphere联接was库的用户改掉,造成websphere找不到初始化表,造成服务无法启动。
解决办法有二:
一)、修改回原来的dbuser,在/opt/WebSphere/AppServer/bin/admin.config中(win版本在相关目录下),相关行:
com.ibm.ejs.sm.adminServer.dbUser=
com.ibm.ejs.sm.adminServer.dbSchema=
二)、重新初始化管理数据库
1、 WebSphere 3.54版本以前(含)
1)、修改/opt/WebSphere/AppServer/bin/admin.config(win版本在相关目录下):
install.initial.config=false 修改为 true
2)、# /opt/WebSphere/AppServer/bin/startServer.sh &
2、 WebSphere 3.55、3.56版本,相对3.54版本做了比较大的改动
1)、修改/opt/WebSphere/AppServer/bin/admin.config(win版本在相关目录下):
install.initial.config=false 修改为 true
还要修改
com.ibm.ejs.sm.adminServer.dbInitialized=true改为 false
2)、# /opt/WebSphere/AppServer/bin/startServer.sh &
六、was管理数据库的修复(初始化)
使用文件管理库(InstDB)不存在schema问题,但有时设置环境变量出现错误时,仍能造成was服务不能启动,这时,就需要对管理库进行修复,使一些启动参数回到初始化状态。管理库初始化后,和初始参数不相干的一些设置仍会保留下来。可以节省一些重设时间。但如果不相干的设置出现问题,只有重新建管理库。
对于db2管理库,和使用Instdb的文件管理库,本方法均适用:
一)、WebSphere 3.54版本以前(含)
1、修改/opt/WebSphere/AppServer/bin/admin.config(win版本在相关目录下):
install.initial.config=false 修改为 true
2、# /opt/WebSphere/AppServer/bin/startServer.sh &
二)、WebSphere 3.55、3.56版本,相对3.54版本做了比较大的改动,因此要特别注意
1、修改/opt/WebSphere/AppServer/bin/admin.config(win版本在相关目录下):
install.initial.config=false 修改为 true
还要修改
com.ibm.ejs.sm.adminServer.dbInitialized=true改为 false
2、# /opt/WebSphere/AppServer/bin/startServer.sh &
七、检查文件库是否坏掉与was管理库的重建
确认是数据库已经损坏,下面的工作是要重新创建库,重新初始化。(最早的时候,因为不知道问题的原因,只好重装,走了不少弯路)。在翔宇enp2000服务器也遇到过一次Instdb文件库损坏造成WebSphere不能启动的事故。解决办法一并列出:
一)、db2数据库,以unix平台为例:
1、 删除数据库
# su – db2inst1
$ db2
=>disconnect all
=>force application all
=>termenate
$ db2 drop db was
2、 创建数据库
$ db2
=>create db was
=>update db cfg for was using applheapsz 256
3、修改admin.config,数据库初始化
1)、WebSphere 3.54版本以前(含)
a、修改/opt/WebSphere/AppServer/bin/admin.config
install.initial.config=false 修改为 true
b、# /opt/WebSphere/AppServer/bin/startServer.sh &
2)、WebSphere 3.55、3.56版本
a、修改/opt/WebSphere/AppServer/bin/admin.config
Install.initial.config=false 修改为 true
还要修改
com.ibm.ejs.sm.adminServer.dbInitialized=true改为 false
b、# /opt/WebSphere/AppServer/bin/startServer.sh &
二)、文件管理库
1、 删除数据库
删除或改名文件库目录:
# rm –R /opt/WebSphere/AppServer/bin/idbStore 或
# cd /opt/WebSphere/AppServer/bin/idbStore
# mv ./idbStore ./idbStore.bak
2、修改admin.config,数据库初始化
1)、WebSphere 3.54版本以前(含)
a、修改/opt/WebSphere/AppServer/bin/admin.config
install.initial.config=false 修改为 true
b、# /opt/WebSphere/AppServer/bin/startServer.sh &
2)、WebSphere 3.55、3.56版本
a、修改/opt/WebSphere/AppServer/bin/admin.config
Install.initial.config=false 修改为 true
还要修改
com.ibm.ejs.sm.adminServer.dbInitialized=true改为 false
b、# /opt/WebSphere/AppServer/bin/startServer.sh &
八、Windows平台还应排除是否病毒原因引起。
九、Linux平台频繁出现不能启动服务,除以上原因外,还应检查版本所需要的补丁,很多情况是因为补丁不够造成。
2003-03-20