在启动windchill服务的时候,是不是经常会出现MethodServer 无法启动的情况,在排查时,经常会发现没有日志,什么表面问题都无法定位信息。
下面介绍几个常见的排查方法
场景一
ServerManager 可以启动,但处于挂起状态。methodserver没有启动反应
官方知识库
Server Manager日志中的报错如下:
2015-06-29 13:46:21,101 INFO [main] wt.server.manager.startup - ServerManager bound in registry.
2015-06-29 13:46:21,108 INFO [main]
wt.manager.CacheMasterNegotiator - Cache master stub name: CacheMaster
2015-06-29 13:46:21,108 INFO [main]
wt.manager.CacheMasterNegotiator - Using low-locking algorithm
场景一问题定位:
1.HOSTS 文件中的服务器别名或服务器名称配置映射到了错误的IP地址
2.连接数据库服务器失败
场景一解决办法
1.查看host文件
2.如果是数据库,可能是由于数据库无法识别监听,可以使用plsql 看是否能使用db.properties 文件中的配合进行连接数据库,
如果数据无法连接,但用sqlplus可以连接,可能是因为TNS的description有问题, 无法识别host,可以将TNS串的host修改为127.0.0.1尝试下。
场景二
methodServer 一闪而过,后台没有日志,ServerManager可以启动,且没有异常,没有其他任何异常信息。
这个问题是比较头疼的,因为没有切入点去找到有用的信息
场景二问题定位:
-
因为没有直接的信息反馈,methodServer 一闪而过,说明MS 是可以启动的。
官方知识库
定位方式:
1.打开methodServer 和 ServerManager日志
针对服务器管理器
编辑<Windchill>/codebase/log4j.properties 文件,添加
log4j.logger.wt.manager.ServerLauncher=ALL
在Windchill外壳程序上执行 Windchill start
这样会输出启动服务器管理器的完整的命令行到终端上
针对方法服务器编辑
<Windchill>/codebase/WEBINF/log4jServerManager.properties 文件,添加log4j.logger.wt.manager.ServerLauncher=ALL
在Windchill外壳程序上执行 Windchill start
当服务器管理器尝试启动方法服务器时,这样会输出启动完整的命令行到 服务器管理器 日志
2.找到methodServer 和ServerManger的真实启动方式
针对服务器管理器
Windchill外壳程序上执行以下命令
windchill wt.manager.BaseServerLauncher -p ServerManager
针对方法服务器
Windchill外壳程序上执行以下命令
windchill wt.manager.BaseServerLauncher -p MethodServer
3.拷贝以上命令输出结果,在Windchill shell中,重新输入命令
针对Microsoft Windows操作系统
cmd.exe /C start "ServerManager" /MIN
"C:\ptc\Windchill_9.1\Java\jre\bin\java.exe" ... 修改为
"C:\ptc\Windchill_9.1\Java\jre\bin\java.exe"...
针对Unix
xterm -title ServerManager -sb -sl 500 -e /opt/java1.6/jre/bin/java ... 修改为 /opt/java1.6/jre/bin/java ...
输出完第三步的命令之后,可以在Windchill shell中看到错误的异常信息,同时后台会有异常打印。
场景二的定位方式可以适用于所有methodServer 或者 ServerMnaager不能启动的情况