本文以一个例子说明如何在win2000平台上实现WebSphere4.0的多节点安装和"克隆"的配置(在UNIX上的思路是一样的,具体细节可能不同)。这种安装和配置在实际生产环境中有广泛的应用,通过这个实验,我们可以对WebSphere、Web Server及数据库服务器之间的关系以及"克隆"有更深的理解。
WebSphere的最简单的安装是把Web服务器、应用服务器、数据库服务器安装在同一台机器上,这种安装的配置是最简单的。但在实际生产环境中,出于对性能和安全的考虑,这种安装并不多见。
WebSphere的设计,使它可以灵活的把不同的组件(Web服务器、应用服务器、数据库服务器)安装到不同的机器上。根据客户的需要,可以选择不同的安装拓扑。
实现最佳性能和最安全的安装,应该是管理数据库和应用服务器分离,有多台应用服务器来分担风险和性能。下图是一个常见的例子:
![](http://www-900.ibm.com/websphere/library/techarticles/wuxiaochao/images/1.gif)
需要说明的是:Web服务器需要装应用服务器插件,通过插件文件的规则(plugin-cfg.xml)来转发请求,在WebSphere 4.0中,Web服务器通过http(https)协议与应用服务器相连。应用服务器通过DB2客户端与数据库相连。
WebSphere可以通过"克隆"来管理工作负载。对于大型的应用,可能即使一台很高档的服务器都无法满足需要,也可能在一台机器中只运行一个应用(JVM)无法充分的利用性能。通过对应用进行"克隆",可以解决上面的问题。
每一个应用可以看成是一个Java虚拟机,每增加一个克隆可以看作增加一个Java虚拟机。克隆可以分为垂直克隆和水平克隆。
垂直克隆是指在一台物理的机器上有多个应用的副本,这种克隆可以更好的利用机器的资源,在机器的性能比较高的情况下效果比较明显。
![](http://www-900.ibm.com/websphere/library/techarticles/wuxiaochao/images/2.gif)
水平克隆是指在多台不同的机器上有多个应用的副本,这种克隆可以分担负载,某些机器的故障不会影响整体的应用。
![](http://www-900.ibm.com/websphere/library/techarticles/wuxiaochao/images/3.gif)
通过这些克隆,WebSphere可以运行各种大型,甚至超大型的应用。
下图为本例的拓扑结构,在4台机器上分布的软件如图所示。WAS与DB2通过DB2Client相连,IBM Http Server通过WAS PlugIn与WAS相连。
首先,在各个机器上安装相应的软件,使它们能正常的处理请求。
![](http://www-900.ibm.com/websphere/library/techarticles/wuxiaochao/images/4.gif)
![](http://www-900.ibm.com/websphere/library/techarticles/wuxiaochao/images/5.gif)
安装DB2数据库服务器,作为管理数据库。WebSphere需要把管理信息存放到关系型数据库中,在本例中我们使用的是DB2数据库,多个应用服务器的管理信息都放在同一个数据库中。
安装前工作
一、建立本地用户db2admin(建议),属于Administrators组。
二、使用本地安全策略工具,授予db2admin以下权限:
Act as part of the Operating System Log on as a Service Create a token object Increase quotas Replace a process level token
三、使用netstat -an命令,检查以下端口是否被占用,如果被占用,证明以前版本db2没有被正确删除。
- 523 (DB2 Administration Server) - 50000 (DB2 instance connection port) - 50001 (DB2 instance interrupt port) - 50002 (DB2 Control Server)
安装DB2服务器
一、 以db2admin登陆。
二、 启动DB2安装程序。
三、 选择安装DB2 Enterprise Edition。
![](http://www-900.ibm.com/websphere/library/techarticles/wuxiaochao/images/6.gif)
四、 选择典型安装。
![](http://www-900.ibm.com/websphere/library/techarticles/wuxiaochao/images/7.gif)
五、 选择安装目录。
六、 输入数据库管理员用户及密码,与本地用户一致。
![](http://www-900.ibm.com/websphere/library/techarticles/wuxiaochao/images/8.gif)
七、 开始安装文件,系统提示是否安装OLAP Starter Kit,选择不安装。
![](http://www-900.ibm.com/websphere/library/techarticles/wuxiaochao/images/9.gif)
八、 完成安装,重起机器,以数据库管理员登录(db2admin)。
验证DB2服务器安装
一、 运行db2cmd。
二、 输入db2level命令,显示当前数据库版本。
三、 确认安装数据库服务器不低于以下版本:"DB2 v7.1.0.43"。
四、 编辑系统services文件(位于C:/WINNT/system32/drivers/etc/目录下),检查是否有以下两行:
db2cdb2 50000/tcp #Connection port for DB2 instance db2 db2idb2 50001/tcp #Interrupt port for DB2 instance db2
五、 运行db2cmd。
六、 输入db2 get dbm cfg |more命令,显示系统db2参数,确认有以下显示
TCP/IP Service name (SVCENAME)=db2cdb2
配置DB2服务器
一、 为节省系统内存,可以改变以下服务的启动方式为手动方式:
DB2 Security Server Warehouse Logger Warehouse Server
二、停止"DB2 JDBC Applet Server",可以使用命令net stop "DB2 JDBC Applet Server"。
三、 行命令:<db2_install_path>/java12/usejdbc2.bat,升级jdbc版本到JDBC2.0。
四、 启动"DB2 JDBC Applet Server",可以使用命令net start "DB2 JDBC Applet Server"。
五、 检查<db2_install_path>/java12/inuse文件,确认使用jdbc2.0。
六、 运行db2cmd。
七、 运行db2set DB2COMM,显示当前连接。
八、 运行db2set DB2COMM=TCPIP,更新。
建立WAS管理数据库
一、运行db2cmd。
二、 运行以下命令,建立数据库并改变heap size。
db2 create db was1 db2 update db cfg for was1 using applheapsz 256
三、 运行以下命令,验证数据库已经正确建立。
db2 list db directory 显示如下: Database 1 entry: Database alias =WAS1 Database name =WAS1 Database drive =D:/DB2 Database release level =9.00 Comment = Directory entry type =Indirect Catalog node number =0
四、 运行以下命令,catalog数据库。<node_name>可以任意选择,但必须前后一致。<service_name>必须和services文件中一致(db2cdb2)。
db2 catalog tcpip node <node_name>remote <local_hostname> server <service_name> db2 catalog db was1 as was at node <node_name> (对was1进行编目,从而使我们可以通过TCP/IP协议进行数据库访问)
五、运行以下命令,验证catalog已经正确建立。
db2 list db directory 显示如下: Database 2 entry: Database alias =WAS Database name =WAS1 Node name =<node_name> Database release level =9.00 Comment = Directory entry type =Remote Catalog node number =-1
六、使用数据库管理员用户和密码,验证能正确连接数据库。
db2 connect to was user <db2admin_user>using <db2admin_passwd> db2 disconnect current
七、 关闭db2cmd窗口。
八、 建立本地用户,作为访问用户(was)。
九、 运行db2cmd。
十、 运行以下命令,赋予访问用户(was)访问权限。
db2 connect to was user <db2admin_user>using <db2admin_passwd> db2 grant connect,createtab on database to user <was_user> db2 disconnect was
十一、验证访问用户可以正常访问:
db2 connect to was user <was_user>using <was_password>
十二、断开连接:
db2 disconnect current
十三、关闭db2cmd窗口。
该步骤分别在machine2、3上进行。使machine2、3可以通过DB2 Client连接merchine4上的数据库,为安装WAS做准备。
安装前工作
一、建立本地用户db2admin(建议),属于Administrators组。
二、使用本地安全策略工具,授予db2admin以下权限:
Act as part of the Operating System Log on as a Service Create a token object Increase quotas Replace a process level token
三、使用netstat -an命令,检查以下端口是否被占用,如果被占用,证明以前版本db2没有被正确删除。
- 50000 (DB2 instance connection port)
安装DB2 Client
一、 db2admin登陆。
二、 启动DB2安装程序。
三、 选择安装Administration Client。
![](http://www-900.ibm.com/websphere/library/techarticles/wuxiaochao/images/10.gif)
四、 选择Typical方式,进行典型安装。
五、 选择安装目录。
六、 取消选择Configure NetBIOS for connection to DB2 server。
![](http://www-900.ibm.com/websphere/library/techarticles/wuxiaochao/images/a.gif)
七、 输入数据库管理员用户及密码,与本地用户一致。
八、 开始安装文件。
九、 安装完成。
验证DB2 Client安装
一、 运行db2cmd。
二、 输入db2level命令,显示当前数据库版本。
三、 确认安装数据库服务器不低于以下版本:"DB2 v7.1.0.43"。
配置DB2 Client
一、 节省系统内存,可以改变以下服务的启动方式为手动方式:
DB2 Security Server Warehouse Logger Warehouse Server
二、停止"DB2 JDBC Applet Server",可以使用命令net stop "DB2 JDBC Applet Server"。
三、命令:<db2_install_path>/java12/usejdbc2.bat,改变jdbc版本。
四、启动"DB2 JDBC Applet Server",可以使用命令net start "DB2 JDBC Applet Server"。
五、检查<db2_install_path>/java12/inuse文件,确认使用jdbc2.0。
建立到远程数据库访问
一、 编辑系统services文件,添加以下一行。
db2cdb2 50000/tcp #Connection port of remote DB2 instance db2
二、运行db2cmd命令。
三、运行以下命令,catalog管理数据库
db2 catalog tcpip node <node_name> remote <remote_hostname> server <service_name> db2 catalog db was1 as was at node <node_name> (将machine4上的DB-WAS编目到本地-machine2,machine3).
四、运行以下命令,验证可以正确连接到管理数据库
db2 connect to was user <db2admin_user>using <db2admin_passwd> db2 connect to was user <was_user>using <was_password> db2 disconnect was
五、关闭db2cmd窗口
该步骤分别在machine2、3上进行。需要注意的是并不安装默认的IBM Http Server,两台机器的WAS版本必须一致,否则无法进行clone。
安装前工作
一、建立本地用户wasadmin(建议),属于Administrators组。
二、使用本地安全策略工具,授予wasadmin以下权限:
-Act as part of the Operating System -Log on as a Service
三、使用netstat -an命令,确保以下端口没有被占用。
- 900 (bootstrap port) - 9000 (Location Service Daemon) - 9080 (default application server)
安装WAS
一、 确保以系统管理员身份登录
二、 运行IBM WebSphere Application Server V4.0, Advanced Edition安装程序
三、 选择语言
四、 选择Custom Installation方式安装
![](http://www-900.ibm.com/websphere/library/techarticles/wuxiaochao/images/11.gif)
五、 选择全部组件,除了IBM HTTP Server。
![](http://www-900.ibm.com/websphere/library/techarticles/wuxiaochao/images/12.gif)
六、 选择插件
![](http://www-900.ibm.com/websphere/library/techarticles/wuxiaochao/images/13.gif)
七、 输入WAS管理员用户及密码
![](http://www-900.ibm.com/websphere/library/techarticles/wuxiaochao/images/14.gif)
八、 选择安装目录
九、 输入管理数据库信息如图(默认)
![](http://www-900.ibm.com/websphere/library/techarticles/wuxiaochao/images/15.gif)
十、 接受其他默认选择,完成拷贝文件
十一、选择I will restart my computer later,安装结束后并不马上重起机器。
十二、把文件 /bin/createwasdb.scr命名为<WAS_HOME>/bin/createwasdb.bak。(从而避免重起后,重建WebSphere的管理数据库)
十三、检查<WAS_HOME>/logs/wssetup.log文件,确认没有安装错误。
十四、重起机器,以管理员登录。
验证WAS安装
一、 检查<WAS_HOME>/logs/wssetup.log文件,确认没有错误
二、确认存在IBM WS AdminServer 4.0windows服务
三、检查<WAS_HOME>/bin/admin.config文件,确认管理数据库信息正确,db2 Client设置正确。
四、 启动WAS4.0服务器,可以使用以下命令或其他方式<WAS_HOME>/bin/adminserver.bat
五、 启动管理控制台:<WAS_HOME>/bin/adminclient.bat
六、 启动默认应用服务器
![](http://www-900.ibm.com/websphere/library/techarticles/wuxiaochao/images/16.gif)
七、 检查默认应用服务器正确启动
![](http://www-900.ibm.com/websphere/library/techarticles/wuxiaochao/images/17.gif)
在machine2、3上完成以上步骤后,应该可以看到两个节点,因为它们公用一个管理数据库。
![](http://www-900.ibm.com/websphere/library/techarticles/wuxiaochao/images/18.gif)
八、验证:
打开IE,输入如下的URL: http://localhost:9080/servlet/snoop ,显示如下
![](http://www-900.ibm.com/websphere/library/techarticles/wuxiaochao/images/19.gif)
因为在WebSphere4.0中内置了简化的HTTP Server(为了直接与WebServer之间通过HTTP/HTTPS进行通信)。所以,无需安装WebServer,就可以直接与WebSphere4.0进行交互(在测试环境下)
安装前工作
一、建立本地用户wasadmin(建议),属于Administrators组。
二、使用本地安全策略工具,授予wasadmin以下权限:
-Act as part of the Operating System -Log on as a Service
三、使用netstat -an命令,确保以下端口没有被占用。
- 80 (standard HTTP port) - 443 (standard HTTPS port) - 8008 (IBM HTTP Server Administration port)
安装Http Server
一、 保以系统管理员身份登录
二、 运行IBM HTTP Server安装程序
三、 选择语言
四、 接受协议
五、 选择安装目录
六、 选择Typical安装方式
![](http://www-900.ibm.com/websphere/library/techarticles/wuxiaochao/images/20.gif)
七、 输入管理员信息(默认)
![](http://www-900.ibm.com/websphere/library/techarticles/wuxiaochao/images/21.gif)
八、 接受其他默认选择,完成安装。
九、 重起机器,以管理员角色登录
配置Http Server
如果不需要增加其他管理员,可以省略这一步。
验证Http Server安装
一、启动IBM HTTP Server
D:/>net start "IBM HTTP Server" D:/>net start "IBM HTTP Administration"
二、输入http请求,验证IBM HTTP Server正常启动
![](http://www-900.ibm.com/websphere/library/techarticles/wuxiaochao/images/22.gif)
在machine1上安装WAS 4.0插件,使http server能够通过WAS 4.0插件与WAS4.0连接。
安装前工作
一、停止http server:net stop "IBM HTTP Server"
安装WAS 4.0插件
一、 确认以本地管理员身份登录
二、 行IBM WebSphere Application Server V4.0, Advanced Edition安装程序
三、 选择语言
四、 选择Custom Installation方式安装
![](http://www-900.ibm.com/websphere/library/techarticles/wuxiaochao/images/23.gif)
五、 只选择Web server plug-in组件
六、 选择IBM HTTP Server选项
![](http://www-900.ibm.com/websphere/library/techarticles/wuxiaochao/images/24.gif)
七、 输入管理员id和密码(wasadmin)
八、 选择安装目录
九、 接受其他默认选择,完成安装
十、 重起机器,以管理员身份登录
在machine2或者3上进行,在WAS4.0管理控制台上增加虚拟主机名,生成插件配置文件,把插件配置文件拷贝到http server上Plug_In的目录下,重起http server。
添加虚拟主机
一、如果WAS4.0服务器没有启动,启动它。可以使用以下命令或其他方式<WAS_HOME>/bin/adminserver.bat
二、启动管理控制台:<WAS_HOME>/bin/adminclient.bat
三、在管理控制台上,增加machine1、machine2、machine3的虚拟主机名。按以下方式进行:
<Web server hostname>:<port#> <Web server hostname.domain.com>:<port#> <Web server IP address>:<port#>
完成后的虚拟主机列表大致如下:
![](http://www-900.ibm.com/websphere/library/techarticles/wuxiaochao/images/25.gif)
四、 确认更改,重起两个节点的相关应用服务器。
生成、拷贝插件配置文件
一、分别选择两个节点,右键选择"Regenerate the Web server plug-in settings",重新生成<WAS_HOME>/config/plugin-cfg.xml文件
二、把<WAS_HOME>/config/plugin-cfg.xml文件拷贝到machine1对应目录下。因为虚拟主机列表在管理数据库中一致,所以machine2和machine3生成的plugin-cfg.xml文件一致。
三、重新启动http server。可以用net start "IBM HTTP Server"。
五、 发起http请求:http://machine1/servlet/snoop,检查响应页面。
![](http://www-900.ibm.com/websphere/library/techarticles/wuxiaochao/images/26.gif)
使用sampleApp.ear文件,部署应用服务器。根据这个应用服务器,生成服务器组,然后生成"克隆",垂直和水平的分布到machine2和machine3上。
删除默认应用服务器
一、启动管理控制台:adminclient.bat
二、停止全部应用服务器
三、删除machine2、machine3上的企业应用程序Sample Application
![](http://www-900.ibm.com/websphere/library/techarticles/wuxiaochao/images/b.gif)
四、删除machine2、machine3上的应用服务器
添加应用服务器
一、 使用向导,在machin2或者machine3上建立应用服务器app1
![](http://www-900.ibm.com/websphere/library/techarticles/wuxiaochao/images/27.gif)
二、使用菜单:控制台-〉向导-〉安装企业应用程序。在应用服务器app1上安装应用程序。
![](http://www-900.ibm.com/websphere/library/techarticles/wuxiaochao/images/28.gif)
三、在"安装企业应用程序"向导中,选择ear文件sampleApp.ear,接受其他默认选项,完成安装。
![](http://www-900.ibm.com/websphere/library/techarticles/wuxiaochao/images/29.gif)
生成服务器组
一、 选择已经创建的应用服务器app1,右键选择"创建服务器组…",出现向导
![](http://www-900.ibm.com/websphere/library/techarticles/wuxiaochao/images/30.gif)
二、在向导中,输入服务器组名ServerGroup1,接受其他默认选项,建立服务器组。
![](http://www-900.ibm.com/websphere/library/techarticles/wuxiaochao/images/31.gif)
生成"克隆"
一、 管理控制台中,选择ServerGroup1,右键选择"新建…"-〉"克隆…",出现向导。
![](http://www-900.ibm.com/websphere/library/techarticles/wuxiaochao/images/32.gif)
二、在向导中选择需要部署的节点,输入"克隆"的名称,接受其他默认选项,完成"克隆"。在本例中应用服务器app1部署在machine2,clone1部署在machine2,clone2部署在machine3,clone3部署在machine3。在单台的节点上实现垂直扩展,在不同的节点上实现水平扩展。
安装应用文件
一、 在实现了"克隆"而并没有物理部署文件的机器(machine3)上,拷贝machine2上<WAS_HOME>/installedApps/下的已经部署文件目录,复制到machine3上。
启动服务器组
一、在管理控制台选择服务器组ServerGroup1,选择"高级"页,在"工作负荷管理选择策略"中选择"循环",设置访问机制。在本例中访问被平均的分布到四个应用服务器中。
二、在管理控制台选择服务器组ServerGroup1,右键选择"启动",四个应用服务器都被启动。
![](http://www-900.ibm.com/websphere/library/techarticles/wuxiaochao/images/33.gif)
重新生成插件配置文件
一、在管理控制台分别选择两个节点,右键选择"Regenerate the Web server plug-in settings",重新生成<WAS_HOME>/config/plugin-cfg.xml文件。
二、把<WAS_HOME>/config/plugin-cfg.xml文件拷贝到machine1对应目录下。
三、重新启动http server。可以用net start "IBM HTTP Server"。
四、发起http请求:http://machine1/servlet/snoop,检查响应页面。
到此为止,整个环境就建立起来了,下面是一些需要注意的事项:
一、应用服务器需要保证版本一致,否则无法进行"克隆"。
二、 注意插件文件的更新。
三、 "克隆"过程中,需要把部署的应用程序文件拷贝到没部署的机器上。
吴晓超,长期从事Java及中间件产品的开发和实施工作。现为广州天懋数码技术部副经理,曾工作于工商银行广东省技术保障处。清华大学工程物理系毕业,工科学士。联系邮件:247@163.net