级别: 初级 Tony Lau (tktlau at ca.ibm.com), DB2 性能工程师, IBM
2005 年 2 月 01 日 如果您要在集群环境中安装 DB2 基准,那么您可以从这篇文章中获得所需的帮助。本文可以帮助您确定如何配置 IBM® WebSphere® Application Server 和 IBM DB2® Universal Database™,以便安装一个 SPECjAppServer2004 基准,该基准是一个可伸缩的集群级(cluster-scalable)应用程序。标准性能评估公司(Standard Performance Evaluation Corporation,SPEC)提供了关于如何安装 SPECjAppServer2004 应用程序的通用用户指南,但是在文档中没有包括特定于供应商的信息。本文将填补这个空缺,提供详细的说明和示例脚本,帮助您把 SPECjAppServer2004 应用程序的安装变成一项简单任务。
简介
作为 J2EE™ 性能领先者,WebSphere Application Server 和 DB2 Universal Database(UDB)于 2004 年 5 月公布了世界上第一个符合 SPECjAppServer2004 规范的基准结果。该结果是一个由 12 个节点组成的 WebSphere 集群,它以 DB2 UDB 作为后端数据库。这个基准结果已经发布在 SPEC 网站上。同年 7 月份,就有后续的基准结果发布出来。该结果是一个基于 Intel 的 Linux™ 配置。IBM 已经向客户承诺:可以从 J2EE 计算中获得高性能和高投资回报。
正如 SPEC 网站上所说的,SPEC 是一家非盈利性公司,旨在建立、维护和签署一组标准化的、可应用于最新一代高性能计算机的相关基准。SPEC 一边开发基准套件,一边评审和公布由 IBM 成员组织以及其他接受基准许可者提交的结果。由 SPEC 开发的基准套件被很多供应商和顾问广泛采纳,用作检验他们解决方案的平台和展示产品的工具。
在我关于安装 SPEC 应用程序的最新文章中,我介绍了一种通过编写脚本来自动安装 SPECjAppServer2004 单节点 J2EE 沙箱的方法。把以前的成功作为基础,我重新编写了所有的示例脚本,以便帮助您安装 SPECjAppServer2004 集群。在本文中,您将亲历在 IBM 平台上安装一个简单的 SPECjAppServer2004 集群环境所需的全部步骤,从测试数据装载数据库到对网站进行压力测试。您可以先从这篇文章中吸收一些必要的信息,打好坚实的基础,以便很好地理解其他一些问题,将目光转向更高级的 J2EE 集群拓扑和性能调优概念。
目标
本文将介绍以下几大目标:
-
提供特定于 IBM 产品的 SPECjAppServer2004 集群安装说明。SPEC 提供了关于如何安装 SPECjAppServer2004 应用程序的一个通用用户指南 [1],但是在文档中没有包括特定于供应商的信息。我以前的文章 "安装 SPECjAppServer2004 应用程序" 中包含关于在单节点 WebSphere 服务器上安装这种应用程序的说明。在本文中,我们将学习如何将这种应用程序部署到一个简单的 WebSphere 集群上。
-
简化配置和提供效率。基准包(benchmark kit)中包含上千个文件。要建立基准包,需要在大约 50 个不同的地方编辑很多的文件。而在集群环境下,这项任务就更加复杂。在企业计算领域,一个精心编写的脚本可以节省数天的工作量。通过使用脚本,可以使安装过程自动化,并简化安装任务。本文将提供示例脚本供您参考。通常,编写脚本的方法可以将安装时间从一天缩短为一个小时。
-
为那些对以 DB2 为后端数据库的 WebSphere 集群感到陌生的人提供常规说明。IBM 有关于 WebSphere 和 DB2 UDB 管理的详细说明文档,从安装测试系统,到构建具有高可靠性支持的大型集群,都有具体的说明。本文的一个目标是为您提供关于如何在尽可能简单的集群配置中安装基准的特定说明。如果您有兴趣将目光转向更高级的集群拓扑和性能工作上,那么可以将本文的内容作为基础。
先决条件
硬件
出于学习的目的,任何型号的 Intel Windows® 台式电脑都可以使用。下面是我在开发本文的内容时用到的硬件:
- IBM eServer™ x330
- 2 x 1.4 GHz CPUs
- 2 x SCSI disks
- 3 GB memory
软件
下面列出了我所使用的软件:
可伸缩的集群级应用程序形式的 SPECjAppServer2004
SPECjAppServer2004 可以为具有代表性的 J2EE 应用程序和组成应用程序环境的各个组成部分测试性能,这些组成部分包括:硬件、应用程序服务器软件、JVM 软件、数据库软件、JDBC 驱动程序和系统网络等。
该基准是一个应用程序,用于仿真一条汽车供应链中的工作流。该基准的吞吐量(以每秒钟的业务操作数量计)是由经销商应用程序和制造商应用程序的活动驱动的。而这两个应用程序的吞吐量则直接与所选的工作负载相关。SPECjAppServer2004 是一个可伸缩的集群级应用程序,它允许在一个由应用程序服务器组成的集群上运行工作负载。数据库的大小根据工作负载的大小而伸缩。
最新的拓扑结构
IBM 提交的结果演示了一个单独的 DB2 UDB 服务器,为由 12 台 WebSphere 机器组成的集群服务。该配置支持 785 的注入速率,相当于大约 10,000 个并发用户,每秒钟产生 1,300 多条业务事务。下面图 1 中的系统展示了这个基准的拓扑:
图 1. 最新的拓扑
学习环境
您的学习环境由前面最新配置中所示的每个单独组件组成。作为一个 "Hello World" SPECjAppServer2004 集群,所有部分都是单独的一台机器。建立了一个单节点的逻辑集群之后,如果要将这个集群向多台机器扩展,点几下鼠标就行了。
安装 IBM DB2 UDB
DB2 UDB 有一个非常易于使用的安装程序。在这里,请选择 Typical 安装选项。为了简单起见,可将产品安装到 C:\SQLLIB。如果使用一个响应文件,那么应确保键值设置如下。
清单 1. DB2 安装选项
FILE=C:\SQLLIB\
INSTALL_TYPE=TYPICAL
|
为了验证安装情况,可以打开一个 DB2 Command Window 并发出清单 2 中所示的命令。
清单 2. 验证 DB2 安装情况
C:\>db2level
DB21085I Instance "DB2" uses "32" bits and DB2 code release "SQL08020" with
level identifier "03010106".
Informational tokens are "DB2 v8.1.7.445", "s040812", "WR21342", and FixPak
"7".
Product is installed at "C:\SQLLIB".
C:\>db2stop
11/23/2004 23:46:24 0 0 SQL1064N DB2STOP processing was successful.
SQL1064N DB2STOP processing was successful.
C:\>db2start
11/23/2004 23:46:28 0 0 SQL1063N DB2START processing was successful.
SQL1063N DB2START processing was successful.
C:\>db2sampl
C:\>db2 list db directory
System Database Directory
Number of entries in the directory = 1
Database 1 entry:
Database alias = SAMPLE
Database name = SAMPLE
Database drive = C:\DB2
Database release level = a.00
Comment =
Directory entry type = Indirect
Catalog database partition number = 0
Alternate server hostname =
Alternate server port number =
C:\>
|
这样可以确保启动数据库管理器、停止数据库管理器和创建数据库这些基本功能都能正常工作。
安装 IBM WebSphere Application Server base
WebSphere Application Server 提供了一个简单的安装程序,可以在一个安装向导中安装应用程序服务器、HTTP 服务器和消息服务器。在安装过程中,选择 Custom 安装选项。如果您想使用本文中的示例安装脚本,那么应确保没有安装 WebSphere 应用程序示例。为了方便起见,可将应用程序服务器安装在 C:\was51\b0344.02. 中,将 HTTP 服务器安装在 C:\was51\b0344.02_http. 中,而将消息服务器安装在 C:\was51\b0344.02_mq. 中。如果您想使用一个响应文件,那么应确保像下面的清单 3 那样设置键值:
清单 3. WebSphere 安装目录
-P wasBean.installLocation="C:\was51\b0344.02"
-P ihsFeatureBean.installLocation="C:\was51\b0344.02_http"
-P mqSeriesServerBean.installLocation="C:\was51\b0344.02_mq"
-P samplesBean.active="false"
|
在进入下一步之前,先测试一下安装情况。为验证安装是否成功,可以打开一个命令窗口,并发出如下所示的命令。清单 4 展示了示例测试输出。
清单 4. 验证 WebSphere 安装情况
C:\was51\b0344.02\bin>startserver server1
ADMU0116I: Tool information is being logged in file
C:\was51\b0344.02\logs\server1\startServer.log
ADMU3100I: Reading configuration for server: server1
ADMU3200I: Server launched. Waiting for initialization status.
ADMU3000I: Server server1 open for e-business; process id is 2368
C:\was51\b0344.02\bin>ivt
IVTL0095I: defaulting to host pizza34 and port 9080
IVTL0010I: Connecting to the WebSphere Application Server pizza34 on port: 9080
IVTL0015I: WebSphere Application Server pizza34 is running on port: 9080
IVTL0050I: Servlet Engine Verification Status - Passed
IVTL0055I: JSP Verification Status - Passed
IVTL0060I: EJB Verification Status - Passed
IVTL0070I: IVT Verification Succeeded
IVTL0080I: Installation Verification is complete
C:\was51\b0344.02\bin>stopserver server1
ADMU0116I: Tool information is being logged in file
C:\was51\b0344.02\logs\server1\stopServer.log
ADMU3100I: Reading configuration for server: server1
ADMU3201I: Server stop request issued. Waiting for stop status.
ADMU4000I: Server server1 stop completed.
|
为验证 HTTP 安装情况,可以启动 HTTP 服务器服务,并导航到 http://<hostname>/ 测试页面。
清单 5. 验证 HTTP 服务器安装情况
C:\was51\b0344.02_http>apache -v
Server version: IBM_HTTP_SERVER/1.3.28 Apache/1.3.28 (Win32)
Server built: Oct 9 2003 16:16:55
C:\was51\b0344.02_http>net start "IBM HTTP Server 1.3.28
The IBM HTTP Server 1.3.28 service is starting.
The IBM HTTP Server 1.3.28 service was started successfully.
|
为验证 MQ 的基本功能,请发出下面清单 6 中所示的命令:
清单 6. 验证 WebSphere MQ 安装情况
C:\was51\b0344.02_mq\bin>mqver
Name: WebSphere MQ
Version: 530.4 CSD04
CMVC level: p530-04-030617
BuildType: IKAP - (Production)
C:\was51\b0344.02_mq\bin>crtmqm q1
WebSphere MQ queue manager created.
Creating or replacing default objects for q1.
Default objects statistics : 31 created. 0 replaced. 0 failed.
Completing setup.
Setup completed.
C:\was51\b0344.02_mq\bin>strmqm q1
WebSphere MQ queue manager 'q1' started.
C:\was51\b0344.02_mq\bin>endmqm -w q1
Waiting for queue manager 'q1' to end.
Waiting for queue manager 'q1' to end.
WebSphere MQ queue manager 'q1' ended.
C:\was51\b0344.02_mq\bin>dltmqm q1
WebSphere MQ queue manager 'q1' deleted.
|
这将确保所有组件都已成功安装。
安装 IBM WebSphere Network Deployment Manager
WebSphere Network Deployment Manager 还提供了一个直观的安装程序。在安装过程中,选择 Custom 安装选项。取消对 webservices 和 embedded messaging clients 的选定。将 Deployment Manager 安装到 C:\was51\b0344.02_nd. 中。如果您想使用一个响应文件,那么应确保像下面清单 7 那样设置键值:
清单 7. Deployment Manager 安装目录
-P wasBean.installLocation="C:\was51\b0344.02_nd"
-P webServicesBean.active="false"
-P mqFeatureBean.active="false"
|
在进入下一步之前,应先测试安装情况。为验证安装是否成功,可以打开一个命令窗口,并发出如清单 8 中所示的命令。在命令的后面可以看到示例测试输出。
清单 8. 验证 Deployment Manager 安装情况
C:\was51\b0344.02_nd\bin>startmanager
ADMU0116I: Tool information is being logged in file
C:\was51\b0344.02_nd\logs\dmgr\startServer.log
ADMU3100I: Reading configuration for server: dmgr
ADMU3200I: Server launched. Waiting for initialization status.
ADMU3000I: Server dmgr open for e-business; process id is 2416
C:\was51\b0344.02_nd\bin>ivt
IVTL0095I: defaulting to host pizza34 and port 9090
IVTL0010I: Connecting to the WebSphere Application Server pizza34 on port: 9090
IVTL0015I: WebSphere Application Server pizza34 is running on port: 9090
IVTL0070I: IVT Verification Succeeded
IVTL0080I: Installation Verification is complete
C:\was51\b0344.02_nd\bin>stopmanager
ADMU0116I: Tool information is being logged in file
C:\was51\b0344.02_nd\logs\dmgr\stopServer.log
ADMU3100I: Reading configuration for server: dmgr
ADMU3201I: Server stop request issued. Waiting for stop status.
ADMU4000I: Server dmgr stop completed.
C:\was51\b0344.02_nd\bin>
|
获得基于集群的 SPECjAppServer 代码
SPECjAppServer2004 result 网页[1] 提供了 SPECjAppServer2004 代码。请使用 IBM 于 2004 年 5 月提交的完全解密存档中的代码。将那两个 EAR 文件复制到 C:/was51/b0344.02_nd/installableapps 中。
清单 9. SPECjAppServer2004 代码
05/17/2004 06:48p 86,803 Emulator_V1.01_Cluster.ear
05/05/2004 10:00a 2,428,206 SPECj2004_v1.01.3_Cluster_WAS51.ear
|
SPECjAppServer EAR 文件是基准应用程序,可以通过网络将它从 Network Deployment Manager 部署到集群成员上。
安装 SPECjAppServer 基准包
SPECjAppServer CD (只需付一点儿象征性的费用,就可以从 SPEC [1] 获得)附带了一个 InstallShield 程序 setup.exe。如果该安装程序没有找到任何 JVM,则通过浏览找到 DB2 附带的 JVM,C:\SQLLIB\java\jdk\bin\java.exe。为简单起见,可将基准包安装在 C:\SPECjAppServer2004 目录下。在基准包内有用于装载数据库和驱动基准的基准工具。
安装 PERL
您需要使用 PERL 来简化安装过程。任何标准的 PERL 都可以为您所用。下面的列表展示了您要使用的 PERL 的版本[2]。
清单 10. PERL 版本
C:\SPECjAppServer2004\script>perl –v
This is perl, v5.8.0 built for MSWin32-x86-multi-thread
(with 1 registered patch, see perl -V for more detail)
Copyright 1987-2002, Larry Wall
Binary build 806 provided by ActiveState Corp. http://www.ActiveState.com
|
解压配置脚本
下载本文附带的 ZIP 文件,并将其中的内容解压到 C:\SPECjAppServer2004\script 中。该脚本的用户界面可向下兼容于旧的版本。在这个包中有 4 个用户文件。
- setenv.pl
- specjdbsetup.pl
- specjdrvsetup.pl
- specjwassetup.pl
setenv.pl 文件由用于安装的参数组成。specjdbsetup.pl 脚本用于创建 SPECjAppServer 数据库。specjwassetup.pl 脚本处理应用程序的所有部署任务。specjdrvsetup.pl 脚本负责 SPECjAppServer 基准驱动程序的安装。
提供配置参数
setenv.pl 文件带有一组默认参数。如果您完全按照前面几个小节中的说明做了,那么大部分默认值都是非常恰当的。
在第一个代码块的参数中,包含安装产品的目录信息。必要的时候可以定制这些参数。
清单 11. 服务器安装目录
#---------------------------------------------
# Server install directories
#---------------------------------------------
$SpecjKitHome='c:/SPECjAppServer2004';
$JavaHome='c:/SQLLIB/java/jdk';
$WasHome='c:/was51/b0344.02';
$NdHome='c:/was51/b0344.02_nd';
$WasNode='pizza34'; #Hostname
$Db2Home='c:/SQLLIB';
$WinHome='c:/WINNT';
$Login='spec';
$Password='spec';
|
第二个代码块的参数描述了数据的位置。必要时可以定制这些参数。
清单 12. 数据库和日志的目录
#---------------------------------------------
# Database and log directories
#---------------------------------------------
$SpecjDbDir='c:\specdb';
$SpecjLogDir='c:\speclog';
$SpecjPipe='c:/temp';
|
最后一个代码块中的参数给出了 SPECjAppServer 代码和仿真器的位置。
清单 13. EAR 安装参数
#---------------------------------------------
# EAR install parameters
#---------------------------------------------
$SpecjEar='c:/was51/b0344.02_nd/installableapps/SPECj2004_v1.01.3_Cluster_WAS51.ear';
$EmulatorEar='c:/was51/b0344.02_nd/installableapps/Emulator_V1.01_Cluster.ear';
$SpecjEarDeployed='c:/was51/b0344.02_nd/installedapps/SPECj2004.ear';
$EmulatorEarDeployed='c:/was51/b0344.02_nd/installedapps/SPECj2004_Emulator.ear';
|
在 DB2 上创建 SPECjAppServer 数据库
要创建 SPECjAppServer 数据库,只需在一个 DB2 命令窗口中运行 perl specjdbsetup.pl 即可。这个脚本不仅将创建数据库,还将转储(dump out)用来判定问题的信息。如果合适的话,它还可以将输出发送到一个文件中,以便判定问题。
该脚本将使用 setenv.pl 文件中指定的登录名和密码创建一个用户。应确保登录名和密码是本地安全策略(Local Security Policy)所允许的。
清单 14. 系统中的用户
Administrator db2admin dssadmin
Guest spec TsInternetUser
The command completed successfully.
|
SPECjAppServer 数据库由 20 个用户表组成。创建好数据库之后,该脚本将列出了数据库中所有的表。
清单 15. 数据库中所有的表
list tables
Table/View Schema
------------------------------- ---------------
C_CUSTOMER SPEC
C_CUSTOMERINVENTORY SPEC
C_PARTS SPEC
C_SITE SPEC
C_SUPPLIER SPEC
M_BOM SPEC
M_INVENTORY SPEC
M_LARGEORDER SPEC
M_PARTS SPEC
M_WORKORDER SPEC
O_ITEM SPEC
O_ORDERLINE SPEC
O_ORDERS SPEC
S_COMPONENT SPEC
S_PURCHASE_ORDER SPEC
S_PURCHASE_ORDERLINE SPEC
S_SITE SPEC
S_SUPP_COMPONENT SPEC
S_SUPPLIER SPEC
U_SEQUENCES SPEC
20 record(s) selected.
|
然后,该脚本将配置数据库装载器,并将数据装载到数据库中。做好这些准备后,该脚本将建立一个到数据库的连接, 并发出一个对客户表(C_CUSTOMER)的查询,以检查情况是否正常。
清单 16. 对客户表的查询
select count(*) from C_CUSTOMER
1
-----------
15000
1 record(s) selected.
|
您应该仔细研究这个脚本,以便了解其内幕。
将 SPECjAppServer 应用程序部署到 WebSphere 集群上
为了部署 SPECjAppServer 应用程序,只需从 DB2 命令窗口发出 perl specjwassetup.pl 命令即可。这里应该将输出导出到一个文件中,以便作进一步的研究。
首先,该脚本将确保刚才创建的 specdelivery、specemulator 和 specdb 这三个别名都是可访问的。别名 specdelivery 代表 WebSphere 系统的 IP 地址。别名 specemulator 代表 SPECjAppServer 基准驱动程序或仿真器的地址。别名 specdb 代表 DB2 UDB 服务器的地址。在我们的例子中,这些地址对于我们来说都是本地的,都对应 127.0.0.1 地址。
清单 17. 别名 specdelivery
Pinging specdelivery [127.0.0.1] with 32 bytes of data:
Reply from 127.0.0.1: bytes=32 time<10ms TTL=128
Reply from 127.0.0.1: bytes=32 time<10ms TTL=128
Reply from 127.0.0.1: bytes=32 time<10ms TTL=128
Reply from 127.0.0.1: bytes=32 time<10ms TTL=128
Ping statistics for 127.0.0.1:
Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
Minimum = 0ms, Maximum = 0ms, Average = 0ms
|
经过简单的 ping 测试之后,该脚本会将 WebSphere Application Server 基址联合为由 WebSphere Application Server Network Depolyment Manager cell 管理的一个节点。
清单 18. 节点联合
ADMU0300I: Congratulations! Your node pizza34 has been successfully
incorporated into the pizza34Network cell.
ADMU9990I:
ADMU0306I: Be aware:
ADMU0302I: Any cell-level documents from the standalone pizza34 configuration
have not been migrated to the new cell.
ADMU0307I: You might want to:
ADMU0303I: Update the configuration on the pizza34Network Deployment Manager
with values from the old cell-level documents.
ADMU9990I:
ADMU0306I: Be aware:
ADMU0304I: Because -includeapps was not specified, applications installed on
the standalone node were not installed on the new cell.
ADMU0307I: You might want to:
ADMU0305I: Install applications onto the pizza34Network cell using wsadmin
$AdminApp or the Administrative Console.
ADMU9990I:
ADMU0003I: Node pizza34 has been successfully federated.
|
然后,在 Deployment Manager 中将定义一个名为 SpecjCluster 的集群,还将创建一个名为 specj01 的集群服务器成员。
清单 19. 创建集群
Creating Cluster: SpecjCluster
with the following attributes:
{name SpecjCluster} {preferLocal true} {description {clusterConfig.jacl generated cluster}}
Attempting to create the cluster: SpecjCluster
Cluster created successfully
Check if Host Alias entry is needed for the default_host for port 9081
Found default_host: default_host(cells/pizza34Network:virtualhosts.xml#VirtualHost_1)
for host default_host
Adding Host Alias with attributes: {hostname *} {port 9081}
Attempting to create the server member
Using Server Name: specj01
Using Weight: 2
Member Server created successfully
|
这样将创建 DB2 JDBC™ 提供程序和数据源。注意,在本文中我们使用了 Type 2 驱动程序,因为 Type 4 驱动程序在本文发表之际还没有通过认证。如果您有兴趣使用不同的 JDBC 驱动程序,则请参阅 WebSphere InfoCenter [3]。
清单 20. 创建 DB2 JDBC 提供程序和数据源
Getting Node Name
Cell Found: pizza34Network(cells/pizza34Network:cell.xml#Cell_1)
Getting Server Name
Getting Adapter Name
Creating JDBC Driver and SPECj DataSources with the following configuration
CellName pizza34Network
Database Driver ClassPath c:/SQLLIB/java
Database User spec
Database Password specspec
DatabaseProvider Name DB2 Universal JDBC Driver Provider (XA)
Database Implementation Class COM.ibm.db2.jdbc.DB2XADataSource
Database Name specdb
DataSource Name SPECDB
DataSource JNDI jdbc/SPECDB
Relational Adapter "WebSphere Relational Resource Adapter
(cells/pizza34Network:resources.xml#builtin_rra)"
WAS Cell pizza34Network
(cells/pizza34Network:cell.xml#Cell_1)
Creating JAAS AuthData SPECjDataSourceAuthData
Create DB2 Universal JDBC Driver Provider (XA) on pizza34Network
(cells/pizza34Network:cell.xml#Cell_1)
Create SPECDB
{name SPECDB} {description "SPECjAppServer2004 DB2 JDBC Datasource"}
Creating Datasource Properties
Creating Connection Factory
Create SPECUtilDB
{name SPECUtilDB} {description "SPECjAppServer2004 Util DB2 JDBC Datasource"}
Creating Datasource Properties
Creating Connection Factory
Saving Config
|
然后,还要在 JACL 脚本中创建 JMS 连接和目的地。
清单 21. 创建 JMS 连接和目的地
WASX7209I: Connected to process "dmgr" on node pizza34Manager using SOAP connector;
The type of process is: DeploymentManager
Cell Found: pizza34Network(cells/pizza34Network:cell.xml#Cell_1)
------------------------------------------
Creating JMS Connections, Destination
with the following configuration:
CellName pizza34Network
NodeName pizza34
JMS Server Name pizza34
JMS Provider Name WebSphereJMSProvider
Queue Connection Factory QueueConnectionFactory
Queue Connection JNDI name jms/QueueConnectionFactory
------------------------------------------
Target Node Found: pizza34(cells/pizza34Network/nodes/pizza34:node.xml#Node_1)
Server Found:
specj01(cells/pizza34Network/nodes/pizza34/servers/specj01:server.xml#Server_1101152877255)
Create Queue Provider and MQ Queue name for Queues
JMS Node Found: pizza34(cells/pizza34Network/nodes/pizza34:node.xml#Node_1)
Target JMS Provider Found: WebSphere JMS Provider
(cells/pizza34Network:resources.xml#builtin_jmsprovider)
JMS Resource setup using provider WebSphere JMS Provider(cells/pizza34Network:resources.xml#
builtin_jmsprovider)
Setting JMSServer(cells/pizza34Network/nodes/pizza34/servers/jmsserver:server.xml#JMSServer_110
1152737006) initial state to START
JMS Queue BuyerQueue not found. Adding to JMSServer(cells/pizza34Network/nodes/pizza34/servers
/jmsserver:server.xml#JMSServer_1101152737006)
Create QueueConnectionFactory
Queue Connection Factory: QueueConnectionFactory(cells/pizza34Network:resources.xml#WASQueue
ConnectionFactory_1101152912344)
Create BuyerQueue
Create FulfillOrderQueue
Create LargeOrderQueue
Create ReceiveQueue
Create BuyerPort
Create StateManageable: initialState = START
Create FulfillOrderPort
Create StateManageable: initialState = START
Create LargeOrderPort
Create StateManageable: initialState = START
Create ReceivePort
Create StateManageable: initialState = START
Save Admin changes
|
最后,该脚本将部署和安装 SPECjAppServer Web 应用程序和基准仿真器。
清单 22. 安装 EAR
ADMA5013I: Application SPECjAppServer installed successfully.
...
ADMA5013I: Application SPECjEmulator installed successfully.
...
|
WebSphere 管理(wsadmin)脚本程序是一个功能强大的、非图形化的命令解释器环境,它允许您使用一种脚本语言来执行管理性操作。specjwassetup.pl 脚本就是使用该程序的一个很好的例子。
安装 SPECjAppServer 基准驱动程序
要安装 SPECjAppServer 基准驱动程序,只需在 DB2 命令窗口发出 perl specjdrvsetup.pl 命令即可。
该安装脚本将把所有已部署的类复制到 SPECjAppServer 基准包中。那些 Jar 文件包含这个应用程序中用到的对象。
清单 23. 复制被部署的类
corp.jar
mfg.jar
orders.jar
supplier.jar
util.jar
xercesImpl.jar
xmlParserAPIs.jar
7 file(s) copied.
|
然后,该脚本将修改基准驱动程序目录下的不同文件,以便为驱动程序提供参数。这里将开始一个短时间的运行过程,以便创建代理和启动基准,从而测试驱动程序。
清单 24. 开始一次运行
The following environment settings are in effect for SPECjAppServer2004
* ========================= *
JAVA_HOME=c:/was51/b0344.02/java
JAS_HOME=c:/SPECjAppServer2004
CONFIG_DIR=c:/SPECjAppServer2004/config
APPSSERVER=default
ENVFILE=c:/SPECjAppServer2004\config\default.env
* ========================= *
Driver Host: PIZZA34
Binding controller to //pizza34/Controller
<propsFile> <agentName> <masterMachine>
Controller: Registering L1 on machine 9.26.96.89
Controller: Registering O1 on machine 9.26.96.89
Calling switchLog as master
Controller: Registering M1 on machine 9.26.96.89
RunID for this run is : 3
Output directory for this run is : c:/SPECjAppServer2004/output\3
TTF1 = 103
ttf = 103
Configuring 1 DealerAgent(s)...
DealerAgent O1, Thread 0 started
DealerAgent O1, Thread 1 started
DealerAgent O1, Thread 2 started
DealerAgent O1, Thread 3 started
DealerAgent O1, Thread 4 started
DealerAgent O1, Thread 5 started
DealerAgent O1, Thread 6 started
DealerAgent O1, Thread 7 started
DealerAgent O1, Thread 8 started
DealerAgent O1, Thread 9 started
DealerAgent O1, Thread 10 started
DealerAgent O1, Thread 11 started
DealerAgent O1, Thread 12 started
DealerAgent O1, Thread 13 started
DealerAgent O1, Thread 14 started
DealerAgent O1, Thread 15 started
DealerAgent O1, Thread 16 started
DealerAgent O1, Thread 17 started
DealerAgent O1, Thread 18 started
DealerAgent O1, Thread 19 started
Configuring 1 MfgAgent(s)...
MfgAgent M1, Thread 0 started
MfgAgent M1, Thread 1 started
MfgAgent M1, Thread 2 started
MfgAgent M1, Thread 3 started
MfgAgent M1, Thread 4 started
MfgAgent M1, Thread 5 started
Configuring 1 LargeOLAgent(s)...
sleeptime is 26813 note this is time in excess needed for trigger
MfgAgent L1, Thread 0 started
Starting O1:0: at 30793 EndRampUp is at 90797
Starting O1:1: at 30887 EndRampUp is at 90797
Starting O1:2: at 30981 EndRampUp is at 90797
Starting O1:3: at 31090 EndRampUp is at 90797
Starting O1:4: at 31184 EndRampUp is at 90797
Starting O1:5: at 31293 EndRampUp is at 90797
Starting O1:6: at 31387 EndRampUp is at 90797
Starting O1:7: at 31496 EndRampUp is at 90797
Starting O1:8: at 31590 EndRampUp is at 90797
Starting O1:9: at 31699 EndRampUp is at 90797
Starting O1:10: at 31793 EndRampUp is at 90797
Starting O1:11: at 31903 EndRampUp is at 90797
Starting O1:12: at 31996 EndRampUp is at 90797
Starting O1:13: at 32090 EndRampUp is at 90797
Starting O1:14: at 32184 EndRampUp is at 90797
Starting O1:15: at 32293 EndRampUp is at 90797
Starting O1:16: at 32403 EndRampUp is at 90797
Starting O1:17: at 32496 EndRampUp is at 90797
Starting O1:18: at 32606 EndRampUp is at 90797
Starting O1:19: at 32684 EndRampUp is at 90797
Gathering DealerStats ...
Gathering MfgStats ...
summary file is c:/SPECjAppServer2004/output\3\SPECjAppServer.summary
Calling getLog as master
|
所有的结果都保存在 c:\SPECjAppServer2004\output 目录中。现在,您可以去那里查看第一组结果。
结束语
在本文中,您亲历了在 DB2 UDB 上安装一个 "Hello World" SPECjAppServer2004 集群所需的步骤。从这里获得的经验将有助于您把目光转向更高级的集群拓扑上,并进一步将 DB2 服务器向其物理极限扩展。WebSphere 提供了一个非常强大的 JACL 脚本界面,以促进管理。有了文中使用的配置脚本的帮助,在 DB2 UDB 和 WebSphere Application Server 上安装 SPECjAppServer2004 基准就变得非常容易。有句话说,百闻不如一见。对于 WebSphere 集群,一个精心编写的脚本可以节省几天的工作。编写脚本的方法可以让原本需要焦头烂额忙碌一整天的任务在一小时内就可以轻松完成。
致谢
感谢 DB2 WebSphere Performance 小组的经理 Peter Shum,是他提供了关于基准的专家意见。
感谢 WebSphere Performance Benchmark Sample 的开发人员。这里的示例 JACL 脚本都是在基准包中那些脚本的基础上构建的。
还要感谢 DB2 Performance 小组的 Meng Fu,是他帮助解决了文档的脚本和输入。
下载 | 描述 | 名字 | 大小 | 下载方法 |
|---|
| zip file of scripts | scripts.zip | 65 KB |
FTP | HTTP |
|---|
参考资料
- 您可以参阅本文在 developerWorks 全球站点上的 英文原文 。
-
SPEC.org 上的 Standard Performance Evaluation Corporation (SPEC) 信息。
- 在 SPEC 网站可以找到官方的 SPECjAppServer2004 结果。
-
ActiveState ActivePerl 提供的 ActiveState。
-
WAS Information Center Reference Library 上的 Websphere InfoCenter。
关于作者  | |  | Tony Lau 是 IBM 认证的系统专家。他是 IBM 多伦多实验室的一名软件工程师。之前,他在滑铁卢大学并行程序设计和分布式系统实验室担任研究助理。他当前的研究重点是自主计算。 |
对本文的评价
|