admin 管理员组

文章数量: 1086019


2024年1月10日发(作者:java编程软件库)

BES

问题处理

2011-4-7

北京宝兰德软件技术服务有限公司

快速入门及常见

BES Software and Service Corporation

目录

目录 ............................................................................................................................................. 2

1.

2.

3.

简述 ................................................................................................................................... 3

名词术语 ........................................................................................................................... 3

产品体系结构 ................................................................................................................... 3

3.1. 集群体系结构 ........................................................................................................... 3

3.2. 应用服务器实例体系结构 ....................................................................................... 3

4.

5.

6.

7.

8.

9.

BES的管理架构和基本操作 .......................................................................................... 4

BES安装说明 .................................................................................................................. 5

添加补丁 ........................................................................................................................... 6

产品激活 ........................................................................................................................... 6

公共配置文件、基础库部署 ........................................................................................... 7

数据源管理 ....................................................................................................................... 7

9.1. 数据库连接池管理 ................................................................................................... 7

9.2. JDBC资源管理(JNDI) ............................................................................................. 8

9.3. JNDI客户端配置 ..................................................................................................... 9

10. Web集群管理 ................................................................................................................ 11

10.1.

10.2.

10.3.

10.4.

10.5.

11.

创建集群 ......................................................................................................... 11

创建集群实例 ................................................................................................. 11

创建Apache服务 ........................................................................................... 12

配置apache服务 ............................................................................................ 12

实例属性配置 ................................................................................................. 13

应用部署 ......................................................................................................................... 14

11.1.

11.2.

集群部署 ......................................................................................................... 14

独立实例部署 ................................................................................................. 16

12. 常见问题处理 ................................................................................................................. 16

12.1.

12.2.

12.3.

Web应用乱码常见解决办法 ........................................................................ 16

WAS上EJB迁移 .......................................................................................... 18

WEB应用(war)部署不成功 .......................................................................... 19

2 / 19

BES Software and Service Corporation

1. 简述

本文为BES快速入门手册,旨在帮助BES用户进行安装、简单的配置和部署管理应用。本文将按照需要而进行更新。

2. 名词术语

DMS:域管理控制器

Domain:域

Node:节点

Node Agent:节点代理

Instance: 实例

Cluster:集群

Cluster Instance:集群实例

3. 产品体系结构

3.1. 集群体系结构

BES集群的体系结构图:

一个集群下的所有集群实例可以分属于不同的节点(Node),但是必须同属于一个域(Domain),它们具有相同的配置并且部署相同的应用。HTTP(S)客户端的负载均衡可以采用四层交换实现,也可以采用BES内部Apache实现。

3.2. 应用服务器实例体系结构

3 / 19

BES Software and Service Corporation

应用服务器实例就是在单个Java 虚拟机(JVM)进程中运行的应用服务器。可以使用

iastool命令或者管理控制台对服务器实例进行配置管理。

应用服务器实例的体系结构:

4. BES的管理架构和基本操作

BES的管理架构图如下:

由域控制器节点代理实例构成了BES的3层管理架构,基于该架构上的域内节点和实例可以灵活地构成应用所需要的集群。

4 / 19

BES Software and Service Corporation

每个节点都有一个节点代理进程,节点代理进程负责管理此节点下所有实例。域管理控制器(DMS)负责管理所有节点。命令行工具和管理控制台通过与域管理控制器的信息交互,来配置管理DMS下面的所有实例。

常见的操作和管理命令包括:

登录命令行控制台:

创建DMS名为domain1的域

启动域domain1 (必须命令行启动)

停止域domain1

创建节点名为Node1的节点

iastool --passport admin

iastool create --domain --passport admin --user admin

--password admin --adminport 1900 domain1

iastool start --domain --passport admin domain1

iastool stop --domain --passport admin domain1

iastool create --node --passport admin --domainname domain1

Node1

iastool create --node --passport admin --domainname domain1

Node2

iastool start --node --passport admin --domainname domain1

Node1

iastool create --instance --passport admin --node Node1 Server1

iastool start --instance --passport admin Server1

iastool stop --instance --passport admin Server1

iastool create --cluster --passport admin --user admin --password

admin Cluster1

iastool create --instance --passport admin --ajpport 60001 --node

Node1--cluster Cluster1 c1s1

iastool create --instance --passport admin --ajpport 60002 --node

Node2--cluster Cluster1 c1s2

iastool deploy --passport admin --host localhost --port 1900 --user

部署应用 admin --password admin --domain domain1 --target server01

D:

iastool undeploy --passport admin --host localhost --port 1900

解部署应用 --user admin --password admin --domain domain1 --target

server01 J2EE5WebTest

创建节点名为Node2的节点

启动节点Node1 (必须命令行启动)

创建实例名Server1的实例

启动实例Server1

停止实例Server1

创建集群名为Cluster1的集群:

在集群 Cluster1下创建集群实例c1s1(将此实例创建在节点Node1下)

在集群 Cluster1下创建集群实例c1s2(将此实例创建在节点Node2下)

详细信息可以参考《BES用户手册》

5. BES安装说明

字符界面安装:

在Windows下,通过命令行执行: -i console

在Unix下执行:./BES8.1.0.7590-HPUX_ –i console

安装完成后便可以使用上节描述的创建域控制器、节点等命令创建所需要的域、控制器,然后在管理控制台创建、配置实例和集群。

注意:

5 / 19

BES Software and Service Corporation

1.操作系统必须具备JDK1.5或更高的Java环境,此外需要在PATH环境变量中引入java目录。

2.同一个域里面的主机的主机名配置最好包含全部域里面主机的配置,在unix的/etc/hosts,windows的C:WINDOWSsystem32driversetchosts文件里面添加上其他主机的域名(主机名)、IP地址配置。

比如,需要在主机136.192.24.162,136.192.24.201上部署相同功能的应用,可以将这2台主机安装成一个管理域。这时候需要调整2台主机/etc/hosts文件如下:

136.192.24.162

136.192.24.201

安装完成后,默认情况下可以通过localhost:1900来登录(登录用户名/密码:admin/admin)管理控制台,对所创建的域进行管理和配置。

详细信息可以参考《BES Installation Guide》。

注:在AIX平台上安装BES时,有时候会因为IBM JDK里面的jre/lib/security下相关配置文件是链接文件,其指向的目标文件不存在,而导致安装失败。 推荐下载的IBM JDK是直接解开就可用的,而不是使用smit安装的JDK。

jstest2

rx8640

6. 添加补丁

根据产品运行过程中出现的功能和性能相关问题,BES中间件会及时提供相应的补丁来解决使用过程中遇到的各种可能问题。 BES8.x的补丁为非累积补丁,一般情况下需要将最新的我们推荐的补丁列表包含的补丁都添加上。

添加补丁的方法如下:

1) 转到$BES_HOM/bin目录下,执行./patch –jar

比如:patch -jar c:

7. 产品激活

BES在完成安装后,自带试用license,72小时停止一次系统,180天失效,可以测试和学习使用。对于生产环境而言,需要使用所购买序列号来激活产品,激活后的产品具有无限期使用、不会自动重启、无连接和用户数限制。

BES产品激活步骤如下:

1) 转到$BES_HOM/bin目录下。使用./lmadm gen-regcode, 按照提示,将生成的注册码文件和从销售拿到的序列号发给我们。

2) 我们会按照提供的(序列号、注册码文件)生成激活文件,发送给您。

3) 使用./lmadm import-lic –sourcepath= 将激活文件导入。

4) 导入激活文件成功后,可以通过 ./lmadm view-lic查看license情况。

6 / 19

BES Software and Service Corporation

注:前期版本的BES使用的注册命令是registerationtool, 而不是lmadm

8. 公共配置文件、基础库部署

BES的classloader提供了丰富的类加载办法,可以将不同位置下的类进行加载。 对于在一台主机上所有的实例都需要使用到的配置文件和公共使用的基础库,可以放到BES的lib子目录(比如/home/bes/BES/lib)下,这些类库会被自动加载。

对于放到BES的lib目录下的配置文件,因为目前的BSS应用使用InputStream input =

temResourceAsStream(filePath);这样的接口来加载配置文件,这种方式下需要调整BES实例启动的classpath。因此需要修改$BES_HOME/config/如下:

……

prefix="" excludes="" includes=""/>

9. 数据源管理

在BES上,如果要通过BES的连接池管理来访问数据库,需要配置合适的JNDI资源。这包括2个步骤:首先建立数据库连接池;然后使用该连接池创建部署到实例上的JDBC源(JNDI资源)。

9.1. 数据库连接池管理

通过下述接口可以管理BES的连接池。指定访问连接池的名称, 连接到的数据库IP地址,用户名,密码,数据库名称,驱动类型.等参数。

7 / 19

BES Software and Service Corporation

对于RAC方式访问oracle数据库,可以直接添加自定义的URL属性。

9.2. JDBC资源管理(JNDI)

通过下述接口可以对BES上的JDBC源(JNDI资源)进行管理。创建JNDI 时,可以同时指定连接池的名称,需要部署到集群、实例的名称. 如添加 数据源 “jdbc/oracle/sm” 将其部署到 SM集群下.

8 / 19

BES Software and Service Corporation

9.3. JNDI客户端配置

JNDI是J2EE规范中,应用用于查找资源(ejb home对象、Datasource、JCA、JMS资源等)和服务(Security、JTS资源)的重要接口。在BES里,jndi的提供了丰富的实现,这里我们仅对常用的spark方式使用jndi进行介绍。

9 / 19

BES Software and Service Corporation

Spark客户端配置属性名称

d

ime

合法值:true/false

指定客户端检查线程的时间间隔(单位:秒)

说明

指定客户端是否启用负载均衡

默认值

true

120秒

nts

指定客户端使用Spark协议通讯的服务器终端 空

指定客户端使用SparkTCP协议通讯的服务器nts

终端

指定客户端使用Spark协议通讯的服务器终端 空

BES提供3种Spark协议的负载均衡和故障转移算法:

会话轮询算法(session-round-robin)

请求轮询算法(request-round-robin)

权重算法(request-weight)

request-weight

对于如下图所示的运行ejb应用的实例相关端口的配置

其对应的客户端代码如下:

Properties props = new Properties();

("l", "tory");

(". ime","30000");

("","request-round-robin");

// SparkHTTP

(" ", "sparkHTTP://

10 / 19

BES Software and Service Corporation

192.168.0.1:18080,192.168.0.2:18080");

// 或者使用如下设置私有属性的形式

//(“nts”, "192.168.0.1:8080,

192.168.0.2:18080");

// SparkTCP

(" ", "sparkTCP://

192.168.0.1:1s3000,192.168.0.2:13000");

// 或者使用如下设置私有属性的形式

//(“nts”, "192.168.0.1:3000,

192.168.0.2:3000");

10. Web集群管理

BES内置了对web集群功能的支持。 同一个web集群里的所有实例(集群实例)均使用相同的配置参数,可以很简单地实现对多个实例的属性修改、应用部署。通过管理控制台可以很简单地对集群进行属性配置、部署应用和资源、添加/删除集群实例。

10.1. 创建集群

BES集群中可以发布应用程序,集群会将应用程序分发到集群下的所有实例下.

集群中可以指定数据源(JNDI).

10.2. 创建集群实例

11 / 19

BES Software and Service Corporation

实例分为独立实例,集群实例,apache服务。对于集群里面的集群实例,BES支持多种请求分发的算法,满足不同应用场景下所需要的负载均衡管理需求。

在这我们指定为集群实例,指定各个实例的负载均衡权重算发。所有管理都由集群来管理.包括应用程序部署,数据源.

10.3. 创建Apache服务

BES支持通过内嵌的apache来转发web请求。选择需要创建apache服务的节点,如下图示创建apache服务。

10.4. 配置apache服务

选择需要配置apache 的节点: 添加 apache服务 ,如图:

12 / 19

BES Software and Service Corporation

添加负载均衡配置和添加转换规则(按照不同的url上下文访问不同的集群),如图

10.5. 实例属性配置

在测试环境中,因为同一个实例上部署的应用较多,通常容易出现内存不够的情况。可以参考如下图的接口适当调整实例和集群实例的内存配置。

特别是如果在BES日志里面出现PermGen内存不够的时候,需要将java堆内存永久域的大小进行适当调整。

13 / 19

BES Software and Service Corporation

11. 应用部署

11.1. 集群部署

选择需要部署程序的集群,查看集群信息,展开应用管理和部署,点击常用应用,具体流程如下:

1) 登录BES控制台,域>>集群,选择需要部署应用的集群名称如图:

2) 点击常用应用,选择需要发布的应用。按如下的向导进行部署

14 / 19

BES Software and Service Corporation

3) 选择部署新应用

4) 按照不同的部署类型,选择部署方式和路径

然后按照向导提示继续部署应用。

15 / 19

BES Software and Service Corporation

11.2. 独立实例部署

选择需要部署程序的独立实例,查看独立实例信息,展开应用管理和部署,如下点击常用应用,

选择需要部署程序的实例如图:

如下图,在右侧部署应用向导里面,选择合适的应用类型。按照不同的部署类型(文件、目录部署)指定相应的部署路径。

选择应用类型

如果是从本机上传应用,选择“上传文件”,并指定本地文件路径

打包部署

目录形式部署,选择该选项,再”下一步”

然后按照向导提示进行应用部署。

注:如果选择以目录形式部署,需要确保部署目标实例、节点代理需要已经启动。

12. 常见问题处理

12.1. Web应用乱码常见解决办法

16 / 19

BES Software and Service Corporation

1) 如果是get方式出现的乱码,可能会与url的编码方式有关,这时可以通过如下图设置bes web容器的uriEncoding属性为合适的编码方式来解决。

2) 如果是jsp/servlet源程序里面保存的汉字与bes实例的编码方式不一致,源程序级别的乱码,需要在eclipse里面将jsp/servlet的源程序使用合适的编码方式来保存。有时候通过在web应用里面通过下述配置指定jsp编译的默认编码方式来保证编码的一致。

修改WEB-INF/里添加如下配置

Keep a copy of the generated servlet class' java code.

3) 对于通过<%@include file=""%>这种包含的子页面浏览出现乱码,这主要因为web容器在处理这种include方式包含的子页面时,按照规范include进来的页面不会自动继承主页面的charset设置,这时需要设置jsp的默认编码方式(规范servlet2.3/2.4对这种方式的解释不一样,因此会有些在老版本的tomcat上没有问题,而迁移到新版本会出现乱码)。

修改WEB-INF/里添加如下配置

17 / 19

BES Software and Service Corporation

xmlns:xsi="/2001/XMLSchema-instance"

xsi:schemaLocation="/xml/ns/j2ee

/xml/ns/j2ee/web-app_2_">

……

*.jsp

GBK

false

4) 如果在浏览器和web容器之间还有apache做转发,如果在返回的http响应头里面如果没有charset设置时,apache默认会添加一个类AddDefaultCharset ISO-8859-1这样的指令,来自动添加响应头。这种情况下,需要修改apache的或对应的编码配置文件,注释掉前述指令。

5) 如果应用程序在浏览器端执行的ajax代码会自动解释服务器返回的xml,但应用返回的xml没有指定charset,有时候浏览器端的显示会出现乱码,这时候通常需要调整应用代码,在返回的xml里面指定xml的字符编码方式。这种问题通常出现在浏览器中的一些小widgets出现乱码的情况。

6) 对于post方式出现的乱码问题,需要在jsp页面里设置正确的pageEncoding方式,这种乱码也可以参考处理办法3来解决。当然,有些应用也可以使用oder提供的方法来主动进行编码解码操作。常见的代码如下:

<%@ page language="java" import=".*" pageEncoding="gb2312"%>

<%@ page import=".*" %>

String tempVal = (ameter("param"));

n(new String(es("ISO-8859-1"), "gb2312"));

12.2. WAS上EJB迁移

因为Ejb应用使用ibm的开发工具开发,IBM的ejb使用如下方式声明其jndi名字(),并且在程序里写定了使用声明的jndi名字来调用ejb。

Ejb注册jndi名字的不一致,这需要对针对WAs开发的ejb的部署描述符做适当的调整,将相应的ejb描述信息添加到BES的部署描述符文件里面,示例的如附件所示。

比如,如果里面有如下配置:

jndiName="ejb/bss/crm/custmanager/newcustinfo/ejb/custTreeManagerEJBHome">

对应里面的ejb定义如下:

18 / 19

BES Software and Service Corporation

custTreeManagerEJB

eeManagerEJBHome

eeManagerEJB

eeManagerEJBLocalHome

eeManagerEJBLocal

eeManagerEJBBean

Stateless

Container

此时需要在添加如下的描述:

custTreeManagerEJB

ejb/bss/crm/custmanager/newcustinfo/ejb/custTreeManagerEJBHome

true

因此,对于这样的ear包,需要作如下的调整:

1) 检查,查看该ear包里面包含了哪些ejb

module。

2) 对于里面包含的每个ejb module。均要执行上述的操作,生成部署描述符。

3) 将生成的描述符添加到相应的ejb模块的META-INF目录下,重新将ejb打包。

12.3. WEB应用(war)部署不成功

常见原因及对策

1. 从2.3迁移到高版本,如果描述符中定义的2.4的标准,但是在标签中有 标签, 导致BES校验是失败。 这种情况下删除掉这些标签即可。

2. 如果web应用里面包含了web service定义、或者jca adapter相关的定义,如果使用目录形式部署失败。 这种情况下,需要使用war包形式部署。

3. 如果因为初始化相关的servlet失败而导致部署不成功,需要检查实例的日志(/logs/及/work目录下相关文件),找出初始化失败的原因。

19 / 19


本文标签: 部署 实例 应用 需要 集群