歡迎您光臨本站 註冊首頁

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

←手機掃碼閱讀     火星人 @ 2014-03-12 , reply:0
  
探索 WebSphere® Application Server Community Edition V2.1 中的新增功能,包括使用 Gshell 執行 Geronimo 命令、在您自己的伺服器集基礎上創建多個伺服器組裝,以及通過專家模式和新的 Monitoring Portlet 完全控制伺服器的能力。此版本是對已經是功能最強大的可用開放源代碼應用程序伺服器的改進。

引言

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.0 V2.1
activeio-core 3.0.0-incubator 3.0.1
activemq-core 4.1.1 4.1.2
activemq-ra 4.1.1 4.1.2
annogen 0.1.0 0.1.0
ant NA 1.7.0
ant-launcher NA 1.7.0
asm 2.2.3 2.2.3
asm-commons 2.2.3 2.2.3
aspectjrt NA 1.5.3
axiom 1.2.5 1.2.5
axiom-api 1.2.5 1.2.5
axiom-dom 1.2.5 1.2.5
axiom-impl 1.2.5 1.2.5
axis 1.4 1.4
axis2 1.3 1.3
axis2-adb 1.3 1.3
axis2-java2wsdl 1.3 1.3
axis2-jaxws 1.3 1.3
axis2-jaxws-api 1.3 1.3
axis2-kernel 1.3 1.3
axis2-metadata 1.3 1.3
axis2-saaj 1.3 1.3
backport-util-concurrent 2.2 2.2
bcel 5.2 5.2
castor 1.0.5 1.0.5
catalina 6.0.13 6.0.16
c atalina-ha 6.0.13 6.0.16
cglib- nodep 2.1_3 2.1_3
Commons- beanutils 1.7.0 1.7.0
Commons- cli 1.0 1.0
Commons- codec 1.3 1.3
Commons- collections 3.2 3.2
Commons- digester 1.8 1.8
Commons- discovery 0.4 0.4
Commons- el 1.0 1.0
Commons- fileupload 1.1.1 1.1.1
Commons- httpclient 3.0.1 3.0.1
Commons- io 1.2 1.2
Commons- jexl 1.1 1.1
Commons- lang 2.3 2.3
Commons- logging 1.0.4 1.0.4
Commons- logging- api NA 1.0.4
coyote 6.0.13 6.0.16
derby 10.2.2.0 10.2.2.0
derbyclient 10.2.2.0 10.2.2.0
derbynet 10.2.2.0 10.2.2.0
derbytools 10.2.2.0 10.2.2.0
dwr 1.1.4 2.0.3
geronimo-activation_1.1_spec 1.0 1.0.2
geronimo-annotation_1.0_spec 1.1 1.1.1
geronimo-connector 2.0.1 2.1.1
geronimo-ejb_3.0_spec 1.0 1.0.1
geronimo-el_1.0_spec 1.0 1.0.1
geronimo-j2ee-connector_1.5_spec 1.1.1 2.0.0
geronimo-j2ee-management_1.1_spec 1.0 1.0.1
geronimo-jacc_1.1_spec 1.0 1.0.1
geronimo-javaee-deployment_1.1MR3_spec 1.0 1.0
geronimo-javamail_1.4_mail 1.2 1.4
geronimo-jaxr_1.0_spec 1.1 2.0.0
geronimo-jaxrpc_1.1_spec 1.1 2.0.0
geronimo-jms_1.1_spec 1.1 1.1.1
geronimo-jpa_3.0_spec 1.1 1.1.1
geronimo-jsp_2.1_spec 1.0 1.0.1
geronimo-jta_1.1_spec 1.1 1.1.1
geronimo-saaj_1.3_spec NA 1.0.0
geronimo-schema-j2ee_1.4 1.2 1.2
geronimo-schema-jee_5 1.1 1.1
geronimo-servlet_2.5_spec 1.1 1.2
geronimo-stax-api_1.0_spec 1.0 1.0.1
geronimo-transaction 2.0.1 2.1.1
geronimo-ws-metadata_2.0_spec 1.1.1 1.1.2
groovy-all -minimal NA 1.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
howl 1.0.1-1 1.0.1-1
httpcore 4.0-alpha5 4.0-alpha5
geroimo-interceptor_3.0_spec 1.0 1.0.1
jasper 6.0.13 6.0.16
jasper-el 6.0.13 6.0.16
jasper-jdt 6.0.13 6.0.16
jaxb-api 2.0 2.0
jaxb-impl 2.0.5 2.0.5
jaxb-xjc 2.0.5 2.0.5
jaxen 1.1-beta-10 1.1-beta-11
jaxws-rt 2.0 2.0
jaxws-tools 2.0 2.0
jcl104-over-slf4j NA 1.4.3
jline NA 0.9.94
jstl 1.2 1.2
juddi 0.9rc4 0.9rc4
juli 6.0.13 6.0.16
juli-adapters 6.0.13 6.0.16
log4j 1.2.14 1.2.14
myfaces-api 1.2.0 1.2.2
myfaces-impl 1.2.0 1.2.2
neethi 2.0 2.0
ognl 2.6.9 2.6.9
openejb 3.0-beta-1 3.0
openejb-axis 3.0 3.0
openejb-client 3.0 3.0
openejb-core 3.0 3.0
openejb-ejbd 3.0 3.0
openejb-javaagent 3.0 3.0
openejb-jee 3.0 3.0
openejb-loader 3.0 3.0
openejb-server 3.0 3.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.3 1.4
scout 1.0rc1 1.0rc1
serp 1.11.0 1.11.0
slf4j-api NA 1.4.3
slf4j-jcl NA 1.4.3
slf4j-log4j12 NA 1.4.3
swizzle-stream 1.0.1 1.0.1
tomcat 6.0.13 6.0.16
tranql 1.3 1.4
tranql-connector-derby-client-local 1.3 1.4
tranql-connector-derby-client-xa 1.3 1.4
tranql-connector-derby-embed-local 1.3 1.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


  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


  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.xml 和 openejb-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


  4. 在下一個屏幕中,單擊 Browse 並選擇 jsp-examples-war-2.1.0.0.war。單擊 Configure,如圖 9 所示:

    圖 9. 選擇用於創建部署計劃的 Web 存檔


  5. 下一個屏幕為我們的環境提供了 Web 應用程序標識和類路徑配置建議。您可以將 WebContextRoot 設置為 PlanCreatorTest,並將其餘的值保留為預設值,如圖 10 所示。單擊 Next。

    圖 10. 配置 Web 應用程序標識和類路徑


  6. 下一個屏幕顯示了用於安全領域和角色映射的配置。為 role1 欄位選擇 Principal 。Name 和 Class 欄位隨即出現。將其命名為 TestUser,並為 Class 選擇 User Principal ,如圖 11 所示。單擊 Add。

    圖 11. 選擇類


    您現在應該看到已添加到部署計劃的 Principal、Name 和 Class,如圖 12 所示:



    圖 12. 配置 role1 的角色映射


  7. 接下來為 tomcat 欄位選擇 Principal。將其命名為 TestGroup,並為 Class 欄位選擇 Group Principal。選擇 Add,如圖 13 所示。

    圖 13. 配置 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


  2. 您應該看到一條消息,表明我們的 Web 應用程序已成功部署。選擇 Launch Web App 以啟動該 Web 應用程序,如圖 15 所示:

    圖 15. 啟動 Web 應用程序


  3. 從圖 16 中可以看到,該應用程序使用上下文根 PlanCreatorTest 啟動。然而,原始部署計劃(與 Web 應用程序打包在一起的部署計劃)的上下文根為 jsp-examples。

    圖 16. 使用上下文根 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

要使用 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 的預設顯示畫面


  3. 選中 Installed Web Applications 屏幕左上角的 Expert User 複選框。您將看到先前灰色的命令已經啟用,如圖 21 所示。現在您可以擁有對伺服器上安裝的所有模塊的完全控制。

    圖 21. 啟用 Expert User 以後的 WebAppWARs Portlet






監視控制台插件

伺服器的運行狀況可能非常關鍵;預測伺服器崩潰對於任何運行的應用程序來說都至關重要。一般情況下,這樣的伺服器崩潰最終會導致大量的故障排除和大量關鍵數據的丟失。為了避免這樣的災難情形,您需要連續地監視伺服器運行狀況,並重新配置伺服器以使其運行在最佳的水平。這種監視反過來又會提高生產環境的工作效率。為了解決此問題,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 的預設視圖


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 中配置伺服器


  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 應用程序:SimpleJSF 和 jsp-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


  8. 此鏈接啟動一個用於為所選屬性添加圖表的 Portlet,如圖 29 所示。這是一種更容易的圖表創建方法,因為一些欄位已經預設地填充好了。不過,我們將在下一個部分中了解如何從頭創建圖表。

    圖 29. 通過 MyServer 配置添加圖表


Graph

您可以使用此窗格創建自定義的圖表。它還允許您對兩個統計數據執行諸如加、減、乘、除等數學運算。下面讓我們為當前的 MyServer 配置添加一個圖表。

  1. 從 Monitoring Portlet 中,選擇 +Add Graph,如圖 30 所示:

    圖 30. 添加圖表


  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 配置
     


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 Info,Common 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 中集成的許多其他功能使得配置、開發、部署和運行應用程序更加容易。我們只是略微談到了該版本的突出功能。請通過訪問參考資料部分列出的站點來詳細探索新功能;本文僅只是個開始。 (責任編輯:A6)



[火星人 ] WebSphere Application Server Community Edition V2.1 中的新增功能已經有1009次圍觀

http://coctec.com/docs/linux/show-post-69048.html