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),而該伺服器具有唯一的連接埠號碼。管理主控台會與特定的 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 的叢集、負載平衡和階段作業持續性功能基本要素。
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 實例是應用程式部署的基礎。每個實例均屬於單一網域,並有自己的目錄結構、配置和已部署的應用程式。每個伺服器實例還包含了 Java EE 平台的 Web 和 EJB 容器。每個新的伺服器實例必須包含對節點代理程式名稱的參考,該名稱定義實例將要駐留的機器。
您無法在開發者網域上建立 Application Server 實例。開發者網域只會自動與預設實例 (server1) 相關聯。若要建立多個實例,需要使用叢集設定檔建立網域。如需有關建立網域的資訊,請參閱指令 create-domain 的線上手冊,或參閱管理主控台線上說明。
您可以建立三類伺服器實例:
在獨立伺服器實例中,其他伺服器實例或叢集並不共用其配置。
在共用伺服器實例中,其他實例或叢集可以共用其配置。
在叢集伺服器實例中,叢集中的其他實例可以共用其配置。
叢集是一組共用相同的應用程式集、資源集和配置資訊集的伺服器實例。伺服器實例可以只屬於一個叢集。叢集用於透過在多台機器上分散負載來增強負載平衡,並透過實例層級的容錯移轉來提供高可用性。
透過 [一般] 標籤可以執行以下作業:
按一下 [啟動實例] 以啟動實例。
按一下 [停止實例] 以停止實例。
按一下 [檢視記錄檔],以開啟伺服器記錄檢視器。
按一下 [自動重建記錄檔],以自動重建實例的記錄檔。
該動作將排程記錄檔以進行自動重建。實際的自動重建將在下一次向記錄檔寫入項目時發生。預設伺服器 (DAS) 的自動重建將立即發生,但其他獨立伺服器的自動重建將延遲。
按一下 [JNDI 瀏覽] 以瀏覽正在執行的實例的 JNDI 樹。
按一下 [恢復作業事件] 以恢復未完成的作業事件。
此外,您可以選取以下標籤以執行其他作業:
[應用程式] 標籤:部署選取的應用程式。
[JVM 設定] 標籤:配置 Application Server 所使用的 JVM 一般設定。
[資源] 標籤:管理選取的資源。
[特性] 標籤:配置實例特定的特性。
[記錄] 標籤:配置 Application Server 所使用的記錄層級。
[監視] 標籤:檢視 JVM、伺服器、執行緒池、HTTP 服務和作業事件服務的監視資料。
[進階] 標籤:設定用於部署應用程式的一般特性。
如果在開發者設定檔上執行管理主控台,則將無法使用 [啟動實例] 選項和 [應用程式] 和 [JVM 設定] 這類標籤。
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-domain 或 create-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 [開始] 功能表中,依次選取 [程式集] -> [Sun Microsystems] -> [Application Server] -> [啟動 Admin Server]。
停止網域將關閉該網域的管理伺服器和 Application Server 實例。停止網域時,伺服器實例將停止接受新的連線,然後等待所有未完成的連線完成。由於伺服器實例必須完成其關閉程序,因此該程序需要幾秒鐘時間。停止網域時,管理主控台或大多數 asadmin 指令都無法使用。
若要停止網域,請鍵入 asadmin stop-domain 指令並指定網域名稱。例如,若要停止預設網域 (domain1),請鍵入以下指令:
$ asadmin stop-domain domain1 |
如果只有一個網域,則網域名稱是選擇性的。如需完整語法,請鍵入 asadmin help stop-domain。
請參閱管理主控台線上說明,透過管理主控台停止網域。
在 [開始] 功能表中,依次選取 [程式集] -> [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 的機器 (machine1)。
一台包含叢集的機器 (machine2),該叢集具有執行應用程式並滿足用戶端需要的伺服器實例。該叢集是使用第一台機器上的 DAS 配置的。
一台備份機器 (machine3),當第一台機器當機時,需要在該備份電腦上重新建立 DAS。
必須保留一份第一台機器上的 DAS 的備份。使用 asadmin backup-domain 來備份目前網域。
以下步驟用於將 Domain Administration Server 從第一台機器 (machine1) 遷移到第三台機器 (machine3):
將 Application Server 安裝在第三台機器上,方法與在第一台機器上安裝時相同。
為了可以在第三台機器上正確地復原 DAS 並且不會發生路徑衝突,您必須執行此操作。
將第一台機器上的備份 ZIP 檔案複製到第三台機器上的 domain-root-dir 目錄中。也可以透過 FTP 方式複製檔案。
執行 asadmin restore-domain 指令,以將 ZIP 檔案復原到第三台機器:
asadmin restore-domain --filename domain-root-dir/sjsas_backup_v00001.zip domain1 |
可以備份任何網域。但是,在重新建立網域時,網域名稱應與原始網域名稱相同。
變更第三台機器上的 domain-root-dir/domain1/generated/tmp 目錄的權限,以與第一台機器上相同目錄的權限相符。
該目錄的預設許可權為:?drwx------? (或 700)。
例如︰
chmod 700 domain-root-dir /domain1/generated/tmp
以上範例假定您備份的是 domain1。如果備份的是其他名稱的網域,則應使用要備份網域的名稱取代上述的 domain1。
變更第三台機器的 domain.xml 檔案中的主機特性值:
更新第三台機器上的 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/>...
將:
<jms-service... host=machine1.../>
變更為:
<jms-service... host=machine3.../>
在 machine3 上啟動復原的網域:
asadmin start-domain --user admin-user --password admin-password domain1 |
在 machine2 上變更節點代理程式下的 DAS 主機特性值。
在 machine2 上變更 as-install/nodeagents/nodeagent/agent/config/das.properties 中的 agent.das.host 特性值。
在 machine2 上重新啟動節點代理程式。
使用 asadmin start-instance 指令啟動叢集實例,以使這些實例與復原網域同步。