用 Apache JMeter 测试 WebSphere 性能

发表于:2007-06-01来源:作者:点击数: 标签:
WebSphere Application Server - Express 是 WebSphere Application Server 家族中最简单的成员。因为它的目标是中小型公司,而这些公司可能不需要其他产品所提供的所有功能,所以它只包含了 WebSphere Application Server 完整架构的一个子集。例如,它未包

WebSphere Application Server - Express 是 WebSphere Application Server 家族中最简单的成员。因为它的目标是中小型公司,而这些公司可能不需要其他产品所提供的所有功能,所以它只包含了 WebSphere Application Server 完整架构的一个子集。例如,它未包括 EJB 支持。
  
 WebSphere Application Server - Express 由两个主要产品构成:
    
 Express Application Server - 用以支持 Web 应用程序部署和运行的全功能生产系统
 WebSphere Studio Site Developer(WSSD) - 允许您创建和测试应用程序的开发工具
  
 图 1 向您展示了 WebSphere Application Server - Express 架构的概貌。
  
 图 1. WebSphere Application Server - Express 概貌
  
 以下是 WebSphere Application Server 中使用的术语:
  
 应用程序服务器

 应用程序服务器是您的应用程序将要执行的基本运行库组件。您可以在配置中定义一个或多个应用程序服务器;但是在 Express 级别上,不能将工作负载分布在多个应用程序服务器中。
  
 以下是应用程序服务器中的主要组件:
  
 Web 容器

 每个应用程序服务器运行库都有一个逻辑 Web 容器。该容器将处理 servlet、JSP 文件以及其他类型的服务器端内容。Web 容器配置提供了应用程序服务器组件的有关信息,该组件处理由 Web 服务器所提交的请求。

 嵌入式 IBM HTTP 服务器

 在典型的应用程序服务器环境中,您将具有一个 Web 服务器来为 HTML 页面服务。需要动态内容的请求(使用 JSP 或 servlet)将被传递给应用程序服务器。Express Application Server 提供了基于 IBM HTTP 服务器的嵌入式 Web 服务器。这个嵌入式服务器可用于为应用程序提供静态的 Web 页面。虽然无法完全配置 Web 服务器,但是它提供了 WebSphere Application Server - Express 环境中运行的应用程序所需的功能。

 节点

 一个节点就是一个共享公共配置的 WebSphere 管理的逻辑进程分组。节点通常与 Application Server 的物理安装有关。在应用程序的 Express 配置中,就只有一个称作 DefaultNode 的节点。

 单元

 单元是更高级的 Application Server 版本中所使用的管理概念。应用程序服务器附属于节点,而节点则属于单元。在 Express 配置中,只有一个称作 DefaultNode 的单元。

 可在以下地方找到更多 WebSphere 的术语定义:
 http://publib-b.boulder.ibm.com/Redbooks.nsf/RedbookAbstracts/sg246976.html?Open
 http://publib-b.boulder.ibm.com/Redbooks.nsf/RedbookAbstracts/sg246555.html?Open
  
 DB2 UDB Express 是 IBM DB2 家族中定价最低的全功能关系数据库版本。它是专为帮助中小型公司集成和管理其业务而设计的。
  
 图 2 展示了 DB2 UDB Express 的概貌。
  
 图 2. DB2 UDB Express 概貌


 以下是一些您必须熟悉的 DB2 基本术语:
  
 DB2 管理服务器(DB2 Administration Server,DAS)
 图 2 外部定义了一个物理机器(“My Server”)。所有安装了 DB2 的机器都具有一个称作 DAS 的后台进程。DAS 的主要目的是为了提供远程管理支持。每个物理机器都应该具有一个 DAS 服务器进程。
  
 实例
 实例是一个提供数据库访问的进程集合。一个实例可用于提供到一个或多个数据库的服务。您可以在一台机器上安装一个或多个实例,而每个实例都充当一个独立的服务器环境,因此,这些实例的停止和重启都互不影响。
  
 每个实例还具有自己的配置文件,数据库管理器配置文件(DBM CFG)用于进行实例级的安全性能变量和通信配置。每个实例都有一个 DBM CFG。
  
 数据库
 数据库是一组表的集合,包括数据以及相关对象,如索引、视图、触发器和存储过程。实例进程提供到数据库数据的访问。

 每个数据库都具有自己的数据库级配置文件,称作数据库配置文件(DB CFG)。
  
 安装 WebSphere 和 DB2 UDB Express 产品

 在后面的一个实践中,我们将使用 IBM WebSphere Application Server Express V5.1 和 IBM DB2 Universal Database Express V8.1。可从以下 Web 站点下载 WebSphere Application Server Express 和 DB2 UDB Express 的试验版本:
 http://www14.software.ibm.com/webapp/download/home.jsp。
  
 我们不会一步步地介绍安装,因为该过程有向导协助进行并且极其简单。以下是您验证是否成功完成安装时可采取的一些步骤:

在完成 WAS Express 安装之后,继续执行 Start -> Programs -> IBM WebSphere Application Server Express 5.1 -> First Steps。单击 Verify Server Installation 来验证 WebSphere Application Server - Express 的安装是否成功。您应该在每项测试的最后看到消息“OK”。

 在安装了 DB2 UDB Express 之后,则继续执行 Start -> Programs -> IBM DB2 -> Set-up Tools -> First Steps,以便创建 SAMPLE 数据库。或者,您可以通过在 DB2 命令窗口中(Start -> Programs -> IBM DB2 -> Command Line Tools -> Command Window)执行 C:\>DB2 Installation folder>\SQLLIB\bin\ 中的 db2sampl 来完成该工作。我们稍后将在应用程序中使用该数据库中的一个表。

 DB2 控制中心(Control Center)是 DB2 的管理中心。要检查 SAMPLE 数据库是否创建成功,您可以通过 Start -> Programs -> IBM DB2 -> General Administration Tools -> Control Center 调用 DB2 控制中心。如您在图 3 中所见,若要显示系统所编目的所有 DB2 系统,可以通过单击 Systems 前的 + 符号来展开对象树。屏幕的左边部分将列出可用的 DB2 系统。本例中,系统 LIMSS 包含了一个名为 DB2 的 DB2 实例,而数据库 SAMPLE 就位于该实例中。当加亮显示某一表时,屏幕的右边部分就会显示该表的所有相关细节。

 图 3. DB2 Control Center
 
 现在,让我们继续考虑应用程序本身的问题。
  
 使用 WebSphere Studio Site Developer 开发 Java Web 应用程序

 J2EE 规范是用以开发、部署和运行企业 Web 应用程序的标准。IBM WebSphere Application Server V5 已经完成了 J2EE 规范的整套测试包。该产品支持所有的 J2EE 1.3 API,并且进行了大量扩展。您可以检查在 http://java.sun.com/j2ee/compatibility.html 上检查由 Sun Microsystmes 所宣布的 J2EE 兼容产品清单。
  
 图 4 展示了 J2EE 包装,有助于理解 J2EE 应用程序的组件。
 
 图 4. J2EE 包装
 
 正如您可以从图 4 中所看到的,企业应用项目(MyApp.ear)包含了部署企业(J2EE)应用程序所需的资源层次结构。它可能包含 Web 模块、EJB 模块、JAR 文件和应用程序客户机模块的组合。企业应用项目将被导出用作企业档案(EAR)文件,EAR 文件包括企业应用项目中所定义的所有文件,以及用于部署描述符中所定义的每个 J2EE 模块项目的适当的模块档案文件,例如 Web 档案(WAR)和 EJB JAR 文件。
  
 WebSpere Application Server - Express 不支持 EJB 组件,因此,用该产品进行的典型企业应用程序部署主要包括 Web 模块和 JAR 支持文件。
  
 WSSD 提供了不同的透视图,用于以不同的方式查看和使用资源。一个透视图包含一组视图、编辑器以及与该透视图内最可能执行的任务相匹配的工具栏选项。在应用程序的部署阶段,您可以使用 WSSD 中的不同透视图,如 Web 透视图、Data 透视图或 Server 透视图。
  
 例如,Server 透视图的设计就考虑了服务器或单元测试环境中的操作。有一个服务器控制台(console)视图、一个显示服务器配置的视图、一个允许您启动和停止服务器的视图等等。(见图 5。)
  
 图 5. WSSD 中的 Server 透视图
 
 本示例中,我们主要将使用 Web 透视图来开发 Web 项目组件。
  
 因此本文的目的是向您概述在 WebSphere Application Server - Express 上部署使用 DB2 UDB Express 的 Java Web 应用程序,所以我们将开发一个简单的解决方案,用以向 DB2 UDB Express 上的后端数据库输入用户 ID 和口令。一旦成功建立连接,应用程序就会在一个表中显示雇员记录。
  
 在下一节中,我们将一步步介绍示例的创建。因为我们需要快速完成应用程序,所以我在本示例中使用的编程模型可能并不适合您的环境。本示例中的页面表示紧密配合了业务逻辑,这将阻碍将来的应用程序可伸缩性。此外,该示例不包括异常处理。请注意,这只是一个学习示例,所以要使用最适合您环境的架构。
  
 创建应用程序

 步骤 1 – 创建 MyFirstTest Web 项目
 现在,我们将创建 Web 项目了。从 Web 透视图(Window -> Open Perspective -> Web)中,执行下列操作:
  
 选择 File -> New -> Dynamic Web Project。
 输入项目名 MyFirstTest,并确认是否选择了 Configure advanced options 复选框。这将允许您选择企业应用项目。
 单击 Next。
 在 EAR Project 列表框旁,单击 New,并输入项目名 MyFirstTestEa

将企业应用程序发布到服务器上
 
 如果您未修改默认的服务器首选项,那么您的应用程序 MyFirstTest 将会被自动地发布到测试环境中,如图 11 所示:
 图 11. 在测试环境中发布 MyFirstTest 应用程序
 

在完成发布之后,还将自动启动服务器 server1。您将在控制台视图中看到消息‘Server server1 open for e-business’。这表明该服务器已经启动成功。我们的应用程序 index.html 还将在 Web 浏览器中打开。
  
 用特定于应用程序的值更新服务器配置

 在此时,我们仍然还未完成,请关闭 Web 浏览器并停止 server1,因为我们还未用 JDBC 驱动程序和 SAMPLE 数据库的数据源更新服务器配置。
  
 JDBC 2.0 提供了两种建立数据库连接的方法。第一种方法是通过使用驱动程序管理器界面来完成。这是从 JDBC 1.0 继承下来的,并要付出高昂的性能代价。通过该方法,每当您从程序访问数据库时,都要创建连接,从而招致大量的处理开销。
  
 另一种处理数据库连接的方法就是使用数据源(data source)对象。通过使用数据源对象,您可以访问一个连接数据源的连接池。连接池可提高性能,因为一将数据源对象实例化,它就会创建一个连接。当 servlet 或其他客户机需要使用连接时,它就通过 JNDI 服务器中的名称查找数据源对象。然后,数据源对象将给客户机返回一个连接。客户机完成连接之后,就释放它。然后,数据源对象将该连接返回给可用池。
  
 由于连接池有许多优点,所以在 Web 应用程序中偏爱使用数据源对象的方法来处理数据库连接。我们将在本示例中使用数据源对象。
  
 切换至底部窗格中的 Servers 选项卡。您将看到 WebSphere Express v5.1 测试环境(Test Environment)的状态被设置为 Started。要停止该服务器,请右击 Servers 视图并选择 Stop。其状态将马上被修改为 Stopping,并且在最后,Console 视图将自动打开,并显示您的 server1 已经停止。
  
 切回至 Web 透视图中的 Servers 选项卡。双击测试服务器来打开配置。切换至 Data source 选项卡。第一步就是向配置添加一个 JDBC 提供程序。这将告诉服务器要使用哪一类 JDBC 驱动程序来访问数据库。
  
 您将看到配置中已经预先定义了一个 Cloudscape 驱动程序和数据源信息。它用于支持与 WAS Express 一起配送的应用程序样例。
  
 单击 JDBC 提供程序列表旁边的 Add。在窗口上方选择 IBM DB2,并在窗口下方选择 DB2 Legacy CLI-based Type 2 JDBC Driver。单击 Next。可以任意设置名称,本示例中,我们将其命名为 DB2 JDBC Driver。您看到的实现类名和类路径都是 DB2 JDBC 提供程序所默认的。请注意,所指定的类路径中必须可获得驱动程序 db2java.zip。类路径使用变量 ${DB2_JDBC_DRIVER_PATH},我们稍后将定义它。
  
 现在,按照图 12 中所示步骤来定义数据源资源(Data Source Resource)。
  
 图 12. 添加数据源
 

在 Modify Data Source 屏幕中,将 Name 修改为 SAMPLE,并确保 JNDI 名为 jdbc/SAMPLE,这将匹配我们在 MakeConnection.java 中所指定的名称。单击 Next,并确保将 databaseName 的值设置为 SAMPLE。单击 Finish,您就完成了数据源的定义。
  
 前面所指定的类路径变量 ${DB2_JDBC_DRIVER_PATH} 缺仍然还未定义。切至 Variables 选项卡。节点设置中预先定义了变量 DB2_JDBC_DRIVER_PATH,但是其值还是空的。按照图 13 中所示的步骤来定义驱动程序的位置。
  
 图 13. 定义 DB2 JDBC 驱动程序的位置

 启动服务器

 下一步就是启动服务器。在底部窗格的 Servers 视图中选择 WebSphere Express V5.1 Test Environment。右击并选择 Start。

 Console 视图将自动打开,并显示服务器运行时消息。如果您发现了问题,或者该服务器未启动,就检查控制台消息,解决问题后再试一次。
  
 您将在控制台视图中看到消息“Server server1 open for e-business”,这表明服务器已经启动成功。
  
 运行应用程序
 按照图 14 中所示的步骤来运行 MyFirstTest 应用程序。
 图 14. 运行应用程序
  

该应用程序将在 Web 浏览器中打开,如图 15 所示。
  
 图 15. 测试应用程序
 

现在,我们将实践应用程序代码。使用您用于创建 SAMPLE 数据库的 ID 和口令来建立到 DB2 UDB Express 的连接。如果您所提供的 ID 和口令是无效的,那么您将看到一个错误页面。否则,将显示带有细节信息的雇员列表,如下面的图 16 所示:
  
 图 16. 带有细节信息的雇员列表
 

我们已经在 WebSphere 测试环境中测试了应用程序,并且没有发生错误。首先要确保停止了服务器,右击 Servers 视图并选择 Stop。接下来的事情就是将该应用程序作为企业应用程序部署到 Express Application Server 上。
  
 在典型的生产环境中,应用程序通常是通过管理控制台(administrative console)来管理的。本示例中,我们将应用程序 MyFirstTest 导出到一个 EAR 文件,并将之放置在应用程序服务器上来进行部署。
  
 在 Web 透视图中,按照图 17 中所示的步骤来将 MyFirstTest 企业应用程序导出到 EAR 文件中。
  
 图 17. 将 MyFirstTest 导出至 EAR 文件

下一步就是将前一步所导出的 EAR 文件安装为 WebSphere Application Server Express 企业应用程序。我们将使用 WebSphere Administrative Console 的工具来执行安装。
  
 因为已将管理控制台应用程序默认地安装在 server1 上,所以必须启动它来访问应用程序。您可以通过 Start -> Programs -> IBM WebSphere Application Server – Express 5.1 -> Start Application Server 来启动该服务器。
  
 打开浏览器,并输入这个 URL:http://localhost:7090/admin 来启动 WebSphere Administrative Console。在安装 WAS Express 时,定义了一个虚拟主机 admin_host,用于访问 WebSphere Administrative Console。其配置匹配端口 7090 中的请求。
  
 在安装时,具有访问该服务器的 Web 浏览器的任何人都可以访问管理控制台。如果您需要执行用户身份验证,这就需要启用 WebSphere 全局安全性。本示例中将忽略这一部分内容。
  
 按照图 18 中所示的步骤来将 EAR 文件安装为一个使用 Administrative Console 的企业应用程序。
  
 图 18. 安装新的应用程序 MyFirstTest.ear
 

下一页面包含了 4 个步骤。每一步都选择默认值并继续。在最后一步中,单击 Finish。您将看到一条“Application MyFirstTestEar”安装成功的消息。您必须在此时保存配置。单击 Save to Master Configuration,然后单击 Save 按钮。您应返回 Administrative Console 主页。
  
 接下来,我们将为应用程序创建 JDBC 提供程序和数据源资源(Data Source Resources)。按照图 19 中所示的步骤来定义 JDBC 提供程序和数据源。
  
 图 19. 定义 JDBC 提供程序和数据源
 

我们已经完成了 JDBC 提供程序的定义;让我们继续定义数据源资源(Data Source Resource)。
  
 在 Administrative Console 的左边框架中,选择 Resources -> JDBC Providers。选择您刚创建的 JDBC 提供程序,即 DB2 Legacy CLI-based Type 2 JDBC Driver。在该页面的 Additional Properties 选项卡中,选择 Data Sources。
  
 在 Data Sources 页面中,单击 New。按照图 20 中所示的步骤来创建新的数据源。
  
 图 20. 创建新的数据源
 

现在,从现有的资源中选择 SAMPLE。在该页的 Additional Properties 选项卡中,选择 Custom Properties。单击 Custom Properties 表中的 databaseName 链接。将 databaseName 的值填写为 Sample 并单击 OK。保存该配置。
  
 我们需要指定的另一个变量就是 DB2 JDBC 驱动程序在服务器上的位置。按照图 21 中所示的步骤来定义该驱动程序的位置。
  
 图 21. 指定 DB2 JDBC 驱动程序的位置
 

现在,我们准备测试 Express Application Server 上所部署的 MyFirstTest 应用程序。
  
 在 Administrative Console 的左边框架中,选择 Applications -> Enterprise Applications,并确保 MyFirstTestEar 的状态为 started。
  
 打开浏览器来测试该应用程序。该应用程序的 URL 将与 WebSphere Studio Site Developer 环境的(http://localhost:7080/MyFirstTest/)相同。
  
 测试您的应用程序,并验证该应用程序是否被正确部署到应用程序服务器上。如果应用程序中没有错误,就表示您已经在 Express Application Server 中成功地部署了您的应用程序。

原文转自:http://www.ltesting.net