Sun Java System Application Server 9.1 管理指南

Application Server 指令和概念

Application Server 包含一或多個網域。網域是管理界限或環境。每個網域都有一部與之關聯的管理伺服器 (也稱為 Domain Administration Server 或 DAS),並由零個或多個獨立的實例和/或叢集所組成。每個叢集都有一個或多個同質的伺服器實例。伺服器實例是在單一實體機器上執行 Application Server 的單一 Java 虛擬機器 (JVM)。網域中的伺服器實例 (不論是獨立的或是叢集的) 都可在不同的實體主機上執行。

本小節包含下列主題:

網域

網域是一起管理的實例群組。但是,一個 Application Server 實例只能屬於一個網域。除了充當管理界限外,網域還提供基本的安全性結構,不同的管理員可以藉此管理 Application Server 實例的特定群組 (網域)。透過將伺服器實例群組至單獨的網域中,不同的組織和管理員可以共用單一 Application Server 安裝。每個網域都有自己的獨立於其他網域的配置、記錄檔和應用程式部署區域。如果變更某個網域的配置,其他網域的配置不會受到影響。

Sun Java System Application Server 安裝程式會建立預設的管理網域 (名為 domain1)。另外也會建立相關聯的網域管理伺服器 (名為 server)。您必須提供管理伺服器連接埠號碼。預設的管理伺服器連接埠是 4848。安裝程式還會查詢管理使用者名稱和主密碼。安裝之後,還可以建立其他管理網域。

Domain Administration Server (DAS)

每個網域都具有自己的 Domain Administration Server (DAS),而該伺服器具有唯一的連接埠號碼。管理主控台會與特定的 DAS 進行通訊,以管理相關聯的網域。每個管理主控台階段作業都可讓您配置並管理特定的網域。

Domain Administration Server (DAS) 是特別指定的 Application Server 實例,負責主控管理應用程式。DAS 將認證管理員、接受來自管理工具的請求,並與網域中的伺服器實例進行通訊以執行請求。DAS 有時也稱為管理伺服器或預設伺服器。由於它是唯一在 Sun Java System Application Server 安裝時所建立的伺服器實例而且可用於部署,因此被稱為預設伺服器。DAS 即是具有附加管理功能的伺服器實例。

每個管理主控台階段作業都允許您配置並管理單一網域。若建立了多個網域,則必須啟動其他管理主控台階段作業以管理其他網域。為管理主控台指定 URL 時,請務必使用與您要管理的網域相關聯的 DAS 連接埠號碼。

叢集

叢集是共用相同應用程式、資源和配置資訊集的已命名伺服器實例集合。一個伺服器實例只可以屬於一個叢集。叢集透過將負載分散於多部機器上,來實現伺服器實例的負載平衡。叢集透過實例層級的容錯移轉,以達到高可用性的目的。從管理的觀點來看,叢集代表虛擬化的實體,在此實體上,對叢集進行的作業 (如應用程式的部署) 將作用於組成叢集的所有實例上。

節點代理程式

網域中的每個節點都需要簡易代理程式 (例如僅託管 JMX 執行階段),以簡化實例的遠端生命週期管理。其主要目的是依照 DAS 的指示,啟動、停止和建立伺服器實例。節點代理程式也扮演監視程式的角色,並重新啟動失敗的程序。節點代理程式和 DAS 一樣,應只有特定的管理作業才需要,且不需要具有高可用性。不過,節點代理程式為「永遠開啟」的元件,而且必須加以配置,使其由原生 O/S 節點啟動程式啟動 (如 Solaris/Linux inetd,或做為 Windows 服務)。節點代理程式對 DAS 並非必要。

伺服器實例

伺服器實例是與 Java EE 相容的單一 Java 虛擬機器,可在單一節點上主控 Application Server。每個伺服器實例在網域中都有唯一的名稱。叢集的伺服器實例為叢集的成員之一,其所接收的應用程式、資源和配置都來自其父系叢集,以確保叢集中的所有實例都是同質的。非叢集的伺服器實例則不屬於叢集,因此具有獨立的應用程式集、資源和配置。下圖詳細解釋 Application Server 實例。Application Server 實例是 Application Server 的叢集、負載平衡和階段作業持續性功能基本要素。

圖 1–2 Application Server 實例

該圖顯示了伺服器實例功能以及這些功能如何與各種用戶端、資料庫及其他伺服器和系統進行通訊。

Sun Java System Application Server 在安裝時會建立一個稱為 server 的 Application Server 實例。對於許多使用者而言,一個 Application Server 實例就符合他們的需要了。不過,依據您的環境,您可能想建立一個或多個額外的 Application Server 實例。例如,在開發環境下,您可以使用不同的 Application Server 實例來測試不同的 Application Server 配置,或比較和測試不同的應用程式部署。由於您可以輕易增加或刪除 Application Server 實例,因此您可以利用這些實例建立暫時的沙箱區域以進行試驗。

此外,您也可以針對每個 Application Server 實例建立虛擬伺服器。在單一安裝的 Application Server 實例內,您可以為公司或個人提供網域名稱、IP 位址以及某些管理功能。對於使用者而言,看起來好像使用者有自己的 Web 伺服器,但沒有硬體和基本的伺服器維護功能。這些虛擬伺服器並不涵蓋 Application Server 實例。如需有關虛擬伺服器的更多資訊,請參閱第 13 章, 配置 HTTP 服務

在作業部署中,您可以使用虛擬伺服器代替多個 Application Server 實例,用於多種目的。但是,如果虛擬伺服器不能滿足需求,您也可以使用多個 Application Server 實例。若您停止 Application Server 實例,該實例將停止接受新連線,然後等待所有未處理的連線完成。如果您的機器當機或離線,伺服器將結束,其正在處理的任何請求均可能遺失。

定義 Application Server 實例

Application Server 實例是應用程式部署的基礎。每個實例均屬於單一網域,並有自己的目錄結構、配置和已部署的應用程式。每個伺服器實例還包含了 Java EE 平台的 Web 和 EJB 容器。每個新的伺服器實例必須包含對節點代理程式名稱的參考,該名稱定義實例將要駐留的機器。


備註 –

您無法在開發者網域上建立 Application Server 實例。開發者網域只會自動與預設實例 (server1) 相關聯。若要建立多個實例,需要使用叢集設定檔建立網域。如需有關建立網域的資訊,請參閱指令 create-domain 的線上手冊,或參閱管理主控台線上說明。


您可以建立三類伺服器實例:

檢視一般伺服器資訊

透過 [一般] 標籤可以執行以下作業:

此外,您可以選取以下標籤以執行其他作業:


備註 –

如果在開發者設定檔上執行管理主控台,則將無法使用 [啟動實例] 選項和 [應用程式] 和 [JVM 設定] 這類標籤。


Application Server 指令

Application Server 的管理包含多項作業,如網域、叢集、節點代理程式和伺服器實例的建立、配置、控制和管理。本小節包含下列主題:

建立網域

您必須使用 create-domain 指令建立網域。以下範例指令將建立名為 mydomain 的網域。管理伺服器在連接埠 5000 上進行偵聽,管理使用者名稱為 admin。該指令提示您輸入管理密碼和主密碼。


$ asadmin create-domain --adminport 5000 --adminuser admin mydomain

若要為 mydomain 網域啟動管理主控台,請在瀏覽器中輸入以下 URL:


http://hostname:5000

在 Application Server 9.1 中,每個網域都具有一個相關聯的設定檔。如需有關設定檔的資訊,請參閱用法設定檔。您只能在建立期間選擇網域的設定檔。將 --profile 選項與 create-domain 指令搭配使用可指定網域的設定檔。若未使用 --profile 選項來明確指定設定檔,則預設的設定檔會與網域相關聯。asadminenv.conf 檔案中的 AS_ADMIN_PROFILE 變數,可定義預設的設定檔。


注意 – 注意 –

除非您具有 HADB 和 Network Security Services (NSS) 金鑰庫,否則請勿建立企業網域。除非您具有 HADB 和 NSS,否則將無法啟動企業網域。


對於前面的 create-domain 範例,網域的記錄檔、配置檔案和部署的應用程式現在常駐於以下目錄中:

domain-root-dir/mydomain

若要在其他位置建立網域目錄,請指定 --domaindir 選項。如需指令的完整語法,請鍵入 asadmin help create-domaincreate-domain(1)

刪除網域

使用 asadmin delete-domain 指令可刪除網域。僅具有網域管理權限的作業系統使用者 (或 root 使用者) 才能成功地執行該指令。例如,若要刪除名為 mydomain 的網域,請鍵入以下指令:


$ asadmin delete-domain mydomain

列出網域

使用 asadmin list-domains 指令可找到在機器中建立的網域。若要列出預設 domain-root-dir 目錄中的網域,請鍵入以下指令:


$ asadmin list-domains

若要列出在其他目錄中建立的網域,請指定 --domaindir 選項。

啟動網域

啟動網域時,將啟動管理伺服器和 Application Server 實例。啟動 Application Server 實例之後,Application Server 實例將持續執行、偵聽並接受請求。必須單獨啟動各個網域。

若要啟動網域,請鍵入 asadmin start-domain 指令並指定網域名稱。例如,若要啟動預設網域 (domain1),請鍵入以下指令:


$ asadmin start-domain --user admin domain1

如果只有一個網域,則可以省略網域名稱。如需完整的指令語法,請鍵入 asadmin help start-domain。如果省略了密碼資料,系統將提示您提供此資料。

在 Windows 上啟動預設網域

在 Windows [開始] 功能表中,依次選取 [程式集] -> [Sun Microsystems] -> [Application Server] -> [啟動 Admin Server]。

停止網域

停止網域將關閉該網域的管理伺服器和 Application Server 實例。停止網域時,伺服器實例將停止接受新的連線,然後等待所有未完成的連線完成。由於伺服器實例必須完成其關閉程序,因此該程序需要幾秒鐘時間。停止網域時,管理主控台或大多數 asadmin 指令都無法使用。

若要停止網域,請鍵入 asadmin stop-domain 指令並指定網域名稱。例如,若要停止預設網域 (domain1),請鍵入以下指令:


$ asadmin stop-domain domain1

如果只有一個網域,則網域名稱是選擇性的。如需完整語法,請鍵入 asadmin help stop-domain

請參閱管理主控台線上說明,透過管理主控台停止網域。

在 Windows 上停止預設網域

在 [開始] 功能表中,依次選取 [程式集] -> [Sun Microsystems] -> [Application Server] -> [停止 Admin Server]。

重新啟動網域

重新啟動伺服器與重新啟動網域相同。若要重新啟動網域或伺服器,請停止然後再啟動網域。

建立叢集

叢集是使用 create-cluster 指令建立的。以下範例建立了一個名為 mycluster 的叢集。管理伺服器主機是 myhost,伺服器連接埠是 1234,而管理使用者名稱是 admin。該指令提示您輸入管理密碼。


$ asadmin create-cluster --host myhost --port 1234 --user admin mycluster

如需完整語法,請鍵入 asadmin help create-cluster

啟動叢集

叢集是使用 start-cluster 指令啟動的。以下範例啟動了名為 mycluster 的叢集。該指令提示您輸入管理密碼。


$ asadmin start-cluster --host myhost --port 1234 --user admin mycluster

如需完整語法,請鍵入 asadmin help start-cluster

停止叢集

叢集是使用 stop-cluster 指令停止的。以下範例停止了名為 mycluster 的叢集。該指令提示您輸入管理密碼。


$ asadmin stop-cluster --host myhost --port 1234 --user admin mycluster

myhost 是管理伺服器主機,1234 是管理連接埠,admin 則是管理使用者名稱。

如需完整語法,請鍵入 asadmin help stop-cluster。停止某叢集後,即會停止該叢集中的所有伺服器實例。沒有伺服器實例的叢集無法啟動。

建立節點代理程式

節點代理程式是使用 create-node-agent 指令建立的。以下範例將建立一個名為 mynodeagent 的節點代理程式。管理伺服器主機是 myhost,管理伺服器連接埠是 1234,而管理使用者名稱是 admin。此指令通常會提示您輸入管理密碼,但是,當未指定 --savemasterpassword 選項或此選項為 false 時,指令就不會提示您輸入管理密碼。


$ asadmin create-node-agent --host myhost --port 1234 --user admin mynodeagent

如需完整語法,請鍵入 asadmin help create-node-agent

啟動節點代理程式

節點代理程式是透過使用 start-node-agent 指令並指定節點代理程式名稱啟動的。例如,若要啟動節點代理程式 mynodeagent,請鍵入下列指令:


$ asadmin start-node-agent --user admin mynodeagent

如需完整語法,請鍵入 asadmin help start-node-agent

停止節點代理程式

節點代理程式是透過使用 stop-node-agent 指令並指定節點代理程式名稱停止的。例如,若要停止節點代理程式 mynodeagent,請鍵入下列指令:


$ asadmin stop-node-agent mynodeagent

如需完整語法,請鍵入 asadmin help stop-node-agent

啟動實例

伺服器實例是使用 start-instance 指令啟動的。以下範例啟動了名為 myinstance 的伺服器實例。該指令提示您輸入管理密碼。


$ asadmin start-instance --host myhost --port 1234 --user admin myinstance

管理伺服器主機是 myhost,管理連接埠是 1234,而管理使用者名稱是 admin。伺服器實例 myinstance 可以加入叢集,也可以保持獨立。

如需完整語法,請鍵入 asadmin help start-instance

停止實例

您必須使用 stop-instance 指令停止伺服器實例。以下範例停止了名為 myinstance 的伺服器實例。該指令提示您輸入管理密碼。


$ asadmin stop-instance --host myhost --port 1234 --user admin myinstance

管理伺服器主機是 myhost,管理連接埠是 1234,而管理使用者名稱是 admin。伺服器實例 myinstance 可以加入叢集,也可以保持獨立。

如需完整語法,請鍵入 asadmin help stop-instance

重新啟動實例

若要重新啟動伺服器實例,請先停止然後再啟動實例。

重新建立網域管理伺服器

若要進行鏡像並提供網域管理伺服器 (DAS) 的工作副本,您必須具有:


備註 –

必須保留一份第一台機器上的 DAS 的備份。使用 asadmin backup-domain 來備份目前網域。


Procedure遷移 DAS

以下步驟用於將 Domain Administration Server 從第一台機器 (machine1) 遷移到第三台機器 (machine3):

  1. 將 Application Server 安裝在第三台機器上,方法與在第一台機器上安裝時相同。

    為了可以在第三台機器上正確地復原 DAS 並且不會發生路徑衝突,您必須執行此操作。

    1. 使用指令行 (互動) 模式來安裝 Application Server 管理套裝軟體。若要啟動指令行互動式模式,請使用 console 選項呼叫安裝程式:


      ./bundle-filename -console

      若要使用指令行介面進行安裝,您必須具有 root 許可權。

    2. 若要安裝預設網域,請取消選取該選項。

      只有具有相同架構且安裝路徑完全相同 (即兩台機器使用相同的 as-installdomain-root-dir) 的兩台機器,才支援復原備份的網域。

  2. 將第一台機器上的備份 ZIP 檔案複製到第三台機器上的 domain-root-dir 目錄中。也可以透過 FTP 方式複製檔案。

  3. 執行 asadmin restore-domain 指令,以將 ZIP 檔案復原到第三台機器:


    asadmin restore-domain --filename domain-root-dir/sjsas_backup_v00001.zip domain1

    可以備份任何網域。但是,在重新建立網域時,網域名稱應與原始網域名稱相同。

  4. 變更第三台機器上的 domain-root-dir/domain1/generated/tmp 目錄的權限,以與第一台機器上相同目錄的權限相符。

    該目錄的預設許可權為:?drwx------? (或 700)。

    例如︰

    chmod 700 domain-root-dir /domain1/generated/tmp

    以上範例假定您備份的是 domain1。如果備份的是其他名稱的網域,則應使用要備份網域的名稱取代上述的 domain1

  5. 變更第三台機器的 domain.xml 檔案中的主機特性值:

  6. 更新第三台機器上的 domain-root-dir/domain1/config/domain.xml

    例如,搜尋 machine1 並將其替代為 machine3。這樣,您就可以將:

    <jmx-connector><property name=client-hostname value=machine1/>...

    變更為:

    <jmx-connector><property name=client-hostname value=machine3/>...
  7. 將:

    <jms-service... host=machine1.../>

    變更為:

    <jms-service... host=machine3.../>
  8. 在 machine3 上啟動復原的網域:


    asadmin start-domain --user admin-user --password admin-password domain1
  9. 在 machine2 上變更節點代理程式下的 DAS 主機特性值。

  10. 在 machine2 上變更 as-install/nodeagents/nodeagent/agent/config/das.properties 中的 agent.das.host 特性值。

  11. 在 machine2 上重新啟動節點代理程式。


    備註 –

    使用 asadmin start-instance 指令啟動叢集實例,以使這些實例與復原網域同步。