Sun Java logo     上一頁     

Sun logo
Sun Java System Application Server Enterprise Edition 8.1 2005Q1 

設置高可用性防故障備用

使用上一章中使用的配置時,如果伺服器實例出現故障,使用者會遺失階段作業狀態。本小節是兩個進階主題中的第二個,提供用於安裝高可用性資料庫 (HADB)、建立高可用性叢集以及測試 HTTP 階段作業持續性的步驟。

Application Server 支援 HTTP 階段作業持續性和有狀態階段作業 Bean 的持續性。本章中的程序適用於 HTTP 階段作業持續性。

本章假設您在執行其中的步驟之前已執行了本快速入門前面小節中的步驟。這些步驟以您應遵照完成的順序列出。


備註

完成此小節可能需要其他硬體資源。



關於高可用性叢集和 HADB

Sun Java System Application Server Enterprise Edition 中的高可用性叢集將狀態複製服務與之前建立的叢集和負載平衡程式整合,以啟用 HTTP 階段作業的防故障備用。

HttpSession 物件和有狀態階段作業 Bean 狀態儲存在 HADB (用於儲存階段作業狀態的高可用性資料庫) 中。可以獨立於 Application Server 層之外來管理此可水平延伸的狀態管理服務。其旨在使用負載平衡、防故障備用和狀態回復能力支援高達 99.999% 的服務和資料可用性。

Application Server 不承擔狀態管理職責,這具有顯著優勢。Application Server 實例在其生命週期內做為可延伸且高效能的 Java™ 2 Platform, Enterprise Edition (J2EE™ 平台) 容器執行,並將狀態複製委託給外部高可用性狀態服務。由於採用此鬆耦合架構,因此可以輕鬆將 Application Server 實例增加至叢集或從叢集中刪除。HADB 狀態複製服務可以獨立延伸,以取得最佳可用性和效能。如果 Application Server 實例還執行複製,J2EE 應用程式的效能可能會降低,並且資源回收暫停時間也可能會變長。

由於每個 HADB 節點均需要 512 MB 的記憶體,因此需要 1 GB 的記憶體才能在同一機器上執行兩個 HADB 節點。如果記憶體不足,請將每個節點設置在不同機器上。建議部署時不要僅在一台主機上執行雙節點資料庫,因為這種配置不具有容錯能力。


HADB 安裝前步驟

此程序包含最常見的安裝前作業。如需有關其他安裝前主題 (包括安裝 HADB 的先決條件、配置網路備援以及檔案系統支援) 的資訊,請參閱「High Availability Administration Guide」。

  1. 取得 root 存取權限。
  2. 定義與共用記憶體相關的變數。
  3. 在 Solaris 系統中:

    1. 將以下行增加至 /etc/system 檔案 (或者,如果這些行做為註釋存在於該檔案中,則對其取消註釋,並確定值與以下值相符):
    2. set shmsys:shminfo_shmmax=0x80000000

      set shmsys:shminfo_shmseg=20

      set semsys:seminfo_semmni=16

      set semsys:seminfo_semmns=128

      set semsys:seminfo_semmnu=1000

      shminfo_shmmax 設定為系統中的記憶體總和 (在十六進制表示法中,顯示 0x80000000 值表示 2 GB 的記憶體)。

      如果已定義 seminfo_* 變數,請以顯示的數量為增量遞增這些值。

    3. 使用以下指令重新開機:
    4. sync; sync; reboot

      在 Linux 系統中:

    5. 將以下行增加至 /etc/sysctl.conf 檔案 (或者,如果這些行做為註釋存在於該檔案中,則對其取消註釋)。將值設定為機器上的實體記憶體容量。將值指定為十進位位元組數。例如,對於一台具有 512 MB 實體記憶體的機器:
    6. kernel.shmmax=536870912

      kernel.shmall=536870912

    7. 使用以下指令重新開機:
    8. sync; sync; reboot

  4. 如果在安裝獨立的 Application Server 時使用了現有的 JDK 軟體,HADB 將需要 Sun JDK 1.4.1_03 或更高版本 (如需有關 JDK 版本的最新資訊,請參閱「版本說明」)。檢查已安裝的版本,並將 JAVA_HOME 環境變數設定為 JDK 的安裝目錄(如果尚未設定)。
  5. 如有必要,請在重新開機後重新啟動網域、Web Server 和節點代理程式。
  6. 若要重新啟動網域,請使用 asadmin start-domain domain1 指令。

    若要重新啟動 Web Server,請使用 web_server_install_dir/https-hostname/start 指令。

    若要重新啟動節點代理程式,請使用 asadmin start-node-agent hostname 指令。使用執行 Application Server 的主機的名稱替代變數 hostname


安裝 HADB

本小節提供安裝高可用性資料庫 (HADB) 的步驟。


備註

如果計劃在 Application Server 機器上執行高可用性資料庫,並且在安裝 Application Server 時已安裝了 HADB,請跳至啟動 HADB


如果您的電腦具有 2 GB 記憶體和 1 至 2 個 CPU,則可將 HADB 元件與 Application Server 系統安裝在同一台機器上。如果不符合以上條件,請使用其他硬體。例如︰

若要安裝 HADB,請:

  1. 執行 Application Server 或 Java Enterprise System 安裝程式。
  2. 在 [元件選取] 頁面中,選擇要用於安裝 HADB 的選項。
  3. 在您的主機上完成安裝。


啟動 HADB

本小節說明透過執行 ma-initd 程序檔啟動 HADB 管理代理程式。對於生產部署,將管理代理程式做為服務啟動以確保其可用性。如需更多資訊,請參閱「High Availability Administration Guide」。

如果要啟動在多台主機上都具有 HADB 節點的資料庫,請在每台主機上啟動管理代理程式。

在 Java Enterprise System 安裝中︰

  1. 變更至 etc/init.d 目錄:
  2. cd /etc/init.d

  3. 執行以下指令以啟動代理程式:
  4. ./ma-initd start

在獨立的 Application Server 安裝中:

  1. 變更至 Application Server 安裝中的 HADB bin 目錄:
  2. cd install_dir/hadb/4/bin

  3. 執行以下指令以啟動代理程式:
  4. ./ma-initd start


配置叢集和應用程式,使其具有高可用性

  1. 從執行 Domain Administration Server 的機器上,使用以下指令將 FirstCluster 配置為使用 HADB:
  2. asadmin configure-ha-cluster --hosts hadb_hostname,hadb_hostname --devicesize 256 FirstCluster

    使用要執行 HADB 的機器之主機名稱替代 hadb_hostname 變數。如果僅使用一台機器,則必須將其命名兩次。

    該簡化範例在同一機器上執行兩個 HADB 節點。在生產設定中,請使用多台機器。


    備註

    若要減少 HADB 的記憶體佔用空間以便進行演示,請執行以下 hadbm 指令。系統將提示您輸入管理密碼。

      在 Java Enterprise System 安裝中︰

      /opt/SUNWhadb/4/bin/hadbm set DataBufferPoolSize=64,LogBufferSize=25 FirstCluster

      在獨立的 Application Server 安裝中:

      install_dir/hadb/4/bin/hadbm set DataBufferPoolSize=64,LogBufferSize=25 FirstCluster


  3. 透過啟用高可用性來配置用於 HTTP 階段作業持續性的 clusterjsp 應用程式:
    1. 在 Admin Console 中,展開 [應用程式] 節點
    2. 展開 [企業應用程式]。
    3. 按一下 [clusterjsp]。
    4. 在右窗格中的 [一般] 標籤上,按一下 [啟用可用性] 核取方塊。
    5. 按一下 [儲存]。
    6. 依預設,可用性已在伺服器實例和容器層級啟用。


重新啟動叢集

若要重新啟動叢集,請:

  1. 在 Admin Console 中,展開 [叢集] 節點。
  2. 按一下 [FirstCluster]。
  3. 在右窗格中,按一下 [停止實例]。
  4. 實例停止後,按一下 [啟動實例]。


驗證 HTTP 階段作業防故障備用

測試階段作業資料防故障備用的步驟與「驗證負載平衡」主題中所述的測試負載平衡的步驟類似。此時,階段作業資料已在失敗後被保留。防故障備用不需使用者設定,因為範例應用程式已配置為在失敗後自動重試。

  1. 若要顯示 clusterjsp 應用程式的首頁,請在瀏覽器中鍵入以下 URL:
  2. http://localhost:web_server_port/clusterjsp

    使用執行 Web Server 之系統的名稱替換 localhost 變數。

    使用 web_server_install_dir/https-hostname/config/server.xml 中的 LS 元素之連接埠屬性值替換 web_server_port 變數。在此範例中使用連接埠 38000。

    螢幕會顯示一個類似您在「驗證叢集應用程式」小節看到的頁面。

  3. 檢查顯示的階段作業和主機資訊。例如︰
    • 從伺服器執行:localhost
    • 伺服器連接埠號:38000
    • 執行的伺服器的 IP 位址:192.18.145.133
    • 階段作業 ID:41880f618e4593e14fb5d0ac434b1
    • 建立的階段作業:Wed Feb 23 15:23:18 PST 2005
    • 檢視伺服器存取記錄檔,以確定哪個 Application Server 實例處理該應用程式。記錄檔位於:

    • Solaris Java Enterprise System 安裝︰
      /var/opt/SUNWappserver/nodeagents/nodeagent_name/i1/logs/access/server_access_log
      /var/opt/SUNWappserver/nodeagents/nodeagent_name/i2/logs/access/server_access_log
    • Linux Java Enterprise System 安裝︰
      /var/opt/sun/appserver/nodeagents/nodeagent_name/i1/logs/access/server_access_log
      /var/opt/sun/appserver/nodeagents/nodeagent_name/i2/logs/access/server_access_log
    • 獨立的 Application Server 安裝:
      install_dir/nodeagents/nodeagent_name/i1/logs/access/server_access_log
      install_dir/nodeagents/nodeagent_name/i2/logs/access/server_access_log
  4. 停止正在處理此頁面的 Application Server 實例。
    1. 在 Admin Console 的左窗格中展開 [叢集]。
    2. 按一下 [FirstCluster]。
    3. 在右窗格中,按一下 [實例] 標籤。
    4. 按一下處理請求的伺服器實例旁的核取方塊,然後按一下 [停止] 按鈕。
  5. 重新載入 clusterjsp 範例應用程式頁面。
  6. 階段作業 ID 以及階段作業屬性資料已保留。

  7. 檢查另一個 Application Server 實例的存取記錄,會發現現在是此實例在處理請求。

狀態防故障備用功能工作正常,因為 HTTP 階段作業已永久儲存於 HADB 中。除 HTTP 階段作業狀態之外,Application Server 還可在 HADB 中儲存 EJB™ 企業 Bean 狀態。


清除

若要清除,您可以透過完成選擇 1:解除安裝您安裝的產品中的步驟解除安裝 Application Server,或者您可以透過完成選擇 2:移除範例叢集中的步驟簡單地刪除範例叢集。

選擇 1:解除安裝您安裝的產品

若要完全解除安裝,請:

  1. 使用以下指令停止 Application Server 程序:
  2. asadmin stop-cluster FirstCluster

    asadmin remove-ha-cluster --hosts hadb_hostname,hadb_hostname FirstCluster

    使用要執行 HADB 的機器之主機名稱替代 hadb_hostname 變數。如果您僅要使用一台機器,則必須為其命名兩次。

    asadmin stop-node-agent hostname

    asadmin stop-domain domain1

  3. 使用以下方法之一停止 HADB 管理代理程式:
  4. 在 Java Enterprise System 安裝中︰

    1. 變更至 /etc/init.d 目錄:
    2. cd /etc/init.d

    3. 執行以下指令以停止代理程式:
    4. ./ma-initd stop

      在獨立的 Application Server 安裝中:

    5. 變更至 Application Server 安裝中的 HADB bin 目錄:
    6. cd install_dir/hadb/4/bin

    7. 執行以下指令以停止代理程式:
    8. ./ma-initd stop

      此時,所有與 Sun Java System Application Server 相關的程序已停止。

  5. 解除安裝 Application Server。
  6. 在 Java Enterprise System 安裝中,請執行 var/sadm/prod/entsys/uninstall,然後執行解除安裝精靈中的步驟。

    在獨立的 Application Server 安裝中,請執行 install_dir/uninstall,然後執行解除安裝精靈中的步驟。

  7. 如果您已為本練習建立新的 Web Server 實例,請將其刪除:
    1. 登入 Web Server 的 Administration Console。
    2. 停止實例。
    3. 刪除實例。
  8. 若要解除安裝 Web Server 產品,請從 Web Server 安裝目錄中執行解除安裝程式。

選擇 2:移除範例叢集

若僅要移除本練習中使用的 FirstCluster (高可用性範例叢集) 和範例應用程式,請:

  1. 停止 Application Server 程序並清除配置:
  2. asadmin stop-cluster FirstCluster

    asadmin remove-ha-cluster --hosts hadb_hostname,hadb_hostname FirstCluster

    使用要執行 HADB 的機器之主機名稱替代 hadb_hostname 變數。如果您僅要使用一台機器,則必須為其命名兩次。

    asadmin disable-http-lb-server FirstCluster

    asadmin delete-http-lb-ref --config MyLbConfig FirstCluster

    asadmin delete-http-lb-config MyLbConfig

    asadmin delete-instance i1

    asadmin delete-instance i2

    asadmin delete-cluster FirstCluster

    asadmin undeploy clusterjsp

  3. 停止用做負載平衡程式的 Web Server:
  4. web_server_install_dir/https-hostname/stop

  5. web_server_install_dir/https-hostname/config 中的 loadbalancer.xml 檔案重新命名為 loadbalancer.xml.sav
  6. 使用以下方法之一停止 HADB 管理代理程式:
  7. 在 Java Enterprise System 安裝中︰

    1. 變更至 /etc/init.d 目錄:
    2. cd /etc/init.d

    3. 執行以下指令以停止代理程式:
    4. ./ma-initd stop

      在獨立的 Application Server 安裝中:

    5. 變更至 Application Server 安裝中的 HADB bin 目錄:
    6. cd install_dir/hadb/4/bin

    7. 執行以下指令以停止代理程式:
    8. ./ma-initd stop

在本小節中,您已安裝、配置和啟動了 HADB,並已將叢集和應用程式配置為使用高可用性。您還進行了清除,以便您的系統可以進行其他工作。

恭喜!您現在已完成了 Application Server 的快速入門。


其他可用資源

另提供了有關瞭解和使用 Application Server 的其他資源,包括:



上一頁     


文件號碼 819-1257。   Copyright 2004-2005 Sun Microsystems, Inc. 版權所有。