Sun GlassFish Enterprise Server 2.1 版本說明

高可用性

本節說明已知的高可用性資料庫 (HADB) 問題以及相關的解決方案。

負載平衡器外掛程式運作狀態檢查在背景產生大量連線/中斷連線 (負載) (6453946)

說明

負載平衡器外掛程式運作狀態檢查在背景產生大量連線/中斷連線 (負載)。為了執行運作狀況檢查,runDaemonMonitor 執行緒會針對每個應用程式伺服器偵聽程式執行連線/中斷連線。這樣可能導致 Enterprise Server 上出現連線飽和的狀況。

解決方案

已為 loadbalancer.xml 檔案開發新屬性 monitor-interval-in-seconds。若已為負載平衡器外掛程式配置數百個偵聽程式,則可利用此屬性在連線/中斷連線事件之間插入暫停。預設暫停值為 0。

具有雙網路的 HADB 配置 (無 ID)

在兩個子網路上配置為具有雙網路的 HADB,在 Solaris SPARC 上工作正常。然而,我們發現由於作業系統的問題或同一硬體平台上的網路驅動程式,Solaris x86 與 Linux 平台並不總能正確處理雙網路。這將引起 HADB 的以下問題:

HADB 資料庫建立失敗 (無 ID)

說明

建立新資料庫可能失敗並顯示以下錯誤,表示可用的共用記憶體區段不足:

HADB-E-21054: System resource is unavailable: HADB-S-05512: Attaching shared memory segment with key "xxxxx" failed, OS status=24 OS error message: Too many open files.

解決方案

驗證是否已配置共用記憶體,以及配置是否能夠正常工作。尤其,在 Solaris 8 上,檢視檔案 /etc/system,並檢查變數 shmsys: shminfo_shmseg 的值是否至少為每個主機上節點數目的六倍。

hadbm set 不會檢查資源可用性 (磁碟與記憶體空間) (5091280)

說明

當使用 hadbm set 增加裝置或緩衝區大小時,管理系統會在建立資料庫或增加節點時檢查資源可用性,但不會在裝置或主記憶體緩衝區大小變更時檢查是否有足夠的可用資源。

解決方案

增加任何 devicesizebuffersize 配置屬性之前,驗證所有的主機上是否有足夠的可用磁碟/記憶體空間。

不支援 packagepath 的異質性路徑 (5091349)

說明

不可能在不同主機的不同位置使用相同名稱註冊同一套裝軟體,例如:


hadbm registerpackage test --packagepath=/var/install1 --hosts europa11
Package successfully registered.
hadbm registerpackage test --packagepath=/var/install2 --hosts europa12
hadbm:Error 22171: A software package has already been registered with 
the package name test.

解決方案

HADB 不支援資料庫叢集中跨節點的不同路徑。請確定 HADB 伺服器安裝目錄 (--packagepath) 在所有參與的主機上均相同。

hadbm createdomain 可能失敗 (6173886、6253132)

說明

當在具有多個網路介面的主機上執行管理代理程式時,如果部分網路介面不在同一個子網路中,則 createdomain 指令可能失敗:


hadbm:Error 22020: The management agents could not establish a 
domain, please check that the hosts can communicate with UDP multicast.

管理代理程式將 (如果未另行配置) 使用「第一個」介面進行 UDP 多重播送 (由 java.net.NetworkInterface.getNetworkInterfaces() 的結果定義「第一個」為何)。

解決方案

最佳解決方案是告訴管理代理程式要使用的子網路 (在配置檔案中設定 ma.server.mainternal.interfaces,例如 ma.server.mainternal.interfaces=10.11.100.0)。另一種方法是,將子網路間的路由器配置為路由多重播送資料封包 (管理代理程式使用多重播送位址 228.8.8.8)。

嘗試管理代理程式的新配置之前,您必須清除管理代理程式儲存庫。停止網域中的所有代理程式,並刪除儲存庫目錄 (透過管理代理程式配置檔案中的 repository.dr.path 所指定) 中的所有檔案與目錄。必須先在所有主機上完成此作業,方可使用新配置檔案重新啟動代理程式。

啟動、停止和重新配置 HADB 可能會失敗或當機 (6230792、6230415)

說明

在 Solaris 10 作業系統上,使用 hadbm 指令啟動、停止或重新配置 HADB 可能會失敗或當機,並顯示下列錯誤之一:


hadbm:Error 22009: The command issued had no progress in the last 
300 seconds.
HADB-E-21070: The operation did not complete within the time limit, 
but has not been cancelled and may complete at a later time.

當讀取/寫入 clu_noman_srv 程序使用的檔案 (nomandevice) 不一致時,可能發生此情況。可透過在 HADB 歷史檔案中尋找以下訊息來偵測此問題:


n:3 NSUP INF 2005-02-11 18:00:33.844 p:731 Child process noman3 733 
does not respond.
n:3 NSUP INF 2005-02-11 18:00:33.844 p:731 Have not heard from it in 
104.537454 sec.
n:3 NSUP INF 2005-02-11 18:00:33.844 p:731 Child process noman3 733 
did not start.

解決方案

由於無法手動再現此問題,因此下列的解決方法尚未經過驗證。但是,對受影響的節點執行此指令應該可以解決此問題。


hadbm restartnode --level=clear nodeno dbname

請注意,該節點的所有裝置均會被重新初始化。重新初始化之前,您可能必須停止節點。

管理代理程式終止,並顯示異常 "IPV6_MULTICAST_IF 失敗" (6232140)

說明

在安裝了數張 NIC 卡並執行 Solaris 8 的主機上啟動時,如果混插啟用 IPv6 和啟用 IPv4 的卡,則會終止管理代理程式,並出現異常「IPV6_MULTICAST_IF 失敗」。

解決方案

將環境變數 JAVA_OPTIONS 設定為 -Djava.net.preferIPv4Stack=true,例如:


export JAVA_OPTIONS="-Djava.net.preferIPv4Stack=true"

或者,使用 Solaris 9 或更新的版本,其不會出現此問題。

clu_trans_srv 無法中斷 (6249685)

說明

64 位元版本的 Red Hat Enterprise Linux 3.0 有一個錯誤,使得 clu_trans_srv 程序在執行非同步 I/O 時進入無法中斷的模式。這表示強制結束 -9 不起作用,必須重新啟動作業系統。

解決方案

使用 32 位元版本的 Red Hat Enterprise Linux 3.0。

hadbm 不支援包含大寫字母的密碼 (6262824)

說明

將密碼儲存在 hadb 中時,密碼中的大寫字母會被轉換為小寫字母。

解決方案

不使用含有大寫字母的密碼。

從 HADB 版本 4.4.2.5 降級至 HADB 版本 4.4.1.7 會導致管理代理程式失敗,並顯示不同的錯誤代碼 (6265419)

說明

當降級至舊的 HADB 版本時,管理代理程式可能會失敗,並顯示不同錯誤代碼。

解決方案

雖然可以降級 HADB 資料庫,但是如果已變更了儲存庫物件,則管理代理程式可能無法降級。降級後,必須使用最新版的 HADB 中的管理代理程式。

安裝/移除與 symlink 保留 (6271063)

說明

關於安裝/移除 HADB c 套裝軟體 (Solaris: SUNWhadbc,Linux: sun-hadb-c) 版本 <m.n.u-p>symlink /opt/SUNWhadb/<m> 自建立後將永遠不會變更。因此,可能存在孤立的 symlink

解決方案

如果不使用,請在安裝之前或解除安裝之後刪除 symlink

全域區域和本機區域中的管理代理程式可能會衝突 (6273681)

說明

在 Solaris 10 上,使用 ma-initd 程序檔停止全域區域中的管理代理程式時,也會停止本機區域中的管理代理程式。

解決方案

不同時在全域區域和本機區域中安裝管理代理程式。

當階段作業物件在 MA 處逾時並刪除時,hadbm/ma 應該顯示更準確的錯誤訊息 (6275103)

說明

有時,伺服器上的資源競爭狀態問題可能會導致管理用戶端連線中斷。重新連線後,可能會傳回不正確的錯誤訊息 "hadbm: Error 22184: A password is required to connect to the management agent"

解決方案

有時,伺服器上的資源競爭狀態問題可能會導致管理用戶端連線中斷。重新連線後,可能會傳回不正確的錯誤訊息 "hadbm: Error 22184: A password is required to connect to the management agent"

檢查該伺服器上是否存在資源問題,並採取適當措施 (例如,增加更多資源),然後重試該作業。

非超級使用者不能管理 HADB (6275319)

說明

使用 Java Enterprise System (以超級使用者的身份) 安裝 HADB 後不允許非超級使用者管理 。

解決方案

始終以超級使用者身份登入以管理 HADB。

管理代理程式不應該使用特殊用途的介面 (6293912)

說明

不應將包含 0.0.0.0 之類 IP 位址的具有特殊用途的介面註冊為管理代理程式中的 HADB 節點所使用的有效介面。如果透過使用者使用主機名稱而非 IP 位址發出 hadbm create 指令,在此類介面上設定 HADB 節點,則註冊此類介面可能會導致問題發生。之後節點將無法通訊,並導致 create 指令掛機。

解決方案

當在包含多重介面的主機上使用 hadbm create 時,請始終使用 DDN 表示法明確指定 IP 位址。

在 Windows 上出現重新組合故障 (6291562)

說明

在 Windows 平台上,由於某些配置和負載,作業系統中可能會出現大量的重新組合故障。在具有多於二十個節點的配置平行執行數個表掃描 (select *) 時,曾發生此問題。此問題表現為作業事件頻繁中斷、修復或回復需較長時間才能完成,以及多種系統零件可能會頻繁逾時。

解決方案

若要修正此問題,可將 Windows 登錄變數 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters 設定為大於預設值 100 的值。建議您將此值提高到 0x1000 (4096)。如需更多資訊,請參閱 Microsoft 支援網頁的文章 811003

如果瀏覽器的另一個 Cookie 帶有 / 路徑,則無法維護階段作業狀態 (6553415)

說明

Cookie 的路徑如果等於「/」,則與高可用性 Web 應用程式 (使用記憶體中複製做為持續性類型) 部署在「/」以外環境根目錄中的 Cookie 相衝突,使得高可用性 Web 應用程式無法保留任何 HTTP 階段作業狀態。當使用同一個瀏覽器同時存取管理 GUI (在「/」中部署) 和高可用性 Web 應用程式時,通常會發生這種狀況。

解決方案

使用其他瀏覽器存取在「/」中部署的 Web 應用程式。

負載平衡器無法與 IIS 6 配合使用;as-install/lib 下缺少 SASL32.DLLZLIB.DLL (6572184)

說明

負載平衡器必須有 SASL32.DLLZLIB.DLL 檔案,才能搭配 Windows IIS 6。這些檔案目前不在 as-install/lib 中。

解決方案

手動將兩個 DLL 檔案複製到 as-install/lib。可以從以下位置下載這兩個檔案︰


http://download.java.net/javaee5/external/OS/aslb/jars/

其中 OS 表示所需的平台,它可以是以下任何一個值:

全域區域中存在 DAS 建立/啟動和 HA 套裝軟體傳遞問題 (6573511)

說明

在全域區域中透過高可用性套裝軟體安裝或解除安裝 Enterprise Server 時,會出現兩個問題︰

  1. HA 套裝軟體會安裝在所有區域中 ,但執行者不一定希望如此。

  2. 當解除安裝時,所有區域的 HA、MQ、JDK 等套裝軟體也會遭到移除,執行者也不一定希望如此。

從本機根區域中執行安裝或解除安裝動作時,便不會出現此問題。

解決方案

從本機根區域而非全域區域執行安裝和解除安裝。

在「/」中部署的高可用性 Web 應用程式無法繼續記憶體中複製的 HTTP 階段作業 (問題追蹤代碼 2972)

說明

當「/」中部署的高可用性 Web 應用程式使用記憶體中複製做為其持續性類型時,它們無法維護任何 HTTP 階段作業。

解決方案

將使用記憶體中複製做為其持續性類型的高可用性 Web 應用程式部署到「/」以外的環境根目錄中。如果您要使此類 Web 應用程式位於「/」下,應該將其指定為部署了 Web 應用程式之虛擬伺服器的預設 Web 模組。

AS 負載平衡器安裝程式未將 /usr/lib/mps 路徑置於 apachectl LD_LIBRARY_PATH 下,因此無法啟動 Apache SSL (6591878)

說明

在 Solaris 上安裝適用於 Apache 的 Enterprise Server 負載平衡程式時,安裝程式將更新 apachectl 程序檔中的 LD_LIBRARY_PATH。但是,安裝程式不會正確地寫入 /usr/lib/mps 路徑。在 Solaris 上,如果此路徑不在 LD_LIBRARY_PATH 下,Apache 安全性實例便不會啟動。

解決方案

此問題只在 Solaris 平台上存在。若要解決此問題,請將 /opt/SUNWappserver/appserver/lib/lbplugin/lib 增加至 LD_LIBRARY_PATH

針對實例/叢集啟用/停用負載平衡器應該顯示正確的狀態 (6595113)

說明

在 [叢集/實例] 一般頁面上,無論 domain.xml 中儲存何種內容,[啟用負載平衡] 按鈕始終處於啟用狀態。

解決方案

AS9.1 EE IFR b58f/JES5 UR1。無法安裝 Registry Server,因為偵測到「未完成的」HA(6602508)。

說明

(僅適用於 Solaris) 在帶有 HADB 的 SPARC Solaris 10 上安裝 Enterprise Server 2.1 之後,啟動 Enterprise Server 並嘗試安裝帶有 Registry Server 的 JES 5 UR 1 時可能顯示以下錯誤︰


Dependency Error:  Installation can not proceed because the version of HA
Session Store 4.4.3 detected on this host is incomplete , and a compatible
version is required by Servervice Registry Deployment Support.

解決方案

在 Solaris 機器上,不能使用 Enterprise Server 2.1 IFR 從 JES 5 UR1 安裝 Registry Server。Registry Server 套裝軟體必須使用 pkgadd 指令從以下 JES5 UR1 發行目錄手動安裝︰


path/OS/Products/registry-svr/Packages

Internet Explorer 6.0/7.0 瀏覽器特有的問題︰匯出負載平衡器配置檔案時丟出錯誤 (6516068)

說明

(僅適用於 Internet Explorer 6 與 7) 當嘗試從 Internet Explorer 6 或 7 匯出負載平衡器配置檔案 (loadbalancer.xml) 時,瀏覽器顯示錯誤訊息,表示無法找到 sun-loadbalancer_1_2.dtd DTD 檔案。

解決方案

若要儲存該檔案,請使用以下解決方案︰

  1. 在 Internet Explorer 中的 [負載平衡器] 頁面上,按一下 [匯出]

    將顯示「無法顯示 XML 頁面」訊息。

  2. 按一下錯誤訊框,然後在 Internet Explorer 中選擇 [檔案] -> [另存新檔]

  3. loadbalancer.xml 檔案儲存到您選擇的目錄。