節點代理程式是託管伺服器實例的每台機器 (包括託管網域管理伺服器 (DAS) 的機器) 上,都需要的簡易程序。節點代理程式可以:
按照網域管理伺服器的指示啟動、停止、建立和刪除伺服器實例。
重新啟動有故障的伺服器實例。
提供有故障的伺服器的記錄檔檢視。
使每個伺服器實例的本機配置儲存庫與網域管理伺服器的中央儲存庫同步。每個本機儲存庫只包含與該伺服器實例或節點代理程式相關的資訊。
下圖說明了節點代理程式的整體架構:
安裝應用程式伺服器時,依預設將使用該機器的主機名稱建立節點代理程式。必須先在本地機器上手動啟動節點代理程式,該節點代理程式才能執行。
即使未執行節點代理程式,您也可以建立和刪除伺服器實例。但是,節點代理程式必須處於執行狀態,您才能用它來啟動和停止伺服器實例。
如果停止節點代理程式,則該節點代理程式所管理的伺服器實例也將被停止。
一個節點代理程式服務單一網域。如果某台機器託管在多個網域中執行的實例,則該機器必須執行多個節點代理程式。
您可以在缺少現有節點代理程式的情況下,使用節點代理程式預留位置建立和刪除伺服器實例。預留位置是在節點代理程式的本機系統中建立節點代理程式本身之前,在網域管理伺服器 (DAS) 上建立的節點代理程式配置。
當您建立預留位置節點代理程式之後,即可使用其在網域中建立實例。但是在啟動實例之前,您必須先使用 asadmin 指令在實例將要常駐的機器上,直接從本機建立並啟動實際的節點代理程式。請參閱建立節點代理程式和啟動節點代理程式。
另請參閱:
線上部署,如果您知道網域的拓樸並擁有適用於該網域的硬體,請使用線上部署。
離線部署,如果是在設定整個環境之前配置網域和伺服器實例,請使用離線部署。
如果您已經知道網域拓樸並擁有適用於網域的硬體,請使用線上部署。
下圖是離線部署的示意圖:
安裝並啟動網域管理伺服器。啟動並執行之後,便可以進行線上或離線部署。
在將要託管伺服器實例的每台機器上安裝節點代理程式。
使用安裝程式或 asadmin create-node-agent 指令。如果某台機器需要多個節點代理程式,請使用 asadmin create-node-agent 指令來建立這些節點代理程式。
請參閱建立節點代理程式,以取得更多資訊。
使用 asadmin start-node-agent 指令啟動節點代理程式。
啟動之後,節點代理程式將與網域管理伺服器 (DAS) 進行通訊。當節點代理程式到達 DAS 時,將在 DAS 上建立該節點代理程式的配置。具備了配置之後,即可在管理主控台中檢視該節點代理程式。
請參閱啟動節點代理程式,以取得更多資訊。
配置網域:建立伺服器實例、叢集,並部署應用程式。
在配置個別本地機器之前,使用離線部署在網域中部署節點代理程式。
下圖概括了離線部署。
安裝並啟動網域管理伺服器。啟動並執行之後,便可以進行線上或離線部署。
在網域管理伺服器中建立預留位置節點代理程式。
請參閱建立節點代理程式預留位置,以取得更多資訊。
建立伺服器實例和叢集並部署應用程式。
建立伺服器實例時,請確保指定的是未處於使用中的連接埠號。由於是離線完成配置,因此網域無法在建立時檢查連接埠衝突。
在將要託管伺服器實例的每台機器上安裝節點代理程式。
使用安裝程式或 asadmin create-node-agent 指令。節點代理程式的名稱必須與先前建立的預留位置節點代理程式相同。
請參閱建立節點代理程式,以取得更多資訊。
使用 asadmin start-node-agent 指令啟動節點代理程式。
節點代理程式啟動之後,將連結到網域管理伺服器並建立先前已與該節點代理程式相關聯的所有伺服器實例。
請參閱啟動節點代理程式,以取得更多資訊。
由於配置資料儲存在網域管理伺服器的儲存庫 (中央儲存庫) 中,並且快取在節點代理程式的本地機器上,因此這兩者必須同步。使用者必須透過管理工具明確執行動作才能使快取同步。
本小節包含下列主題:
第一次啟動節點代理程式時,該節點代理程式將向網域管理伺服器 (DAS) 傳送一個請求,以獲得中央儲存庫中的最新資訊。當節點代理程式成功地與 DAS 取得聯絡並獲得配置資訊時,該節點代理程式即被連結到該 DAS。
依預設,asadmin start-node-agent 指令將自動啟動遠端伺服器實例,而不會與 DAS 同步。如果您要啟動的遠端伺服器實例已經與 DAS 管理的中央儲存庫同步,請指定 asadmin start-node-agent 指令的 --startinstances=false 選項。然後使用 asadmin start-instance 指令啟動遠端伺服器實例。
如果您在 DAS 上建立了預留位置節點代理程式,則第一次啟動節點代理程式時,該節點代理程式將從 DAS 的中央儲存庫中獲取其配置。初始啟動節點代理程式期間,如果由於沒有執行 DAS 而使該節點代理程式無法連結 DAS,該節點代理程式將停止並保持未連結狀態。
如果在網域中變更了節點代理程式的配置,這些變更將在節點代理程式執行時自動傳送給本地機器中的節點代理程式。
如果在 DAS 中刪除了節點代理程式的一個配置,則下次該節點代理程式進行同步時將自行停止,並將自身標記為待刪除狀態。使用本機 asadmin delete-node-agent 指令手動將其刪除。
如果使用管理主控台或 asadmin 工具明確地啟動伺服器實例,則伺服器實例將與中央儲存庫同步。如果此同步失敗,則伺服器實例不會啟動。
如果節點代理程式啟動伺服器實例的方法並非向管理主控台或 asadmin 工具傳送明確的請求,則該伺服器實例的儲存庫快取不會同步。該伺服器實例將以儲存在其快取中的配置執行。您不能在遠端伺服器實例的快取中增加或移除檔案。
遠端伺服器實例的配置被視為快取 (nodeagents/na1/server1 下的所有檔案) 並由應用程式伺服器擁有。在極少數情況下,如果使用者移除了遠端伺服器實例的所有檔案並重新啟動節點代理程式,則將重新建立遠端伺服器實例 (例如,server1) 並同步所有必需的檔案。
應用程式伺服器將使以下檔案和目錄繼續保持同步。
表 7–1 在遠端伺服器實例之間同步的檔案和目錄
檔案或目錄 |
說明 |
---|---|
applications |
所有已部署的應用程式。此目錄 (及子目錄) 已同步的部分取決於伺服器實例參照的應用程式。節點代理程式不會同步應用程式,因為它沒有參照任何應用程式。 |
config |
包含整個網域的配置檔案。此目錄中的所有檔案均會同步,但執行階段暫存檔案 (例如 admch、admsn、secure.seed、. timestamp 和 __timer_service_shutdown__.dat) 除外。 |
config/config_name |
用於儲存要由所有實例 (使用名為 config_name 的配置) 共用的檔案的目錄。在 domain.xml 中定義的每個配置都會有這樣的目錄。此目錄中的所有檔案均與使用 config_name 的伺服器實例同步。 |
config/config_name/lib/ext |
放置 Java 延伸類別 (如 zip 或 jar 歸檔檔案) 的資料夾。此資料夾供部署到伺服器實例 (使用名為 config_name 的配置) 的應用程式使用。您必須使用 Java 延伸機制載入這些 jar 檔案。 |
docroot |
HTTP 文件根目錄。在即開即用 (out of the box) 配置中,網域中的所有伺服器實例均使用相同的 docroot。需要將虛擬伺服器的 docroot 特性配置為使伺服器實例使用不同的 docroot。 |
generated |
已產生的 Java EE 應用程式檔案和模組檔案,例如 EJB stub、已編譯的 JSP 類別和安全策略檔案。此目錄與 applications 目錄同時同步。因此,僅同步應用程式 (由伺服器實例所參照) 對應的目錄。 |
lib、lib/classes |
可放置共用 Java 類別檔案或者 jar 和 zip 歸檔檔案 (供部署到整個網域的應用程式使用) 的資料夾。您必須使用應用程式伺服器的類別載入器載入這些類別。類別載入器的載入順序為:lib/classes、lib/*.jar、lib/*.zip。 |
lib/ext |
可放置 Java 延伸類別 (例如 zip 或 jar 歸檔檔案,以供部署到整個網域的應用程式使用) 的資料夾。您必須使用 Java 延伸機制載入這些 jar 檔案。 |
您可以使用應用程式的 --libraries 部署時間屬性來指定應用程式的執行階段相依性。
為使程式庫可用於整個網域,可以將 JAR 檔案放在 domain-dir/lib 或 domain-dir/lib/classes 中。(如需更多資訊,請參閱「Sun Java System Application Server Enterprise Edition 8.1 2005Q2 Developer’s Guide」中的「Using the Common Classloader」。)JDBC 驅動程式以及網域中所有應用程式共用的其他公用程式程式庫,通常需要如此。
為了用在整個叢集或整個獨立伺服器中,請將 jar 複製到 domain-dir/domain1/config/xyz-config/lib 目錄中。接下來,將 jar 增加至 xyz-config 的 classpath-suffix 或 classpath-prefix 元素中。這將針對所有使用 xyz-config 的伺服器實例同步 jar。
總而言之:
domains/domain1/lib - 用於整個網域範圍、使用共用類別載入器、自動增加 jar。
domains/domain1/config/cluster1、config/lib - 用於配置範圍、更新 classpath-prefix 或 classpath-suffix。
domains/domain1/config/cluster1、config/lib/ext - 自動增加至 java.ext.dirs。
整個網域中的配置檔案 (位於 domains/domain1/config 下) 都會同步。如果要為獨立伺服器實例 (server1) 使用的 server1-config 自訂 server.policy 檔案,請將修改後的 server.policy 檔案放在 domains/domain1/config/server1-config 目錄下。
此修改後的 server.policy 檔案僅針對獨立伺服器實例 server1 進行同步。請記得更新 jvm-option。例如︰<java-config> ... <jvm-options>-Djava.security.policy=${com.sun.aas.instanceRoot}/config /server1-config/server.policy</jvm-options></java-config>
當環境中有大型應用程式要進行同步或者可用記憶體受到限制時,您可以調整 JVM 選項以限制記憶體的使用。這種調整將減少收到記憶體不足錯誤的可能性。實例同步 JVM 使用的是預設設定,但您可以配置 JVM 選項來變更這些設定。
使用 INSTANCE-SYNC-JVM-OPTIONS 特性設定 JVM 選項。 用於設定特性的指令為:
asadmin set domain.node-agent.node_agent_name.property.INSTANCE-SYNC-JVM-OPTIONS="JVM_options"
例如︰
asadmin set domain.node-agent.node0.property.INSTANCE-SYNC-JVM-OPTIONS="-Xmx32m -Xss2m"
在此範例中,節點代理程式為 node0,JVM 選項為 -Xmx32m -Xss2m。
如需更多資訊,請參閱 http://java.sun.com/docs/hotspot/VMOptions.html。
變更 INSTANCE-SYNC-JVM-OPTIONS 特性後,請重新啟動節點代理程式,因為在節點代理程式的配置中新增或變更特性時節點代理程式並不會自動同步。
如果應用程式需要在由應用程式伺服器同步的目錄 (applications、generated、docroot、config、lib) 中儲存和讀取檔案,請使用 doNotRemoveList 標幟。此屬性接受以逗號分隔的檔案或目錄清單。即使應用程式相關檔案不存在於 DAS 所管理的中央儲存庫中,在伺服器啟動期間也不會移除這些檔案。如果中央儲存庫中存在相同的檔案,則在同步期間將覆寫這些檔案。
使用 INSTANCE-SYNC-JVM-OPTIONS 特性傳入 doNotRemoveList 屬性。
例如︰
<node-agent name="na1" ...>
...
<property name="INSTANCE-SYNC-JVM-OPTIONS" value="-Dcom.sun.appserv.doNotRemoveList=applications/j2ee-modules /<webapp_context>/logs,generated/mylogdir"/>
</node–agent>
每個節點代理程式均有其自己的記錄檔。如果使用節點代理程式時遇到問題,請參閱位於以下位置的記錄檔:
node_agent_dir/node_agent_name/agent/logs/server.log。
有時,節點代理程式記錄會指示您檢視伺服器的記錄,以取得有關所出現問題的詳細訊息。
伺服器記錄位於:
node_agent_dir/node_agent_name/server_name/logs/server.log
node_agent_dir 的預設位置為 install_dir/nodeagents
對於節點代理程式,有些作業必須從執行該節點代理程式的系統上本機執行,而其他作業則可以在網域管理伺服器中執行。需要直接從本機執行的作業,只能在節點代理程式常駐的機器上透過 asadmin 工具來執行。而在網域管理伺服器中執行的作業,可透過管理主控台和 asadmin 工具執行。
下表概括了這些作業以及執行這些作業的位置:
表 7–2 通過管理主控台或是 asadmin 指令都可以執行的作業
作業 |
管理主控台 |
asadmin 指令 |
---|---|---|
在網域管理伺服器中建立節點代理程式預留位置/配置 |
[建立節點代理程式預留位置] 頁面 |
create-node-agent-config |
建立節點代理程式 |
不可用 |
create-node-agent |
啟動節點代理程式 |
不可用 |
start-node-agent |
停止節點代理程式 |
不可用 |
stop-node agent |
從網域管理伺服器中刪除節點代理程式配置 |
[節點代理程式] 頁面 |
delete-node-agent-config |
從本地機器中刪除節點代理程式 |
不可用 |
delete-node-agent |
編輯節點代理程式配置 |
[節點代理程式] 頁面 |
set |
列出節點代理程式 |
[節點代理程式] 頁面 |
list-node-agents |
如需更多資訊,請參閱: