对迁移进行故障诊断
从较旧版本的 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 步骤中创建的 WebSphere Application Server for z/OS® 配置主目录。此目录与您在创建迁移作业时输入的主目录相对应,迁移作业控制语言 (JCL) 环境变量 V6_HomeDir 也包含此目录。由于迁移过程会为所迁移的每个节点创建新的配置文件系统,所以,删除配置并从头开始十分简单。
- 迁移联合节点时发生问题。
联合节点的迁移在本质上是由两项迁移操作合并而成的,所以最难以执行。联合节点要求迁移包含在 Deployment Manager 主存储库的节点配置信息以及包含在联合节点中的配置信息。要迁移联合节点,需要对 Deployment Manager 建立活动连接。如果已启用安全性,那么遵循创建迁移作业时所生成的指示信息十分关键。必须使用 WebSphere 管理员的用户标识来提交迁移作业,该标识已正确配置以便获取安全连接。
- 在迁移过程中的应用程序安装阶段,作业失败。
如果您选择在迁移过程中将 V7.0 或更高版本 配置中存在的企业应用程序安装到新的 V9.0 配置中,那么在迁移过程的应用程序安装阶段,可能会遇到错误消息。
V7.0 或更高版本 配置中存在的应用程序可能具有错误的部署信息 - 这些信息通常指示在先前 WebSphere Application Server 运行时中未进行充分验证的无效 XML 文档。现在,运行时已经改进了应用程序安装验证过程,它将无法安装这些格式错误的 EAR 文件。这将导致在 WASPostUpgrade 的应用程序安装阶段发生故障并生成“E”错误消息。这被视为“致命”迁移错误。
如果迁移操作在应用程序安装阶段以此方式失败,那么您可以执行以下其中一个操作:- 修正 V7.0 或更高版本 应用程序中的问题,然后重新迁移。
- 继续进行迁移并忽略这些错误。
- 从 FINISHUP 步骤重新启动迁移作业以便能够执行余下的迁移功能。
通过在作业卡中添加 RESTART=FINISHUP 参数并重新提交该作业来完成此任务。
- 稍后,解决这些应用程序中的问题,然后使用管理控制台或安装脚本将这些应用程序手动安装到新的 V9.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(表示启用跟踪)。
您还可以在使用 z/OS 迁移管理工具或者 zmmt 命令创建迁移定义时所创建的 DATA 数据集中的 JCL 成员 BBOWMxEV 中,将迁移作业控制语言 (JCL) 中的变量更改为适当的值。修改 JCL 时,请将 TraceState 和 profileTrace 设置为 disabled 或者 enabled,并将 preUpGradeTrace 和 postUpGradeTrace 设置为 0(表示不跟踪)到 4(表示全部跟踪)之间的值。注: 对于 Deployment Manager,该成员名称为 BBOWMDEV;对于联合节点,该成员名称为 BBOWMMEV。迁移期间,将创建 V7.0 或更高版本 配置的备份副本。此备份将成为所迁移的信息的来源。缺省备份位置是 /tmp/migrate/nnnnn。可在创建迁移作业时更改此位置。 根据所迁移节点的大小,此备份可能相当大。如果临时空间不足够,那么需要重新分配此备份。
- 发生了内存不足错误。要提高内存使用,请执行以下操作:
- 编辑作业文件以阻止共享应用程序空间,然后增大 JVM 堆的最小值和最大值设置。以下示例说明了如何为 Deployment Manager 编辑 BBOWM3D 作业,以使其使用最大为 768MB 的堆,此大小大于缺省值 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;
- 编辑适当的迁移脚本。
如果在要迁移的系统上拥有对只读驱动程序文件系统的访问权限,那么编辑 bin 目录中的 WASPreUpgrade.sh 和 WASPostUpgrade.sh 脚本。
如果无法编辑只读驱动程序系统,那么使用三个迁移作业而不是一个迁移作业,这样迁移在创建概要文件后会暂停以便您可以编辑概要文件脚本。运行 BBOWMG3* 迁移作业等同于按列示的顺序运行以下三个作业:- BBOWMPRO
- BBOWMPRE
- BBOWMPOS
set PERFJAVAOPTION=-Xms256M -Xmx768M
现在,您可以继续执行迁移。如果决定运行三个单独的作业,那么启动 BBOWMPRE 作业,并在成功执行该作业 (RC=0) 后,运行 BBOWMPOS 作业。如果编辑了这些迁移脚本文件的只读文件系统副本,那么可以运行适当的 BBOWMG3* 作业。
- 编辑作业文件以阻止共享应用程序空间,然后增大 JVM 堆的最小值和最大值设置。
- 超出批处理作业时间。
每个 z/OS 安装版本在作业类和时间限制方面都有所不同。请确保在作业卡上指定了适当的作业类和超时值。
- 完成了 Deployment Manager 或独立应用程序服务器迁移,但未安装任何应用程序。日志文件可能显示类似如下的消息:
MIGR0339I: 应用程序 WISO_wisoadmin_war.ear 正在使用 wsadmin 命令进行部署。 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.
问题在于从 bbomigr2.sh 启动的 WASPostUpgrade 脚本没有足够的剩余地址空间来初始化 Java 虚拟机 (JVM)。通常,这指示衍生进程在 WASPostUpgrade JVM 所在的地址空间中运行。
可使用环境变量 _BPX_SHAREAS 来通知底层进程有关衍生进程是否与父进程共享同一地址空间的事项。缺省值 (null) 是 NO,但管理员可将此变量更改为 YES 或 MUST 以获取性能方面的好处,这是因为在执行派生或衍生操作期间不需要复制地址空间。
如果您的系统遇到此处所描述的问题,请运行迁移作业并将环境变量 _BPX_SHAREAS 显式地设置为 NO。您可以在系统概要文件 (/etc/profile) 或用户概要文件中为运行迁移作业的用户设置此变量。使用以下条目来将此变量设置为 NO:export _BPX_SHAREAS = NO
完成迁移作业后,可更新概要文件以便将 _BPX_SHAREAS 重置为其原始值。
- 完成迁移后,在服务器启动期间发生了故障。
复查创建迁移作业时生成的指示信息。验证是否已将 JCL 过程正确地复制到 PROCLIB、已创建 RACF® 定义并已对 V9.0 库进行授权。确保与单元相关联的守护进程具有适当的级别。对于守护进程在单元中管理的所有服务器,守护进程必须处于最高的 WebSphere Application Server for z/OS 版本级别。
在迁移到包含 V7.0 或更高版本 节点或与这些节点进行互操作的 V9.0 单元之后,因为这些节点的版本低于 V6.0.2.11,所以集群功能可能会失败。启动这些 V7.0 或更高版本 应用程序服务器时,您可能会看到以下问题:- 您可能会看到首次故障数据捕获 (FFDC) 日志,该日志显示 ClassNotFoundException 错误消息。此异常从 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 V9.0 之后,会话启动协议 (SIP) 代理 JSR116 通信可能会因为重新传输超时和生成错误消息而失败。发生此错误时,可能会显示以下错误消息:
要解决此问题,您可以在发生此错误的服务器的节点级别删除 serverindex.xml 文件中的传输链 UDP_SIP_PROXY_CHAIN。gotchaTCP 通道初始化失败。主机和端口 5060 的套接字绑定失败。
- 您可能会看到首次故障数据捕获 (FFDC) 日志,该日志显示 ClassNotFoundException 错误消息。此异常从 RuleEtiquette.runRules 方法抛出,看起来类似以下示例:
完成迁移后,请仔细地查看作业输出和日志文件以检查错误。
如果将节点迁移到 V9.0,然后发现需要还原到 V7.0 或更高版本,请参阅回滚环境。
有关当前 IBM® 支持机构提供的已知问题及其解决方案的信息,请参阅 IBM 支持机构页面。IBM 支持机构拥有的文档可节省您收集解决此问题所需信息的时间。 在打开 PMR 前,请参阅 IBM 支持机构页面。
在已迁移的 V9.0 Node Agent 上注册的新端口包括: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。Node Agent 不需要这些端口,您可以安全地将它们删除。
下一步做什么
如果发现您遇到的问题未列出,请与 IBM 支持机构联系。


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