1. 程式人生 > >一個WAS應用上如何部署多個應用(記錄待驗證)

一個WAS應用上如何部署多個應用(記錄待驗證)

WebSphere Network Deployment 遷移概述 
可使用遷移向導或遷移命令執行 WebSphere 遷移。儘管遷移向導提供了一個將配置檔案遷移到預設位置的標準方法,但遷移命令可用於將配置檔案遷移到安裝樹以外的位置。

圖 1. 遷移向導

在叢集生產環境中,系統管理員將使用遷移命令(即 WASPreUpgrade 和 WASPostUpgrade)作為在自動指令碼中遷移應用程式和配置的首選方式。這些工具從 WebSphere Application Server Network Deployment V6 複製現有的配置,包括舊的預設值和埠、JVM 引數等設定,並將它們合併到新的 WebSphere Application Server Network Deployment V7 配置中。

WASPreUpgrade 命令建立一個 WebSphere Application Server V6 配置資訊的備份,然後,WASPostUpgrade 命令提取由 WASPreUpgrade 建立的備份,將以前的配置移動​​到 WebSphere Application Server V7 中。WASPostUpgrade 工具在進行任何更改之前還會建立一個 WebSphere Application Server V7 環境的備份,因為如果發生錯誤,它會嘗試回滾這些變更。

圖 2. 使用 WASPreUpgrade 和 WASPostUpgrade 命令的遷移過程

遷移過程同步被遷移的節點與部署管理器中的資料,在此過程中,新的配置檔案的配置內容被上傳到部署管理器,一次上傳一個檔案。

在遷移過程中,相同的埠值預設情況下會從 V6.0 Deployment Manager 對映到 V7.0 Deployment Manager,包括 SOAP 聯結器。在這個過程中,WASPostUpgrade 通過使用 -replacePorts 引數可以糾正可能發生的任何埠衝突。

大型 WebSphere 網路部署拓撲
WebSphere 網路部署拓撲包括部署管理器以及一個或多個節點,應用程式伺服器駐留在節點上,以執行應用程式。大型部署拓撲通常包含數百個應用伺服器或多個節點。舉一個例子,節點和伺服器均衡搭配的大型網路部署拓撲可能有 30 個節點,每個節點有 ​20 個伺服器,或者其中的節點更多、伺服器更少,可能有 60 個節點,每個節點有 ​20 個伺服器,均由一個部署管理器進行管理。再舉一個例子,包含部署管理在內的稍大型部署拓撲可能是,其中有 25 個節點,每個節點至少有一個應用程式伺服器。然而出於本練習的目的,在隨後的段落中將介紹一個在叢集環境中相對較小但複雜的拓撲。

本遷移練習的複雜拓撲
按照以下步驟,針對本次生產中的遷移練習建立一個複雜的拓撲:

在叢集環境中,一個部署管理器管理 8 個 AIX
伺服器節點
,每個節點管理 2 個 WebSphere Application Server 例項。換句話說,叢集中將有 1 個部署管理器,8 個節點代理和 16 個 WebSphere Application Server 例項。部署管理器伺服器和應用程式伺服器都是虛擬伺服器。還有一個接受管理的 WebSphere Application Server 與部署管理器駐留在同一個 AIX 伺服器上。帶有 Message Driven Beans (MDB) 的 J2EE 應用程式被部署在獨立的應用伺服器 - WAS(MDB)。圖 3. 本遷移練習的複雜 WebSphere 部署拓撲

複雜拓撲的運營管理
從部署管理器(如 DMGR1)到單個應用程式伺服器的管理請求通過部署管理器流到與伺服器所駐留的同一節點上的節點代理,最後到應用伺服器本身。 部署管理器只和節點代理通訊,每一個節點代理與其各自的應用伺服器進行通訊,如 WAS1 或 WAS(MDB)。

環境
WebSphere Application Server Network Deployment V6.0.2 (現有的)。WebSphere Application Server Network Deployment V7.0.0.13 (新的)。AIX 6.1IBM CICS® 3.2LDAPIBM DB2®WebSphere MQ V6在 WebSphere Application Server V6 中關閉了 Global security (全域性安全性)。WebSphere Application Server V7.0 的 Deployment Manager 上的安全性在遷移時被禁用。遷移計劃
在 WebSphere Application Server Network Deployment V7 上建立配置檔案:
Deployment Manager 配置檔案 – 一個部署管理器,管理在其單元中聯合的應用程式伺服器。 Application Server 配置檔案:
在叢集環境中的 Application Servers 聯合到一個單元中。 Application Server,獨立於叢集的應用程式伺服器,由部署管理器管理。 將部署管理器從 WebSphere Application Server Network Deployment V6 遷移到 V7。將叢集應用程式伺服器的節點從 WebSphere V6 遷移到新的 V7,並將它與新的 WebSphere Application Server Network Deployment V7 部署管理器聯合。遷移獨立的應用程式伺服器與 MDB
J2EE
應用程式。網路部署遷移前的考慮因素
除了 WebSphere Application Server V6 的二進位制檔案和配置檔案之外,需要分配足夠的檔案系統空間來滿足 WebSphere Application Server V7 的二進位制檔案和配置檔案。需要設定許可權允許在 WebSphere 和 Update Installer 的二進位制檔案系統上進行讀、寫或建立。需要安裝 WebSphere Application Server Network Deployment V7 產品,並按拓撲建立配置檔案(部署管理器和應用程式伺服器)。部署管理器 WebSphere V7 需要正常執行,因為聯合節點遷移需要一個連線到部署管理器的活動連線。在 WebSphere V7 應用程式伺服器上的任何遷移嘗試中止,都需要通過還原配置檔案的備份,或重新建立配置檔案來清理配置檔案,然後再進行下一次遷移嘗試。請參閱 “如何清理失敗的遷移” 一節。遷移步驟
遷移所需的實用工具和命令可以在 WebSphere V7 bin 目錄中找到,如 '/usr/Websphere/AppServer/v7.0_app1/bin'。在使用 WASPreUpgrade 和 WASPostUpgrade 命令時,可能會在命令列語法中指定 -traceString 引數,以跟蹤程式碼。本練習所執行的遷移命令及引數是:

清單 1. WASPreUpgrade 命令
/usr/WebSphere/AppServer/v7.0_MNQ/bin >> ./WASPreUpgrade.sh
/waslogs/was6_to_was7/migration/migration_ABCD_MNQ_app01_026
/usr/Websphere/AppServer/v6.0_MNQ
-oldProfile ABCD_MNQ_app01
-traceString "*=all=enabled"
-traceFile /waslogs/was6_to_was7/trace/WASPreUpgrade_trace.log升級前的步驟可能成功完成,也可能因某些問題而失敗(在隨後的段落中將單獨介紹)。

清單 2. manageprofiles 命令
/usr/WebSphere/AppServer/v7.0_MNQ/bin >> ./manageprofiles.sh
-create -profileName ABCD_MNQ_temp
-profilePath /var/opt/websphere/profiles/ABCD_MNQ _temp
-cellName ABCD_MNQ_cell01
-portsFile /tmp/ports_file.txt -hostName 026 -nodeName ABCD_MNQ_app01_026manageprofiles 命令將建立一個配置檔案。

清單 3. WASPostUpgrade 命令
/usr/WebSphere/AppServer/v7.0_MNQ/bin >> ./WASPostUpgrade.sh
/waslogs/was6_to_was7/migration/migration_ ABCD_MNQ_app01_026
-oldProfile ABCD_MNQ_app01
-profileName ABCD_MNQ_temp
-traceString "*=all=enabled"
-traceFile /waslogs/was6_to_was7/trace/WASPostUpgrade_trace.log升級後的步驟可能成功完成,也可能因某些問題而失敗(在隨後的段落中將單獨介紹)。

問題及其解決方法
問題:使用 MIGR0484E/MIGR0272E 遷移應用程式伺服器時,WASPreUpgrade 遷移命令失敗。

清單 4. 使用 MIGR0484E/MIGR0272E 遷移失敗
IBM WebSphere Application Server, Release 7.0
Product Upgrade PreUpgrade tool, Version 1.0
Copyright IBM Corp., 1997-2008
MIGR0300I: The migration function is starting to save the existing
Application Server environment.
MIGR0302I: The existing files are being saved.
MIGR0484E: No profiles or instances found with name ABCD_MNQ_app01.
MIGR0001I: The class name of the WASPreUpgrade command is WASPreUpgrade
MIGR0272E: The migration function cannot complete the command.在遷移失敗之前執行的步驟是:

WebSphere Application Server V7 Deployment Manager 啟動正常執行,並且 WebSphere Application Server V6 節點代理和應用程式伺服器已停止。Deployment Manager 已成功從 WebSphere Application Server V6 遷移到 V7。解決方法:為了對該失敗進行疑難解答,請通過 ps-ef|grep java 命令的幫助,確保 WebSphere Application Server V6 的 wasprofile 命令沒有執行。還需要確保配置檔案登錄檔中引用了 ABCD_MNQ_app01 配置檔案,可以在檔案 profileRegistry.xml 中檢查這一點,該檔案位於 '/usr/WebSphere/AppServer/v6.0_MNQ/properties'。

清單 5. ProfileRegistry.xml 檔案
profile isDefault="true" name="ABCD_MNQ_app01"
path="/var/opt/websphere/profiles/ABCD_MNQ_app01"
template="/usr/Websphere/AppServer/v6.0_MNQ/profileTemplates/managed"另外,請確認不存在 'profileRegistry.xml_LOCK 檔案。

確認所有上述條件後,請注意,ABCD_MNQ_app01 配置檔案未在 fsdb 目錄中引用,並且由於這個原因造成遷移失敗。需要將下面的指令碼複製到目錄 WAS_HOME Directory /properties/fsdb 中。

清單 6. 複製到 fsdb 目錄的指令碼
#!/bin/sh
WAS_USER_SCRIPT=/var/opt/websphere/profiles/ABCD_MNQ_app01/bin/setupCmdLine.sh
export WAS_USER_SCRIPT執行該步驟之後,遷移命令成功執行。

問題:使用 MIGR0286E 時,WASPostUpgrade 遷移命令失敗,原因是 Illegal State Exception。

清單 7. 使用 MIGR0286E 時遷移失敗,原因是 java.lang.IllegalStateException
DSRA7602I: Attempting to delete newly created Derby database
/var/opt/websphere/profiles/ABCD_MNQ_app701/databases/ABCD_MNQ_app01_027.
ABCD_MNQ_app01_027_s01-ImmediateBatchBus_027_s01_122132600_

CLOUDSCAPE_MIGRATION_DELETION_DONE
java.lang.IllegalStateException: java.lang.IllegalStateException:
Depth value 3 must be set
at com.ibm.ws.runtime.component.VariableMapImpl.reload(VariableMapImpl.java:238)
at com.ibm.ws.runtime.component.VariableMapImpl.refresh(VariableMapImpl.java:152)...
at com.ibm.ws.migration.postupgrade.WASPostUpgrade.restore(WASPostUpgrade.java:246)
at com.ibm.ws.migration.postupgrade.WASPostUpgrade.main(WASPostUpgrade.java:539)

Caused by: com.ibm.websphere.management.exception.RepositoryException:
com.ibm.websphere.management.filetransfer.client.TransferFailedException:
Error occurred during upload to: upload/cells/ABCD_MNQ _cell01/nodegroups/
DefaultNodeGroup/nodegroup.xml.
Exception: java.io.IOException: Read error

Caused by: java.io.IOException: Read error
at java.io.FileInputStream.read(FileInputStream.java:191)
at com.ibm.ws.management.repository.TempFileInputStream.read
(TempFileInputStream.java:91)
at com.ibm.websphere.management.repository.RepositoryInputStream.read
(RepositoryInputStream.java:120)...
at com.ibm.ws.management.filetransfer.client.FileTransferClientImpl.uploadFile
(FileTransferClientImpl.java:302)
.. 30 more

MIGR0286E: The migration failed to complete.解決方法:遷移中同步程序失敗了,因為系統使用者在 AIX 環境中缺少
檔案控制代碼
。將 AIX nofiles 限制設定(即,ulimit-n)從預設的 2000 增加到 10000,從而解決這個問題。

問題:將叢集應用伺服器從 WebSphere Application Server ND V6 遷移到 V7 時,部署管理器似乎在尋找其他應用程式伺服器配置,但它無法找到,併發生了遷移失敗。

解決方法:在本練習特定的這個複雜拓撲中,獨立的應用程式伺服器與部署管理器 (DMGR1) 位於相同的 AIX 伺服器上,該應用程式伺服器的遷移需要在叢集應用伺服器的遷移之後進行。決定以這個特定的順序執行遷移,從而解決了這個遷移問題。

問題:因明顯的 “網路連線復位” 或 “網路讀錯誤” 造成遷移失敗。在遷移過程中的檔案上傳期間,網路連線被複位,這導致檔案上傳失敗。同步程序向遷移工具報告了失敗,遷移工具中止遷移操作。在其他時間,同步程序報告網路讀錯誤,從而導致遷移操作中止。這是在處理與第一次嘗試所不同的檔案時發生。看來,節點和部署管理器之間的網路連線在遷移發生時被中斷。

解決方法:初看起來,這似乎是一個網路問題,因為部署管理器切斷了連線,遷移節點只能感知其連線莫名其妙地被中止。不需要考慮網路問題,因為部署管理器伺服器和故障的應用伺服器都是在虛擬機器管理程式中的虛擬伺服器。事實上,遷移工具的傳入資料使部署管理器的連線達到飽和,並且部署管理器達到了對在該通道允許的開放連線數所設定的上限。我們注意到,在部署管理器的 SystemOut 日誌中,TCP Channel 'TCP_1' 已經超過了配置的最大開放連線數量 100。

下圖說明了這個設定:

圖 4. WC_adminhost 埠上的 TCP 通道的最大開放連線數

圖 5. WC_adminhost_secure 埠上的 TCP 通道的最大開放連線數

這個問題解決方法是,在遷移練習中將 WC_adminhost 和 WC_adminhost_secure 埠的 TCP 通道的最大開放連線數從 100 提高到 20000。

問題:作為遷移驗證的一部分,應用程式伺服器在啟動時就出現了問題,'ibmasyncrsp' 程序無法啟動。

清單 8. 系統應用程式 'ibmasyncrsp' 無法啟動
00000021 ApplicationMg A WSVR0200I: Starting application: ibmasyncrsp
00000021 ApplicationMg A WSVR0203I:
Application: ibmasyncrsp Application build level: 1 [2]
00000020 ApplicationMg A WSVR0200I: Starting application: MNQ_v3.30_HF11
ApplicationMg A WSVR0204I: Application: MNQ_v3.30_HF11
Application build level: Unknown
00000021 FfdcProvider W com.ibm.ws.ffdc.impl.FfdcProvider logIncident FFDC1003I:
FFDC Incident emitted
00000021 DeployedAppli W WSVR0206E: Module, ibmasyncrsp.war, of application,
ibmasyncrsp.ear/deployments/ibmasyncrsp, failed to start
00000021 ApplicationMg W WSVR0101W: An error occurred starting, ibmasyncrsp
00000021 ApplicationMg A WSVR0217I: Stopping application: ibmasyncrsp
00000021 FfdcProvider W com.ibm.ws.ffdc.impl.FfdcProvider logIncident FFDC1003I:
FFDC Incident emitted解決方法:在本練習中,在開始遷移之前,已經通過 Admin Console 將“default_host” 的定義從 'default_host' 修改為 'MNQ_default_host',並且已為應用程式更新了 Virtual Host 對映。但是,在遷移之後,系統應用程式似乎仍引用 'default_host' 而不是 'MNQ_default_host',並且 Application Server 啟動跟蹤顯示 “open for e-business, problems occurred during startup”。

經確定,系統安裝了應用程式 ibmasyncrsp.ear,它用於接收 SIBus 中的非同步訊息,Web 服務執行時已被對映到預設主機 'default_host',而不是所需的 'MNQ_default_host' 虛擬主機。

清單 9. 已安裝了應用程式 'ibmasyncrsp.ear' 的系統的對映
profile_root>/config/cells/ELN1_mwp_cell01/applications/ibmasyncrsp.ear
/deployments/ibmasyncrsp/ibmasyncrsp.war/WEB-INF/ibm-web-bnd.xmi

com.ibm.ejs.models.base.bindings.webappbnd:WebAppBinding
xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI"
xmlns:com.ibm.ejs.models.base.bindings.webappbnd="webappbnd.xmi"
xmi:id="WebAppBinding_1155152745161" virtualHostName="default_host"因為無法從 Admin Console 訪問 WebSphere 應用程式 ('ibmasyncrsp.ear'),所以更新檔案 ibm-web-bnd.xml,指向選定的虛擬主機 'MNQ_default_host'。

通過這一修改,這個問題得到了解決,並且應用伺服器的啟動過程沒有再出現任何問題。

問題:遷移後,如果沒有啟用 FIPS(美國聯邦資訊處理標準演算法),在 WebSphere Application Server V6 中所使用的 TLS (傳輸層安全性)密碼將不能在 WebSphere Application Server V7 中使用,啟用 FIPS 可以重新建立 MDB 應用程式伺服器和WebSphere MQ V6 之間的連線。

解決方法:需要識別 WebSphere Application Server V7 和 WebSphere MQ V6 中都能使用的密碼,並且不需要啟用 FIPS。在 WebSphere MQ V6 中提供的 SSL(安全套接字層)CipherSpecs 使用的名稱與 WebSphere Application Server V7 中的密碼不同,從而對相容的密碼進行比較。在 “SSL configurations” 中的 “Quality of protection (QoP) settings”,需要 WebSphere Application Server V7 配置更改。還需要修改通道上的 WebSphere MQ V6 SSL 配置,以使用新的密碼。

如何清理失敗的遷移?
任何中止的遷移將使 WebSphere 應用程式伺服器配置檔案停留在部分遷移的狀態,這對於資料採集和疑難解答是有用的。將執行以下操作來清理失敗的遷移:

WebSphere Application Server V7
我們必須通過 'manageprofiles' 命令的幫助,刪除在中止的遷移中所建立的新配置檔案(例如,部署管理器和應用程式伺服器配置檔案)。

清單 10. 刪除配置檔案的命令 'manageprofiles'
/install_root/v7.0/bin/>>
./manageprofiles.sh -delete -profileName NewProfileNameForVersion7配置檔案被刪除後,該配置檔案的任何剩餘目錄都需要被手動刪除。

清單 11. 檢查要刪除的配置檔案子目錄
/install_root/profiles/NewProfileNameForVersion7/>> ls -la現有的配置檔案目錄也需要被刪除。只應保留日誌子目錄。

清單 12. 刪除配置檔案目錄
/install_root /profiles/NewProfileNameForVersion7>>cd ..
/install_root /profiles/>> rm -r NewProfileNameForVersion7WebSphere Application Server V6
我們必須刪除用 WASPreUpdgrade 命令建立的備份目錄(如 /waslogs/was6_to_was7/migration)。另外,當再次執行遷移命令時,我們也可以指定另一個備份目錄(如 /waslogs/was6_to_was7/migration1)。

遷移後的步驟和驗證
停止和啟動 WebSphere V7 的部署管理器。啟動 Admin Console,然後單擊 System administration > 節點,驗證新節點已經聯合到 WebSphere V7。從 WebSphere Application Server V7 配置檔案中刪除舊的 JVM 設定 - 1.6 JVM 中不需要從 JVM1.4.2 帶來的 JVM 引數,應予刪除。 例如:
-Xloratio0.2-Xp32K,4K-Xminf0.25-Xpartialcompactgc-Xk64000將 WC_adminhost 和 WC_adminhost_secure 埠上的 TCP 通道的最大開放連線數恢復為 100。監測在 1.6 JVM 中引入的壓縮引用所帶來的任何效能影響。這可以通過刪除 "-Xcompressedrefs" JVM 命令列引數進行監測。驗證 WebSphere Application Server V7 Deployment Manager 的安全性已被改為 “on”,並且該拓撲的服務整合匯流排安全性已被禁用。驗證 WebSphere Application Server V7 上的 SSL 配置。驗證應用程式伺服器啟動,並且已部署的應用程式正常執行。結束語

本文涵蓋在叢集環境中發現的一些 WebSphere 遷移問題,以及在 AIX 平臺上克服這些遷移問題所採取的步驟。這對於執行類似遷移路徑的人來說可能很有幫助。

原文連結

https://zhidao.baidu.com/question/1731710042306940827.html