WebSphere Application Server Community Edition V2.1 中的新增功能

探索 WebSphere® Application Server Community Edition V2.1 中的新增功能,包括使用 Gshell 执行 Geronimo 命令、在您自己的服务器集基础上创建多个服务器组装,以及通过专家模式和新的 Monitoring Portlet 完全控制服务器的能力。此版本是对已经是功能最强大的可用开放源代码应用程序服务器的改进。

Ashish Jain, 软件工程师, IBM

作者照片Ashish Jain 是 IBM WebSphere Application Server Community Edition 的 Level 3 Technical Support 的一位软件工程师。他获得了 NITK Surathkal 的计算机科学工程学士学位,并于 2005 年作为 ELTP 加入 IBM。



2008 年 9 月 24 日

引言

现在就下载 Community Edition V2.1!
IBM WebSphere Application Server Community Edition V2.1 可供免费使用和部署。现在就下载它,以开始后面的工作。

IBM 已宣布推出其新版本的 WebSphere Application Server Community Edition(以下称为 Community Edition),此版本重点集中于改进可用性和易用性。Community Edition V2.1 打包了庞大的功能集,这些功能进一步将其确立为功能最强大的 Java EE5 应用程序服务器之一。下面让我们了解一下最新版本的 Community Edition 中包括的功能。

Community Edition 基于 Apache Geronimo V2.1.1,是一个经过完全认证的 Java Platform Enterprise Edition 5(Java EE5) 应用程序服务器。本文指导您了解整个新功能集,包括自定义服务器组装、部署计划创建器向导、Gshell、增强的管理控制台、全局 JNDI 支持等等。此版本还包括新的开发和用户指南,可以使得开发、部署和运行应用程序更加容易。


新的内容

Community Edition V2.1 包括以下新功能集:

  • 自定义服务器组装:您可以创建仅包含应用程序所需功能组件的服务器组装。
  • 部署计划创建器向导:帮助您为 Web 应用程序生成适当部署计划的管理控制台菜单。
  • Gshell:用于执行 Geronimo 命令的命令行处理环境。GShell 是一个可扩展的环境,并包括对编辑、命令历史记录和按 Tab 键自动完成 (tab completion) 的支持。
  • 专家模式:为专家用户提供对 Community Edition 服务器上运行的进程的完全控制。缺省情况下,您不能修改关键进程,但是这个新模式允许您覆盖该设置。
  • 监视控制台插件:在 Geronimo 管理控制台中提供监视支持。监视控制台可以从多个 Geronimo 服务器收集统计信息和性能数据,并以图形的方式向用户显示该数据。
  • WADI 集群:您现在可以使用 Web 应用程序分布式基础结构(Web Application Distribution Infrastructure,WADI),以支持对使用 Tomcat Web 容器(早期版本中用于 Jetty 的 WADI 支持)的 Geronimo 配置的 Web 应用程序进行集群。您现在还可以将应用程序部署到以管理方式定义的 Geronimo 服务器组。
  • Community Edition Eclipse 插件:Eclipse 插件现在使用 Java Architecture on XML Binding (JAXB) 而不是 Eclipse Modelling Framework (EMF)。
  • 其他增强功能:Community Editions 支持新的外观、其他可用性改进、基于组件的管理控制台,并支持附加的数据库和操作系统。我们将在本文结尾处探索这些增强功能。

Community Edition V2.1 包括若干新的组件和模块,如表 1 所示。新模块用粗体进行标记。

表 1. Community Edition V2.0 与 V2.1 中的模块之间的比较
组件V2.0V2.1
activeio-core 3.0.0-incubator3.0.1
activemq-core 4.1.14.1.2
activemq-ra 4.1.14.1.2
annogen0.1.00.1.0
ant NA 1.7.0
ant-launcherNA 1.7.0
asm2.2.32.2.3
asm-commons2.2.32.2.3
aspectjrtNA1.5.3
axiom1.2.51.2.5
axiom-api1.2.51.2.5
axiom-dom1.2.51.2.5
axiom-impl1.2.51.2.5
axis1.41.4
axis21.31.3
axis2-adb1.31.3
axis2-java2wsdl1.31.3
axis2-jaxws1.31.3
axis2-jaxws-api1.31.3
axis2-kernel1.31.3
axis2-metadata1.31.3
axis2-saaj1.31.3
backport-util-concurrent2.22.2
bcel5.25.2
castor1.0.51.0.5
catalina 6.0.136.0.16
catalina-ha6.0.136.0.16
cglib- nodep2.1_32.1_3
Commons- beanutils1.7.01.7.0
Commons- cli1.01.0
Commons- codec1.31.3
Commons- collections3.23.2
Commons- digester1.81.8
Commons- discovery0.40.4
Commons- el1.01.0
Commons- fileupload1.1.11.1.1
Commons- httpclient3.0.13.0.1
Commons- io1.21.2
Commons- jexl1.11.1
Commons- lang2.32.3
Commons- logging1.0.41.0.4
Commons- logging- apiNA1.0.4
coyote 6.0.13 6.0.16
derby10.2.2.010.2.2.0
derbyclient10.2.2.010.2.2.0
derbynet10.2.2.010.2.2.0
derbytools10.2.2.010.2.2.0
dwr 1.1.42.0.3
geronimo-activation_1.1_spec 1.01.0.2
geronimo-annotation_1.0_spec 1.11.1.1
geronimo-connector 2.0.12.1.1
geronimo-ejb_3.0_spec 1.01.0.1
geronimo-el_1.0_spec 1.01.0.1
geronimo-j2ee-connector_1.5_spec 1.1.1 2.0.0
geronimo-j2ee-management_1.1_spec 1.01.0.1
geronimo-jacc_1.1_spec 1.01.0.1
geronimo-javaee-deployment_1.1MR3_spec1.01.0
geronimo-javamail_1.4_mail 1.21.4
geronimo-jaxr_1.0_spec 1.12.0.0
geronimo-jaxrpc_1.1_spec 1.12.0.0
geronimo-jms_1.1_spec 1.11.1.1
geronimo-jpa_3.0_spec 1.11.1.1
geronimo-jsp_2.1_spec 1.01.0.1
geronimo-jta_1.1_spec 1.11.1.1
geronimo-saaj_1.3_spec NA 1.0.0
geronimo-schema-j2ee_1.41.21.2
geronimo-schema-jee_51.11.1
geronimo-servlet_2.5_spec 1.11.2
geronimo-stax-api_1.0_spec 1.01.0.1
geronimo-transaction 2.0.12.1.1
geronimo-ws-metadata_2.0_spec 1.1.1 1.1.2
groovy-all-minimalNA1.5.6
gshell-bootstrap NA 1.0-alpha-1
gshell-builtins NA 1.0-alpha-1
gshell-cli NA 1.0-alpha-1
gshell-command-api NA 1.0-alpha-1
gshell-core NA 1.0-alpha-1
gshell-embeddable NA 1.0-alpha-1
gshell-maven-plugin NA 1.0-alpha-1
gshell-remote-client NA 1.0-alpha-1
gshell-remote-common NA 1.0-alpha-1
gshell-remote-server NA 1.0-alpha-1
gshell-whisper NA 1.0-alpha-1
gshell-bootstrap NA 1.0-alpha-1
gshell-builtins NA 1.0-alpha-1
gshell-cli NA 1.0-alpha-1
gshell-command-api NA 1.0-alpha-1
gshell-core NA 1.0-alpha-1
gshell-embeddable NA 1.0-alpha-1
gshell-maven-plugin NA 1.0-alpha-1
howl1.0.1-11.0.1-1
httpcore4.0-alpha54.0-alpha5
geroimo-interceptor_3.0_spec 1.01.0.1
jasper 6.0.136.0.16
jasper-el 6.0.13 6.0.16
jasper-jdt 6.0.13 6.0.16
jaxb-api2.02.0
jaxb-impl2.0.52.0.5
jaxb-xjc2.0.52.0.5
jaxen 1.1-beta-10 1.1-beta-11
jaxws-rt2.02.0
jaxws-tools2.02.0
jcl104-over-slf4j NA 1.4.3
jlineNA 0.9.94
jstl1.21.2
juddi0.9rc40.9rc4
juli 6.0.13 6.0.16
juli-adapters 6.0.13 6.0.16
log4j1.2.141.2.14
myfaces-api 1.2.0 1.2.2
myfaces-impl 1.2.0 1.2.2
neethi2.02.0
ognl2.6.92.6.9
openejb 3.0-beta-1 3.0
openejb-axis3.03.0
openejb-client3.03.0
openejb-core3.03.0
openejb-ejbd3.03.0
openejb-javaagent3.03.0
openejb-jee3.03.0
openejb-loader3.03.0
openejb-server3.03.0
openjpa 1.0.0 1.0.2
pluto 1.0.1 1.1.6
pluto-container NA 1.1.6
pluto-descriptor-api NA 1.1.6
pluto-descriptor-impl NA 1.1.6
pluto-portal-driver NA 1.1.6
pluto-portal-driver-impl NA 1.1.6
pluto-taglib NA 1.1.6
tranql-connector-db2-xa 1.31.4
scout1.0rc11.0rc1
serp1.11.01.11.0
slf4j-api NA1.4.3
slf4j-jcl NA1.4.3
slf4j-log4j12 NA1.4.3
swizzle-stream1.0.11.0.1
tomcat 6.0.136.0.16
tranql 1.31.4
tranql-connector-derby-client-local 1.31.4
tranql-connector-derby-client-xa 1.31.4
tranql-connector-derby-embed-local 1.31.4

自定义服务器组装

Community Edition 的缺省下载版本是完全兼容的 Java EE5 认证服务器组装。根据您的业务需求,您可能不需要完整的服务器,而是只需要其中的一部分。例如,如果您的应用程序仅包含 Web 层,您可能只需要 Tomcat 并排除诸如 OpenEJB、Active MQ 等其他模块。以前提取自定义服务器是一个构建时操作,但是使用 Community Edition V2.1,您可以在运行时期间获取现有服务器的自定义快照。存在两种提取自定义服务器的方法:

  • 以应用程序为中心:您选择应用程序成功运行所必需的一个或多个插件。
  • 以功能为中心:您选择开发环境所需要的预期功能集。

我们将在下面几个部分中非常详细地讨论自定义服务器的创建。但是我们首先需要了解基本的 Community Edition 体系结构。Community Edition 提供了一个插件体系结构,其中服务器完全在插件的基础上组装而成。Community Edition 中的每一个模块都是插件,并且每一个插件都具有关联的依赖项。因此我们需要确保所组装的服务器具有其操作所需的所有插件。

在我们的示例中,我们将使用以应用程序为中心的方法来定义自定义服务器的内容。我们将使用现有的 Community Edition 示例(可通过 Community Edition 下载包获得)中的 jsp-examples-war。按照以下步骤操作以创建自定义服务器组装:

  1. 修改应用程序的部署计划。此步骤是必需的,因为该示例的缺省部署将应用程序安装为 WAR,而 Community Edition 将插件识别为 CAR。将 <dep:type>car</dep:type> 标记添加到部署计划。
  2. 将示例 jsp-examples-war 部署到 Community Edition V2.1。
  3. 您可以启动该应用程序,并使用 http://localhost:8080/jsp-examples/ 验证其功能。
  4. 下面,我们将确定应用程序需要的功能组件和依赖项。此步骤可以通过使用管理控制台中的 Dependency Viewer Portlet 来得以简化。使用 http://localhost:8080/console/ 启动管理控制台。
  5. 使用缺省用户名 system, 和密码 manager 登录。
  6. 在 Debug Views 下的欢迎页中,启动 Dependency Viewer Portlet,如图 1 所示:
    图 1. 管理控制台中的 Dependency Viewer Portlet
    Dependency Viewer Portlet 的屏幕快照
  7. 由于我们已部署了一个 Web 应用程序,请选择 WebModule。在 WebModule 下面,选择 org.apache.geronimo.applications.examples/geronimo-jsp- examples/2.1.0.0/car-> dependencies,这将显示我们的 Web 应用程序需要的各个依赖项(请参见图 2):
    图 2. jsp-examples-war 应用程序的依赖项
    依赖项的屏幕快照
  8. 为了获得一个最基本的工作服务器,我们还需要包括 geronimo-boilerplate-minimal 插件,以实现启动、停止及其他功能。

我们现在已确定了该自定义服务器需要的依赖项。下一步我们将在所有这些依赖项的基础上组装一个自定义服务器:

  1. 在管理控制台中的 Applications 下面,选择 Plugins,如图 3 所示:
    图 3. 管理控制台中的 Plugin Portlet
    Plug-in Portlet 的屏幕快照
  2. 下一步选择 Assemble a server。在下一个屏幕上,为 groupId 输入 org.apache.geronimo.customserver,为 artifactId 输入 TestServer,如图 4 所示:
    图 4. 所组装的服务器的构件
    所组装的服务器的构件屏幕快照
  3. 现在从 Plugins in local server 下面显示的列表中选择以下插件,然后单击 Assemble
    • com.ibm.wasce.assemblies/wasce-boilerplate-minimal/2.1.0.0/jar
    • org.apache.geronimo.applications.examples/geronimo-jsp-examples/2.1.0.0/car
    • org.apache.geronimo.configs/axis/2.1.1/car
    • org.apache.geronimo.configs/axis2/2.1.1/car
    • org.apache.geronimo.configs/j2ee-corba-yoko/2.1.1/car
    • org.apache.geronimo.configs/jasper/2.1.1/car
    • org.apache.geronimo.configs/openjpa/2.1.1/car
    • org.apache.geronimo.configs/tomcat6/2.1.1/car
    图 5. 选择插件
    要选择的插件的屏幕快照
  4. 下一个屏幕(图 6)显示了要包括在该自定义服务器中的所有插件的列表。单击 Install
    图 6. 要包括在自定义服务器中的所有插件的列表
    自定义服务器的所有插件的屏幕快照
  5. 在下一个屏幕上(图 7),您应该看到一条消息,该消息指示成功的服务器组装,并包括该自定义服务器的位置(在我们的例子中为 <WASCE_HOME>/var/temp/assembly)。单击 Done
    图 7. 成功的服务器组装
    表明成功的服务器组装的消息屏幕快照
  6. 下一步我们需要测试所组装的服务器。关闭现有的服务器,并从 <WASCE_HOME>\var\temp\assembly\bin\startup.bat 启动新的服务器。
  7. 最后,您可以使用 http://localhost:8080/jsp-examples/ 启动应用程序。

请注意,我们组装的服务器是一个最基本的服务器;您将不能获得管理控制台的图形用户界面。

为了便于参考,您可能希望在自己的自定义服务器中包括以下插件:

  • org.apache.geronimo.plugins/console-tomcat/2.1.1/car:基于 GUI 的管理控制台
  • org.apache.geronimo.plugins/sysdb-console-tomcat/2.1.1/car:管理控制台中基于 GUI 的 Database Portlet
  • org.apache.geronimo.plugins/sysdb-console-tomcat/2.1.1/car:管理控制台中基于 GUI 的 Debug Views Portlet
  • org.apache.geronimo.plugins/activemq-console-tomcat/2.1.1/car:管理控制台中基于 GUI 的 JMS 控制台
  • org.apache.geronimo.plugins/plancreator-console-tomcat/2.1.1/car:管理控制台中基于 GUI 的 Deployment Plan Creator Portlet

正如您可以从我们的示例中判断出的那样,该自定义服务器具有非常强大的功能,可进一步利用模块化、可扩展的 Geronimo 插件体系结构。您可以在现有的运行服务器的基础上快速组装许多类型的服务器。


Deployment Plan Creator 向导

为了简化特定于服务器的部署计划(例如 geronimo-web.xml)的创建,Community Edition 的管理控制台中现在有一个名为 Plan Creator 的新 Porlet。Plan Creator 接受一个 Web 应用程序存档(Web application archive,WAR),并指导用户完成一系列步骤来自动生成 geronimo-web.xml 文件。它尚不支持在 EAR 和 EJB-JAR 的基础上创建 geronimo-application.xmlopenejb-jar.xml

Deployment Plan Creator 的一些突出功能包括:

  • Web 应用程序中声明的 EJB、EJB Local、JDBC 连接池、JMS 连接工厂、JMS 目的地、JavaMail 会话和 Web 服务引用 是自动发现的。您通过列出服务器环境中可链接到的可用资源来解析那些引用。
  • 上面描述的任何在 Java 类中通过标注 声明的引用也是自动发现的。
  • 简化的安全 配置。

我们将使用 Community Edition 示例 中可用的 jsp-examples-war 应用程序来说明这一点。

  1. jsp-examples-war-2.1.0.0.war 中,定位到应用程序存档中的 WEB-INF 下面的Web 应用程序部署计划 (geronimo-web.xml)

    目前我们拥有如清单 1 所示的部署计划:

清单 1. 部署计划 geronimo-web.xml
  <web-app xmlns="http://geronimo.apache.org/xml/ns/j2ee/web-2.0"
         xmlns:sec="http://geronimo.apache.org/xml/ns/security-1.2"
         xmlns:dep="http://geronimo.apache.org/xml/ns/deployment-1.2">

  <dep:environment>
    <dep:moduleId>
      <dep:groupId>org.apache.geronimo.applications.examples</dep:groupId>
      <dep:artifactId>geronimo-jsp-examples</dep:artifactId>
      <dep:version>2.1.0.0</dep:version>
    </dep:moduleId>
    <dep:dependencies/>
    <dep:hidden-classes/>
    <dep:non-overridable-classes/>
  </dep:environment>
  
  <context-root>/jsp-examples</context-root>
  <!--<context-priority-classloader>false</context-priority-classloader>-->
  <security-realm-name>geronimo-admin</security-realm-name>
  <sec:security>
      <sec:default-principal>
          <sec:principal class="org.apache.geronimo.security.realm.providers.
                         GeronimoUserPrincipal" name="anonymous"/>
      </sec:default-principal>
      <sec:role-mappings>
          <sec:role role-name="tomcat">
              <sec:principal class="org.apache.geronimo.security.realm.providers.
                          GeronimoGroupPrincipal"name="admin"/>
          </sec:role>
      </sec:role-mappings>
  </sec:security>
</web-app>
  1. jsp-examples-war-2.1.0.0.war 存档中删除部署计划。
  2. 启动 Community Edition 管理控制台,并使用缺省用户名和密码登录。
  3. Applications 下面,选择 Plan Creator,如图 8 所示:
    图 8. 管理控制台中的 Plan Creator Portlet
    Plan Creator Portlet 的屏幕快照
  4. 在下一个屏幕中,单击 Browse 并选择 jsp-examples-war-2.1.0.0.war。单击 Configure,如图 9 所示:
    图 9. 选择用于创建部署计划的 Web 存档
    WAR 文件的屏幕快照
  5. 下一个屏幕为我们的环境提供了 Web 应用程序标识和类路径配置建议。您可以将 WebContextRoot 设置为 PlanCreatorTest,并将其余的值保留为缺省值,如图 10 所示。单击 Next
    图 10. 配置 Web 应用程序标识和类路径
    标识和类路径的屏幕快照
  6. 下一个屏幕显示了用于安全领域和角色映射的配置。为 role1 字段选择 Principal NameClass 字段随即出现。将其命名为 TestUser,并为 Class 选择 User Principal ,如图 11 所示。单击 Add
    图 11. 选择类
    显示如何选择类的屏幕快照

    您现在应该看到已添加到部署计划的 Principal、Name 和 Class,如图 12 所示:

    图 12. 配置 role1 的角色映射
    role1 的屏幕快照
  7. 接下来为 tomcat 字段选择 Principal。将其命名为 TestGroup,并为 Class 字段选择 Group Principal。选择 Add,如图 13 所示。
    图 13. 配置 tomcat 的角色映射
    tomcat 角色映射的屏幕快照

    您现在应该看到已添加到部署计划的 Principal、Name 和 Class。选择 Next

  8. 下一个屏幕提供了要为应用程序选择的依赖项建议。我们的应用程序没有任何依赖项,因此我们将保留缺省选择。您可以选择诸如 ejb、数据库池、jms 资源等依赖项,但它们不是必需的。选择 Next
  9. 下一个屏幕显示了所生成的部署计划,如清单 2 所示:
清单 2. 生成的部署计划
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://geronimo.apache.org/xml/ns/j2ee/web-2.0.1">
    <dep:environment xmlns:dep="http://geronimo.apache.org/xml/ns/deployment-1.2">
        <dep:moduleId>
            <dep:groupId>default</dep:groupId>
            <dep:artifactId>jsp-examples-war-2.1.0.0</dep:artifactId>
            <dep:version>1.0</dep:version>
            <dep:type>war</dep:type>
        </dep:moduleId>
    </dep:environment>
    <context-root>PlanCreatorTest</context-root>
    <security-realm-name>geronimo-admin</security-realm-name>
    <app:security xsi:type="sec:securityType" 
                    xmlns:sec="http://geronimo.apache.org/xml/ns/security-2.0" 
                    xmlns:app="http://geronimo.apache.org/xml/ns/j2ee/application-2.0" 
                    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
        <sec:role-mappings>
            <sec:role role-name="role1">
                <sec:principal name="TestUser " class=
                   "org.apache.geronimo.security.realm.providers.GeronimoUserPrincipal"/>
            </sec:role>
            <sec:role role-name="tomcat">
                <sec:principal name="TestGroup " class=
                   "org.apache.geronimo.security.realm.providers.GeronimoGroupPrincipal"/>
            </sec:role>
        </sec:role-mappings>
    </app:security>
</web-app>
  1. 选择 Deploy WAR,如图 14 所示:
    图 14. 使用部署计划部署 WAR
    显示如何使用部署计划部署 WAR 的屏幕快照
  2. 您应该看到一条消息,表明我们的 Web 应用程序已成功部署。选择 Launch Web App 以启动该 Web 应用程序,如图 15 所示:
    图 15. 启动 Web 应用程序
    显示 Web 应用程序的屏幕快照
  3. 从图 16 中可以看到,该应用程序使用上下文根 PlanCreatorTest 启动。然而,原始部署计划(与 Web 应用程序打包在一起的部署计划)的上下文根为 jsp-examples
    图 16. 使用上下文根 PlanCreatorTest 来启动的应用程序
    上下文根设置为 PlanCreatorTest 的屏幕快照

GShell

GShell 是一个用于构建丰富的命令行应用程序的框架。GShell 是用于执行大多数 Community Edition 命令的命令行处理环境。表 2 显示了各种 GShell 命令:

表 2. Gshell 命令
命令描述
help 或 ?显示帮助信息
echo 或 print将参数打印到 STDOUT
source 或 .将文件或 URL 加载到当前 Shell
clear清除终端屏幕
set设置变量
unset取消设置变量
exit 或 quit退出 GShell
geronimo/start-server启动服务器
geronimo/stop-server停止服务器
geronimo/wait-for-server等待服务器启动
geronimo/start-client启动应用程序客户端
deploy/connect连接到 WASCE 服务器
deploy/disconnect从 WASCE 服务器断开连接
deploy/deploy部署模块
deploy/redeploy重新部署模块
deploy/undeploy取消部署模块
deploy/distribute分发某个模块
deploy/start启动某个模块
deploy/restart重新启动某个模块
deploy/stop停止某个模块
deploy/list-modules列出模块
deploy/list-targets列出目标
deploy/list-plugins将插件安装到服务器中
deploy/install-library安装库
deploy/install-plugin安装插件
deploy/assemble从当前 WASCE 服务器提取 WASCE 服务器

下面看一下使用 Gshell 的示例。Community Edition 在 <WASCE_HOME>/bin 中提供了一个用于启动 Gshell 的批处理文件 gsh.bat。通过从命令提示符运行 gsh.bat 来启动 Gshell,如图 17 所示:

图 17. 启动 GShell
运行gsh.bat 以后的命令提示符快照

要使用 Gshell 启动服务器,可以输入命令 geronimo/start-server,如图 18 所示:

图 18. 使用 Gshell 启动服务器
启动服务器以后的命令提示符屏幕快照

要列出服务器上部署的模块可以输入命令 deploy/list-modules。输入缺省用户名和密码,如图 19 所示:

图 19. 列出服务器上部署的模块
列出模块以后的命令提示符屏幕快照

专家模式

在 Community Edition 管理控制台中,在 Applications 下面,各个 Portlet(WebAppWAR、系统模块、应用程序 EAR、EJB JAR、J2EE 连接器、应用程序客户端)显示了各个模块(分别为 Web 应用程序模块、系统模块、企业应用程序模块、EJB 模块、连接器模块、应用程序客户端)。通过这些 Portlet,您可以启动、停止、重新启动和卸载各个模块。缺省控制台将各个模块的这些操作显示为灰色。

专家模式允许高级用户对 Community Edition 服务器上运行的进程拥有更多的控制。缺省情况下,您不能修改关键进程。然而,专家模式选项允许对这些进程拥有完全控制,并且嵌入在前面提到的所有 Portlet 中。下面的示例说明了如何使用 Community Edition 中的专家模式。

  1. 启动管理控制台并使用缺省用户名和密码登录。
  2. Applications 下面,选择 WebAppWARs。正如从图 20 中可以看到的,各个模块的停止、重新启动和卸载命令是灰色的。
    图 20. WebAppWARs Portlet 的缺省显示画面
    WebAppWARs 的缺省显示屏幕快照
  3. 选中 Installed Web Applications 屏幕左上角的 Expert User 复选框。您将看到先前灰色的命令已经启用,如图 21 所示。现在您可以拥有对服务器上安装的所有模块的完全控制。
    图 21. 启用 Expert User 以后的 WebAppWARs Portlet
    专家用户的 WebAppWAR 屏幕快照

监视控制台插件

服务器的运行状况可能非常关键;预测服务器崩溃对于任何运行的应用程序来说都至关重要。一般情况下,这样的服务器崩溃最终会导致大量的故障排除和大量关键数据的丢失。为了避免这样的灾难情形,您需要连续地监视服务器运行状况,并重新配置服务器以使其运行在最佳的水平。这种监视反过来又会提高生产环境的工作效率。为了解决此问题,Community Edition V2.1 管理控制台集成了一个新的 Monitoring 插件,此插件连续地监视各种统计信息,例如:

  • 事务管理器
  • JVM
  • AJP/Web/WebSSL 连接器
  • 线程池
  • Web 应用程序

然而,您应该仅监视所需的组件,而不是监视所有的一切。沿用已久的经验规则是——所监视的组件越多,对服务器性能的影响越大。

Community Edition 的缺省安装预先部署了 Monitoring 插件。这个 Portlet 具有三个窗格:View、Servers 和 Graphs。下面让我们在一个示例的上下文中依次讨论其中每个窗格:

  1. 启动管理控制台,并使用缺省用户名和密码登录。
  2. 在控制台导航区域中,在 Server 下面选择 Monitoring 以启动该 Portlet。您将看到 View、Servers 和 Graphs 窗格。在右侧,您可以看到 +Create View+Add Server+Add Graph,如图 22 所示。您可以使用这些图标来分别添加新的视图、服务器和图表。
    图 22. Monitoring Portlet 的缺省视图
    Monitoring Portlet 的缺省视图屏幕快照

Servers

在能够开始使用 Monitoring 插件之前,我们需要添加服务器。使用此窗格,您可以添加多个 Community Edition 实例,从而允许对多个计算机进行集中监视。下面的步骤说明了如何使用 Monitoring 插件添加服务器:

  1. 单击 Add a Server,如图 23 所示:
    图 23. 在 Monitoring Portlet 中添加服务器
    添加服务器屏幕快照
  2. 在下一个屏幕上,填充如图 24 所示的各个字段,然后单击 Add
    • Name: MyServer
    • IP/Hostname: localhost
    • Protocol: EJB
    • Port: 4201
    • Username: system
    • Password: manager
    图 24. 在 Monitoring Portlet 中配置服务器
    配置 Portlet 屏幕快照
  3. 服务器将被重定向到 Monitoring Portlet 的缺省视图,您将看到一条消息,报告该服务器已成功添加,如图 25 所示。此外,Servers 窗格还有一个名为 MyServer 的新条目。当前该查询的状态为 stopped。单击 +Enable Query 以开始数据的快照收集。
    图 25. 启用数据的快照收集
    启用快照收集屏幕快照
  4. 现在您应该看到该查询的状态为 Online,在此状态下将每隔 5 分钟收集一次快照。您可以通过单击 Actions 下面的 Edit 来修改此间隔。
  5. 在此屏幕上,将 Snapshot Duration 更改为 1 分钟,然后单击 Save。您应该看到一条消息显示“Server has been updated”(服务器已更新)。选择 Monitoring 以返回到该 Portlet 的缺省视图。
    图 26. 编辑现有的服务器配置
    显示如何编辑服务器配置的屏幕快照
  6. 在 Server 窗格中,选择 MyServer 以显示由该服务器监视的各种统计信息。图 27 显示了那些统计信息:
    图 27. 由我们的 MyServer 配置所监视的各种统计信息
    所监视的统计信息的屏幕快照

    下面让我们进一步了解一下该页面上的各个字段和功能:

    • My Server 显示当前配置的状态、添加的时间戳、修改的时间戳、IP 主机名称,以及快照持续时间。
    • Live Statistics 显示当前被监视的各个组件(例如 JVM、Tomcat AJP 连接器、Tomcat Web 连接器、Tomcat Web SSL 连接器、activemq-console-tomcat)。您还可以看到两个受监视的 Web 应用程序:SimpleJSFjsp-examples-war-2.1.0.0。这其中每个应用程序与各个字段相关联。
    • 在右侧,您可以看到 Statistics Collected,其中显示了当前为那些组件收集的统计信息。在每个字段旁边,您可以看到一个 ×,可以使用此图标来停止对某个组件的监视。
    • Statistics Available 窗格显示了可用于包括在当前监视配置中的各个组件。选择 + 可以将组件添加到 Statistics Collected 面板,从而导致服务器开始监视新添加的组件。
    • Actions panel 提供了用于配置当前服务器监视配置的各种选项。
  7. 在同一个屏幕上,可以尝试选择 Live Statistics 下面的某个链接。让我们选择 TomcatAJPConnector 下面的 Busy Threads Max 链接,如图 28 所示。
    图 28. 选择 TomcatAJPConnector 下面的 Busy Thread Max
    选择 Busy Thread Max 的屏幕快照
  8. 此链接启动一个用于为所选属性添加图表的 Portlet,如图 29 所示。这是一种更容易的图表创建方法,因为一些字段已经缺省地填充好了。不过,我们将在下一个部分中了解如何从头创建图表。
    图 29. 通过 MyServer 配置添加图表
    通过 MyServer 添加图表的屏幕快照

Graph

您可以使用此窗格创建自定义的图表。它还允许您对两个统计数据执行诸如加、减、乘、除等数学运算。下面让我们为当前的 MyServer 配置添加一个图表。

  1. 从 Monitoring Portlet 中,选择 +Add Graph,如图 30 所示:
    图 30. 添加图表
    通过 Graph 视图添加图表的屏幕快照
  2. 在下一个屏幕上,填充以下值,如图 31 所示。然后单击 Add
    • Server: MyServer-localhost
    • Name: TomcatAJP_BusyThread
    • Description: This is to monitor the Busy thread Max for Tomcat AJP Connector
    • X Axis label: Busy Threads
    • Y Axis label: Time
    • Timeframe: 5
    • Mbean: TomcatAJPConnector
    • Data series: As-is; Busy Threads Max
    • Math operation: none
    图 31. 填充用于添加图表的表单
    显示图表的值的屏幕
  3. 您将返回到 Monitoring Portlet 的缺省视图,并有一条消息报告该图表已成功添加。选择所添加的图表以显示该图表,如图 32 所示:
    图 32. 显示图表
    显示如何选择图表的屏幕快照

View

由于有许多不同的图表,Community Edition 使用“视图”的概念将相关图表打包在一起,以实现更加可管理的使用。例如,您可以将与特定服务器相关的所有图表或显示服务器吞吐量的所有图表打包在一起。下面让我们逐步了解如何创建视图:

  1. 在 Monitoring Portlet 中,选择 +Create View
  2. 在下一个屏幕上,提供新视图的名称和描述。您还会看到一个 Graphs 字段,其中显示了可用于当前配置的图表列表。到目前为止,我们仅添加了一个图表,因此没有多少图表可供选择。选中复选框并保存配置,如图 33 所示:
    图 33. 配置视图
    配置视图的屏幕快照
  3. 您将返回到 Monitoring Portlet 的缺省视图。选择 MyView 以查看当前配置,其中显示了您添加的图表。
    图 34. 显示 MyView 配置
    选择 MyView 的屏幕快照

WADI 集群

应用程序服务器集群是这样一组服务器,它们像单个服务器一样透明地提供企业服务,例如 Servlet 和 JavaServer Pages (JSP) 支持。这些服务器通常在单独的系统上运行,它们交换消息以同步数据,从而使得任何单独的节点可以处理针对分布式应用程序的请求,以及在其节点发生故障的时候接管用户的会话。将多个服务器配置为集群通常称为集群

目前,Community Edition 使用来自 Apache Tomcat 或 WADI(Web 应用程序分布式基础结构)的会话复制支持来实现集群。

Tomcat 集群具有某些限制。

  • 它们不复制有状态的会话 Enterprise JavaBean (EJB)。您需要在分布式应用程序中避免有状态的会话 EJB。
  • 它们不会将动态更新复制到 Java Naming and Directory Interface (JNDI)。您需要在集群的每个节点中配置您的分布式应用程序使用的所有 JNDI 名称。
  • 它们不会将可分布的 Web 应用程序复制到集群中的其他节点。您需要将可分布的 Web 应用程序部署到每一个节点。

Community Edition V2.1 通过以下方式改进了 Tomcat 集群:

  • 您现在可以将 WADI 与 Community Edition 的 Tomcat 配置一起使用,以支持在多个 Community Edition 服务器之间复制 HTTP 会话状态。
  • 您现在可以将应用程序部署到以管理方式定义的 Community Edition 服务器组,从而使得跨许多 Community Edition 服务器管理单个应用程序变得更加容易。

对于使用 Tomcat Web 容器的配置,您现在可以使用 WADI 来支持 Web 应用程序的集群。要集群这些组件,它们的部署描述符需要使用特定的 XML 元素进行扩充。这些元素定义各种集群参数,用于控制如何在应用程序部署时连接和设置基础 WADI 的组件。

WADI 还提供了机群 的概念:

  • 机群——提供集群范围的 Web 应用程序热部署。在服务器机群中,您通过将应用程序的 WAR 文件仅复制到集群中的一个节点来部署 Web 应用程序。机群负责处理跨整个集群的 Web 应用程序部署。类似地,从单个集群节点删除 WAR 文件将从集群中的所有节点删除该 Web 应用程序。您可以通过单个逻辑部署步骤将某个配置部署到 Community Edition 服务器集群。一旦部署到集群,然后就可以透明地启动、停止或从所有集群成员删除该配置。
  • 机群部署——将某个应用程序部署到已配置的集群成员。

有关更多信息,请参阅关于集群的 Community Edition 文档。


Community Edition Eclipse 插件

Community Edition Eclipse 插件(以下称为 WEP)v2.1 在其建模框架中经历了重大的体系结构更改,从 Eclipse Modelling Framework (EMF) 到 Java Architecture on XML Binding (JAXB)。这样做是为了支持 WEP 的部署计划编辑器中的一些重大改进。因此将来的版本中预期将会推出某些智能编辑器!

此外,WEP v2.1 经过了大量的精简——WEP 内存占用空间从早期版本中的 13 MB 减少到了现在的 5 MB。此外,WEP 包含许多错误修复程序,使得使用 WEP 的体验更加顺利。


其他增强功能

  • 管理控制台现在是基于组件的,以镜像服务器功能。当您创建自定义服务器组装时,只有所选功能或模块使用的对应 Portlet 才会被整合进来。
  • Community Edition V2.1 现在包括对 IBM DB2 8.2、9.1 和 9.5 JDBC 驱动程序的支持,以及 Oracle Real Application Cluster (RAC) 支持。
  • Community Edition V2.1 现在与 Red Hat Fedora 9、Ubuntu 8.04 Long Term Support(LTS) 兼容,并且建议使用 AIX Version 6 Update 1 操作系统。Java 支持包括对 IBM Java 32 位/64 位 SE 5 SR6b 的建议,并兼容 Sun Java 32 位 SE 5 Update 15 或更高版本。
  • 添加了新的示例,包括:
    • Bank——演示 EJB 3.0 会话 Bean、JPA 和 OpenEJB 客户端技术。
    • jms-mdb-sample——演示 EJB 3.0 中的消息驱动 Bean。
    • sendmail——演示 Community Edition 中的邮件会话。
  • Community Edition 控制台已重新设计了新的外观。对管理控制台应用了若干增强功能,以改进用户体验。增强功能包括重命名控制台导航区域左侧窗格中的各个链接以提高可用性,例如在 Server 下面,JVM Portlet 已重命名为 Java System InfoCommon Libs 已重命名为 Repository
  • Community Edition V2.1 中的各个组件模块已经过更新。有关模块的更新列表,请参见表 1
  • Community Edition V2.1 中的 config.xml 现在包括 Tomcat Web 的所有可用属性,以及 AJP 和 SSL 属性。
  • 新的 gbean TomcatClusteringBuilder 帮助提供集群支持。Config-substitution.properties 也经过了修改,以包括诸如 MaxThreadPoolSize、ResourceBindingsQuery、clusterName、ResourceBindingsFormat TmId 等各种新的配置参数。

结束语

正如老话所说的:——“只有探索了所有的可能性之后才会真正变得成熟”。此版本中探索的新选项使得 Community Edition 距离成熟更近了一步。Community Edition 团队进行的三年严格的开发、测试和反馈收集在此版本中得到了回报,并且持续的开发将提供持续的改进。正如我们已经看到的,使用此版本,用户可以使用 GShell 执行所有的 Geronimo 命令,在自己的服务器集的基础上创建多个服务器组装,以及通过专家模式和 Monitoring Portlet 完全控制服务器。Community Edition V2.1 中集成的许多其他功能使得配置、开发、部署和运行应用程序更加容易。我们只是略微谈到了该版本的突出功能。请通过访问参考资料部分列出的站点来详细探索新功能;本文仅只是个开始。

参考资料

学习

获得产品和技术

讨论

条评论

developerWorks: 登录

标有星(*)号的字段是必填字段。


需要一个 IBM ID?
忘记 IBM ID?


忘记密码?
更改您的密码

单击提交则表示您同意developerWorks 的条款和条件。 查看条款和条件

 


在您首次登录 developerWorks 时,会为您创建一份个人概要。您的个人概要中的信息(您的姓名、国家/地区,以及公司名称)是公开显示的,而且会随着您发布的任何内容一起显示,除非您选择隐藏您的公司名称。您可以随时更新您的 IBM 帐户。

所有提交的信息确保安全。

选择您的昵称



当您初次登录到 developerWorks 时,将会为您创建一份概要信息,您需要指定一个昵称。您的昵称将和您在 developerWorks 发布的内容显示在一起。

昵称长度在 3 至 31 个字符之间。 您的昵称在 developerWorks 社区中必须是唯一的,并且出于隐私保护的原因,不能是您的电子邮件地址。

标有星(*)号的字段是必填字段。

(昵称长度在 3 至 31 个字符之间)

单击提交则表示您同意developerWorks 的条款和条件。 查看条款和条件.

 


所有提交的信息确保安全。


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=10
Zone=WebSphere, Open source
ArticleID=339181
ArticleTitle=WebSphere Application Server Community Edition V2.1 中的新增功能
publish-date=09242008