在实际的Platform/BPS的产品安装使用中,经常会遇到安装不成功的场景,运行版不成功多于开发版,运行版中集群安装不成功又多于单机版。手工部署安装问题也会多于安装介质的安装。下面说明一下安装不成功的可能原因。
一、检验安装成功的标准
要成功安装产品,首先要判断如何能安装成功。我们分开发版、运行版单机安装、运行版集群安装(包括手工部署包的单机和集群安装)来分别说明检验安装成功的方法,这些方法只能初步判断安装成功,不能100%说明安装成功,安装成功还要靠后面正确的应用配置、运行正常的运行才能准确判断。
开发版 | 运行版单机安装 | 运行版集群安装 |
1、安装过程中不报错。 | 1、安装过程中不报错。 | 1、安装过程中不报错。 |
二、安装不成功的原因
相对来说,开发版的安装失败可能性较小,运行版安装问题较多,运行版集群安装最复杂,问题最多。安装不成功的原因比较多,这里主要针对运行版进行说明。
1、权限不够
Windows上一般不太需要考虑权限问题。但如果安装在Linux/Unix系统上,要注意检查Linux/Unix系统的权限,比如安装用户是否具有安装目录的读写权限,必须有/tmp临时文件夹的读写权限。
2、硬盘或分区空间不够
安装目录所在硬盘分区空间不够,临时目录如Unix的 /tmp分区空间不够,也会导致安装失败。
3、数据库配置问题
数据库的IP、端口、用户名、密码、driver等配置错误,会导致数据源链接不上,启动会出错。如果配置的是C3P0数据,通过governor检查数据源配置是否正确,并测试连接是否正确。如果是JNDI数据源,也从governor检查一下数据源,并测试一下能否连接成功,再从应用服务器的控制台检查一下应用服务器的数据源配置是否正确。
4、JMS设置问题
JMS设置不正确,会导致异步调用失败。除了Tomcat外,JBoss、WebLogic和WebSphere都有JMS设置,检查应用服务器的JMS设置是否正确。这个特别是针对哑安装、手工部署安装要重点检查。WebSphere的JMS设置最复杂,还要配置激活规范,所以要重点检查。
5、类加载顺序设置不正确
类加载顺序设置不正确,会导致jar冲突造成启动或运行失败。较新版本的普元产品,对于WebLogic和WebSphere,都设置了父类加载器后使用,优先使用WAR的类加载器的设置,在WebSphere中该配置是PARENT_LAST类加载顺序。对于手工部署的运行版,特别要注意类加载顺序的设置,容易遗漏。
6、安装路径不合适
安装路径尽量不要带有空格和中文字符,空格容易在执行脚本的时候路径被截断,中文字符在非中文环境的Linux/Unix下被解析生乱码,从而无法生成正确的安装路径。
7、使用安装介质安装时,不能启动应用服务器
如果使用安装介质安装,不管是界面安装,还是哑安装,要确保不要启动应用服务器,安装过程中会自动处理。如果是手工部署包安装,往往需要启动应用服务器,主要针对WebLogic和WebSphere。
8、端口冲突
对于一台集群安装多个应用服务器和多套Platform/BPS产品的,要注意防止端口冲突,否则启动Server会失败。通过WebLogic和WebSphere的控制台建立的多个domain和profile,端口是不冲突的。但对于Tomcat和JBoss,由于是解压安装的,就会有端口冲突,需要将端口改掉。tomcat要更改conf/server.xml里面的端口,JBoss4要改server\default\deploy\jbossweb-tomcat55.sar\server.xml里面的端口server\default\conf\jboss-service.xml中的端口,JBoss 6.1.0需要更改server\default\conf\bindingservice.beans\META-INF\bindings-jboss-beans.xml中的端口。
另外还有普元产品的应用绑定端口,建议都使用外置配置目录(apps_config目录), 特别是针对手工部署安装,要配置外置目录,然后更改目录中的应用子目录中startup.conf里面的管理端口,不同的应用要配置成不同的,否则起来会冲突。
9、WebLogic集群安装后,没有手工更改为nostage模式
新版本的普元产品对于WebLogic安装介质安装采用的是stage模式,应用会部署到stage目录下,安装后需要人为改为nostage模式,这样通过Governor部署应用后,重启集群不会将应用给覆盖掉。请参考安装手册修改。
三、针对集群安装错误较高的情况,下面列表说明集中安装场景下的关键步骤,具体做法请参考安装手册的集群安装部分。
集群安装产品只支持WebLogic和WebSphere,下面针对这两种集群安装进行说明。
界面安装 | 哑安装 | 手工部署安装 |
1、搭建好集群环境,一个管理服务器,多个被管服务器(集群节点),被管服务器加入一个集群中。 | 1、搭建好集群环境,一个管理服务器,多个被管服务器(集群节点),被管服务器加入一个集群中。 | 1、搭建好集群环境,一个管理服务器,多个被管服务器(集群节点),被管服务器加入一个集群中。 |
四、安装不成功问题定位
如果安装不成功,需要定位问题,下面有几点定位问题方法。
1、界面安装时界面的出错
界面安装时界面的报错信息比较重要,有些比较直观,比如数据库连接不上,应该是数据库设置不正确,或者是网络不通造成的,很容易解决。如果界面报错不明确,需要通过安装日志来定位。
2、查看安装日志
界面安装和哑安装出现错误,都会将错误写入安装日志。安装日志的位置,对于Windows系统,一般在C盘的用户目录下。对于Linux/Unix系统,一般在/tmp临时目录下。安装日志的名字一般是这样的。如bps_install.log, eos_platform_7.2.install.log。 重点看里面ERROR表示的日志行,或有异常栈的部分。
3、查看运行期日志
如果安装成功,但启动或运行失败,需要查看运行期日志来定位问题。运行期的日志一般在外置目录(默认为apps_config, 或eosserver,这是针对老版本的)下面的logs目录中,或者搜索*.log,搜索出的日志。重点看里面ERROR表示的日志行,或有异常栈的部分。
4、通过日志定位问题
通过日志定位问题,主要是定位异常栈,找到一个异常的最下面的Cause By,这个异常是最初的异常原因,Cause by后面有异常说明,其下面一行是出现异常的类和出现异常的行号,我们可以找到类的jar,使用JD进行反编译,找到异常的行号,通过反编译代码来分析异常。
下面的异常栈分析可以看出,红色部分的Cause by是最底层的原因,而上面的所有Cause by都不是直接原因,所以可以先忽略不看。
[@@][@time][2014-04-21 11:06:12.682][@reqID][4028802a458212540145823f5fd10411][@type][_pageflow][@operType][exception][@qName][com.primeton.workflow.client.pageflow.startProcess.flow?_eosFlowAction=action9][@exception][<StackTrace>
Unknown macro: { \ErrCode}
Caused by: java.lang.Error: 无法解析的编译问题: |