Technical Blog Post
Abstract
System i 导航器故障报告指南
Body
System i 导航器故障报告指南
System i 导航器 是一个运行在Windows平台上功能强大的基于MFC框架的图形化用户界面程序,使用它能够便捷地管理IBM System i服务器,由于其界面友好,性能可靠,很多IBM i 的客户都在用System i导航器来管理日常工作。
然而,近来随着客户桌面环境的变化和Windows操作系统的不断更新,在客户的使用环境中出现了一些不太常见的故障,很多都是不能在我们实验室的环境中重现的,通常针对不同的症状,我们都会让客户收集不同的数据,而且收集这些数据的方法也不一样,所以如何更快更好的服务客户,并尽快解决他们的问题,是我们一直以来努力的目标。
本文主要告诉客户在 System i导航器出现故障时,如何根据故障的症状,快速的收集相应的数据,以便让IBM的支持工程师更快速的解决问题。
在日常的维护过程中,我们发现客户的问题大致可以分为两大类:在我们实验室环境中可重现的问题以及在实验室环境中不可重现的问题。对于可重现的问题,需要客户告诉我们具体的完整的重现步骤,以便我们能在实验室环境中准确地重现问题,一般来讲,只要我们能够重现客户的问题,基本上就不需要客户提供额外的数据。
对于不能重现的问题,一般我们都需要客户收集程序的dump数据,在Windows平台上,收集和分析dump数据一般用微软提供的一款功能强大并且免费的工具Windbg。客户可以从下面这个链接获取它:http://msdn.microsoft.com/en-us/windows/hardware/gg463016。
下面根据比较常见的故障,分别介绍如何收集相应的数据,常见的不可重现的故障主要包括程序崩溃(Crash),程序死锁(Hang),程序崩溃表现为程序莫名其妙的退出,程序死锁表现为程序的用户界面没有响应,也就是说界面不再响应用户的鼠标或者键盘操作。
首先,不管是什么类型的问题,我们都要求客户收集System i导航器的日志文件,日志文件中会记录一些程序在运行过程中的一些打印的信息,可以帮助我们分析问题。客户可以按照如下步骤生成日志文件:
- 退出System i导航器。
- 启动System i导航器诊断功能,
- 开始->程序->IBM i Access for Windows->服务->启动诊断工具,这时候在Windows的任务栏会出现一个诊断工具的图标。
- 右键单击任务栏诊断工具的图标,选择清除所有诊断信息。
- 右键单击任务栏诊断工具的图标,选择启动收集诊断信息。
- 运行System i导航器。
- 启动Java日志:
- 选择文件->Java日志->清除。
- 选择文件->Java日志->启动,如果没有启动选项,说明Java日志功能已经启动。
- 根据重现步骤重现问题。
- 右键单击任务栏诊断工具的图标,选择停止收集诊断信息。
- 运行程序cwbsvget.exe , 该程序通常在安装目录C:\Program Files\IBM\Client Access,生成的打包日志文件在Windows我的文档\IBM\Client Access目录下。
对于程序崩溃,客户应该按照以下步骤生成dump文件:
- 运行System i导航器。
- 运行Windbg。
- 在Windbg中选择菜单File->Attach to a Process…,或者按下F6。
- 在弹出的进程列表中找到并选择cwbunnav.exe,然后按下OK按钮。
- 在Windbg中选择菜单Debug->Go,或者按下F5。
- 操作System i导航器,直到重现程序崩溃的问题。
- 在Windbg的命令窗口中输入“.dump /ma /u C:\cwbfail.dmp”,会在C盘生成一个cwbfail.dmp的dump文件。
对于程序死锁,客户应该按照的步骤生成dump文件:
- 运行System i导航器。
- 运行Windbg。
- 在Windbg中选择菜单File->Attach to a Process…,或者按下F6。
- 在弹出的进程列表中找到并选择cwbunnav.exe,然后按下OK按钮。
- 在Windbg中选择菜单Debug->Go,或者按下F5。
- 操作System i Navigator,直到出现程序悬挂,没有响应的问题。
- 在Windbg中选择菜单Debug->Break,或者按下Ctrl+Break。
- 在Windbg的命令窗口中输入“.dump /ma /u C:\cwbfail.dmp”,会在C盘生成一个cwbfail.dmp的dump文件。
接下来,客户可以用IBM提供的工具Jextract来提取dump文件中的信息。
- 找到System i 导航器的安装路径,通常情况下安装在“C:\Program Files\IBM\Client Access\”。
- 在Windows命令行窗口中输入“C:\Program Files\IBM\Client Access\JRE\bin>jextract.exe C:\cwbfail.dmp”。
- 等待命令执行完毕后,会在C盘生成一个cwbfail.dmp.zip文件。收集这个文件。
因为System i 导航器需要启动Java虚拟机来运行一些Java插件,有时候我们会要求客户收集Java虚拟机的core dump文件,特别是针对程序死锁的问题。客户可以按照如下步骤生成Java虚拟机的core dump 文件。
- 打开Windows任务管理器,找到进程名为cwbunnav.exe的进程识别号。
- 从IBM支持工程师获得SendSignal.exe。
- 在Windows命令行窗口中输入“SendSignal.exe 进程识别号”,这里的进程识别号为步骤1中得到的。
- 命令执行完后,会在System i 导航器的日志目录下生成一个Java core文件。
- 每隔两分钟重复步骤3,一共三次。所有生成的Java core文件会在Windows我的文档\IBM\Client Access\Service目录下。
- 运行程序cwbsvget.exe , 该程序通常在安装目录C:\Program Files\IBM\Client Access,运行结果会在Windows我的文档\IBM\Client Access目录下生成打包压缩的zip文件,上述Java core文件会包含到zip文件中。收集这个zip文件。
最后,客户及时将以上收集到的数据文件发给IBM的技术支持工程师,以便他们尽快分析并解决问题。
作者:张志军 张畅
UID
ibm11145590