移轉疑難排解
從舊版的 WebSphere® Application Server 進行移轉時,可能會發生問題。
開始之前

本文討論設定檔配置的移轉。 如果要將應用程式移轉至最新的版本,請使用 WebSphere Application Server Migration Toolkit。 如需相關資訊,請參閱 WASdev 上的 Migration Toolkit。
sptcfg程序
- 工作在「驗證」步驟中失敗。
這表示在開始移轉程序之前,就偵測到配置錯誤。 其原因可能是您在建立移轉工作時輸入了不正確的資料,或是配置問題所導致。 請查看所偵測到錯誤的日誌輸出,更正錯誤,然後重新執行。 日誌位於 temporary_directory_location/nnnnn,其中 temporary_directory_location 是您在建立移轉工作時所指定的值 (預設值為 /tmp/migrate),nnnnn 是建立移轉工作期間所產生和顯示的唯一號碼,此外,這個號碼也會顯示在您批次工作串流之 WROUT 與 WRERR 步驟的 JESOUT DDNAME 中。
- 工作在「驗證」步驟之後失敗。
在「驗證」步驟之後的移轉工作中萬一發生失敗,您可以重新執行移轉工作;不過,您必須先刪除 CRHOME 步驟中所建立的 z/OS® 配置起始目錄的 WebSphere Application Server。 這個目錄對應至您在建立移轉工作時所輸入的起始目錄,並且可以在移轉作業的「工作控制語言 (JCL)」環境變數 V6_HomeDir 中找到它。由於移轉程序會針對要移轉的每一個節點,建立新的配置檔案系統,因此簡單的程序是刪除配置,然後從頭開始。
- 移轉聯合節點時發生問題。
聯合節點是最難移轉的節點,因為這是將兩個移轉程序併為一個。 聯合節點不但需要移轉部署管理程式之主要儲存庫所包含的節點配置資訊,還需要移轉聯合節點所包含的配置資訊。移轉聯合節點時,需要與部署管理程式建立作用中連線。如果已啟用安全,就必須遵守您在建立移轉工作時所產生的指示來進行。在提交移轉工作時,必須使用已適當配置而可以取得安全連線的 WebSphere 管理者使用者 ID。
- 工作在移轉作業的應用程式安裝階段期間失敗。
如果您選取將存在於 7.0 版或更新版本配置中的企業應用程式安裝到新的 9.0 版配置中的移轉處理程序選項,則在移轉的應用程式安裝階段,您可以會遇到錯誤訊息。
在 7.0 版或更新版本配置中的應用程式可能會有不正確的部署資訊 — 通常是無效的 XML 文件在先前的 WebSphere Application Server 執行時期中未經充分驗證。現在,執行時期具有改良的應用程式安裝驗證程序,並且將無法安裝這些形態異常的 EAR 檔。這會導致在 WASPostUpgrade 的應用程式安裝階段失敗,產生一則 "E" 錯誤訊息。 這算是「嚴重」的移轉錯誤。
在應用程式安裝期間,如果移轉作業因而失敗,您可以執行下列其中一項:- 在 7.0 版或更新版本的應用程式中修正這個問題,然後重新移轉。
- 繼續移轉,並忽略這些錯誤。
- 在 FINISHUP 步驟中,重新啟動移轉工作,以便能執行其餘的移轉功能。
其做法是將 RESTART=FINISHUP 參數新增至工作卡,並重新提交工作。
- 稍後,請修正應用程式中的問題,然後利用管理主控台或安裝 Script,將它們手動安裝在新的 9.0 版配置中。
- 在 FINISHUP 步驟中,重新啟動移轉工作,以便能執行其餘的移轉功能。
- 發生「空間不足」錯誤。
移轉日誌位於 temporary_directory_location/nnnnn,其中 temporary_directory_location 是您在建立移轉工作時所指定的值 (預設值為 /tmp/migrate),nnnnn 是建立移轉工作期間所產生的唯一號碼。通常,移轉日誌的空間需求並不大。不過,如果您有啟用追蹤,日誌檔就可能相當大。最佳作法是只在發現問題之後,才啟用追蹤。如果需要進行追蹤,請試著只針對要進行除錯之處理程序相關的步驟,啟用追蹤。 如此可以減少空間需求。
在建立移轉工作時,您可以使用「z/OS 移轉管理工具」或 zmmt 指令來啟用追蹤。如果要使用 zmmt 指令來啟用追蹤,請在回應檔中,將下列內容設為可能的值:
- zmbEnablePreUpgradeTrace
- zmbEnablePostUpgradeTrace
- zmbEnableProfileTrace
- zmbEnableScriptingTrace
將 zmbEnablePreUpgradeTrace 與 zmbEnablePostUpgradeTrace 設為 0(不追蹤)到 4(所有追蹤)之間的值。將 zmbEnableProfileTrace 和 zmbEnableScriptingTrace 設為 0(不追蹤)或 1(啟用追蹤)。
您也可以在 DATA 資料集的 JCL 成員 BBOWMxEV 中,將移轉作業「工作控制語言 (JCL)」中的變數變更為適當值,DATA 資料集是您在使用「z/OS 移轉管理工具」或 zmmt 指令來建立移轉定義時所建立的。在修改 JCL 時,請將 TraceState 和 profileTrace 設為 disabled 或 enabled,以及將 preUpGradeTrace 和 postUpGradeTrace 設為 0(不追蹤)到 4(所有追蹤)之間的值。註: 若為部署管理程式,則成員名稱是 BBOWMDEV;若為聯合節點,則成員名稱是 BBOWMMEV。在移轉期間,會建立 7.0 版或更新版本配置的備份副本。這份備份會變成要移轉的資訊來源。預設的備份位置是 /tmp/migrate/nnnnn。在您建立移轉工作時,可以變更這個位置。視所要移轉的節點大小,這份備份可能會相當大。如果您的暫時空間不夠,則需要將這個備份重新定位。
- 發生「記憶體不足」錯誤。如果要改進記憶體用量,請執行下列動作:
- 編輯工作檔,以阻止共用應用程式空間,並增加 JVM 資料堆的下限與上限。以下範例說明在移轉部署管理程式時,如何編輯 BBOWM3D 工作,使其可以使用多達 768 MB 的資料堆,而超過預設的 256。
BPXBATCH SH + export _BPX_SHAREAS=NO; + export IBM_JAVA_OPTIONS="-Xms256M -Xmx768M"; + /wit/bigtmp/bbomigrt2.sh WASPreUpgrade + /wit/bigtmp/24173105/_ + 1>> /wit/bigtmp/24173105/BBOWMG3D.out + 2>> /wit/bigtmp/24173105/BBOWMG3D.err;
- 編輯適當的移轉 Script。
如果您要從您具備唯讀驅動程式檔案系統存取權的系統來移轉,請編輯 bin 目錄中的 WASPreUpgrade.sh 與 WASPostUpgrade.sh Script。
如果您無法編輯唯讀驅動程式系統,請改用三項移轉工作,而非單一的移轉工作,如此就能在建立設定檔之後暫停移轉,以便編輯設定檔 Script。執行 BBOWMG3* 移轉工作,等同於按所列次序來執行下列三項工作:- BBOWMPRO
- BBOWMPRE
- BBOWMPOS
set PERFJAVAOPTION=-Xms256M -Xmx768M
現在,您可以繼續執行移轉。如果您決定執行三項個別工作,請啟動 BBOWMPRE 工作,並在成功之後 (RC=0) 執行 BBOWMPOS 工作。如果您已編輯移轉 Script 檔的唯讀檔案系統副本,則可執行適當的 BBOWMG3* 工作。
- 編輯工作檔,以阻止共用應用程式空間,並增加 JVM 資料堆的下限與上限。
- 已超出批次工作時間。
每一個 z/OS 安裝架構在工作類別和時間限制方面,都各不相同。請確定您在工作卡上指定的是適當的工作類別和逾時值。
- 移轉部署管理程式或獨立式應用程式伺服器已完成,但未安裝任何應用程式,日誌檔可能顯示類似如下的訊息:
MIGR0339I: Application WISO_wisoadmin_war.ear is deploying using the wsadmin command. MIGR0241I: Output of wsadmin. Error: unable to allocate 268435456 bytes for GC in j9vmem_reserve_memory. JVMJ9VM015W Initialization error for library j9gc23(2): Failed to instantiate heap. 256M requested Could not create the Java virtual machine.
問題為從 bbomigrt2.sh 啟動的 WASPostUpgrade Script 沒有足夠的剩餘位址空間來起始設定「Java 虛擬機器 (JVM)」。一般而言,這表示大量產生的程序正在 WASPostUpgrade JVM 的相同位址空間中執行。
您可以使用 _BPX_SHAREAS 環境變數,讓基礎程序知道大量產生的程序是否應該共用與母程序相同的位址空間。預設值(空值)為 NO,但是管理者可以將此項變更為 YES 或 MUST,以取得效能優勢,因為在分出或大量產生動作期間,不需要複製位址空間。
如果您的系統遇到這裡說明的問題,請在執行移轉工作時,將 _BPX_SHAREAS 環境變數明確設定為 NO。您可以為執行移轉工作的使用者,在系統設定檔 (/etc/profile) 或使用者設定檔中設定此項。請使用下列項目,來將這個變數設為 NO:export _BPX_SHAREAS = NO
在移轉工作完成之後,您可以更新設定檔,而將 _BPX_SHAREAS 重設為其原始值。
- 移轉之後,啟動伺服器期間發生失敗。
請檢閱您在建立移轉工作時所產生的指示。請驗證 JCL 程序已正確複製到您的 PROCLIB 中,已建立 RACF® 定義,且 9.0 版程式庫已進行授權。 請確定和 Cell 相關聯的常駐程式處理程序是適當的層次。 常駐程序必須是 Cell 中它管理之所有伺服器的最高 WebSphere Application Server for z/OS 版本層次。
移轉至 9.0 版 Cell 之後,如果 Cell 包含 7.0 版或更新版本的節點,或者會與這些節點交互作業,且這些節點不是 6.0.2.11 版或更新的版本,叢集功能可能會失敗。當啟動這些 7.0 版或更新版本的應用程式伺服器時,可能會出現下列問題:- 可能看到顯示
ClassNotFoundException 錯誤訊息的第一次失敗資料擷取 (FFDC) 日誌。這個異常狀況由
RuleEtiquette.runRules 方法擲出,看起來類似下列範例:
Exception = java.lang.ClassNotFoundException Source = com.ibm.ws.cluster.selection.SelectionAdvisor.<init> probeid = 133 Stack Dump = java.lang.ClassNotFoundException: rule.local.server at java.net.URLClassLoader.findClass(URLClassLoader.java(Compiled Code)) at com.ibm.ws.bootstrap.ExtClassLoader.findClass(ExtClassLoader.java:106) at java.lang.ClassLoader.loadClass(ClassLoader.java(Compiled Code)) at java.lang.ClassLoader.loadClass(ClassLoader.java(Compiled Code)) at java.lang.Class.forName1(Native Method) at java.lang.Class.forName(Class.java(Compiled Code)) at com.ibm.ws.cluster.selection.rule.RuleEtiquette.runRules(RuleEtiquette.java:154) at com.ibm.ws.cluster.selection.SelectionAdvisor.handleNotification(SelectionAdvisor.java:153) at com.ibm.websphere.cluster.topography.DescriptionFactory$Notifier.run(DescriptionFactory.java:257) at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1462)
- 您可能看到類似下列範例的 java.io.IOException:
Exception = java.io.IOException Source = com.ibm.ws.cluster.topography.DescriptionManagerA. update probeid = 362 Stack Dump = java.io.IOException at com.ibm.ws.cluster.topography.ClusterDescriptionImpl.importFromStream(ClusterDescriptionImpl.java:916) at com.ibm.ws.cluster.topography.DescriptionManagerA.update(DescriptionManagerA.java:360) Caused by: java.io.EOFException at java.io.DataInputStream.readFully(DataInputStream.java(Compiled Code)) at java.io.DataInputStream.readUTF(DataInputStream.java(Compiled Code)) at com.ibm.ws.cluster.topography.KeyRepositoryImpl.importFromStream(KeyRepositoryImpl.java:193)
避免困難: 移轉至 WebSphere Application Server 9.0 版之後,「階段作業起始通訊協定 (SIP)」Proxy JSR116 傳輸可能會失敗,會出現重新傳輸逾時及錯誤訊息。 當出現這個錯誤時,可能會顯示下列錯誤訊息:
如果要解決這個問題,您可以在發生錯誤之伺服器的節點層次,刪除 serverindex.xml 檔中的傳輸鏈 UDP_SIP_PROXY_CHAIN。gotchaTCP Channel initialization failed. The socket bind failed for host and port 5060.
- 可能看到顯示
ClassNotFoundException 錯誤訊息的第一次失敗資料擷取 (FFDC) 日誌。這個異常狀況由
RuleEtiquette.runRules 方法擲出,看起來類似下列範例:
進行移轉之後,仔細檢視工作輸出及日誌檔是否有指出錯誤。
如果您將節點移轉至 9.0 版,之後又發現您需要回復成 7.0 版或更新版本,請參閱回復環境。
如果要從「IBM® 支援中心」取得已知問題及其解決方案的最新資訊,請參閱「IBM 支援中心」頁面。「IBM 支援中心」有各種文件,可節省您收集解決這個問題所需要之資訊的時間。在開啟 PMR 之前,請先參閱「IBM 支援中心」頁面。
登錄於已移轉的 9.0 版節點代理程式的新埠包括:WC_defaulthost、WC_defaulthost_secure、WC_adminhost、WC_adminhost_secure、SIB_ENDPOINT_ADDRESS、SIB_ENDPOINT_SECURE_ADDRESS、SIB_MQ_ENDPOINT_ADDRESS、SIB_MQ_ENDPOINT_SECURE_ADDRESS。 節點代理程式不需要這些埠,您可以放心刪除它們。
下一步
如果在清單中找不到您的問題,請聯絡 IBM 支援中心。


http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-zos&topic=tmig_troubleshoot
檔名:tmig_troubleshoot.html