当前位置: 首页 > Linux学院 > 产品应用 > IBM AIX > 使用IBM Rational Developer for AIX and Linux软件进行调试部署

使用IBM Rational Developer for AIX and Linux软件进行调试部署

2014-07-25 18:10 来源:IBM 作者:Nageswararao V. Goka 人气指数: 我要评论

本文将介绍如何使用 IBM® Rational® Developer for AIX and Linux 软件调试部署在 IBM® TXSeries™ for Multiplatforms 区域中的混合语言 IBM CICS 应用程序。

Rational Developer for AIX and Linux 软件提供了一些集成的应用程序开发工具。它扩展了丰富的 Eclipse 功能,尤其是远程系统资源管理器。

IBM TXSeries for Multiplatforms (TXSeries) 是一个通用的在线事务处理软件,用于处理安全性、数据完整性和资源调度。TXSeries for Multiplatforms 的集成式软件组件架构可用于创建客户信息控制系统 (Customer Information Control System, CICS) 环境。

CICS 集成了在线事务处理应用程序需要的基本业务软件服务。本教程提供了一个循序渐进的过程来调试部署在 TXSeries 区域上的混合语言 CICS 应用程序。

在本文中,您将了解每个系统的更多信息。

Rational Developer for AIX and Linux 软件

IBM® Rational® Developer for AIX and Linux 软件能与其他基于 Eclipse 的工具无缝协作,这些工具包括用于协作式变更和项目管理的 IBM® Rational Team Concert™,以及 IBM® Rational® Application Developer for WebSphere® Software 集成开发环境 (IDE)。源代码编辑支持可帮助开发人员使用 Remote Systems LPEX Editor 编辑源代码,使用用于语言分析的自动缩进和文本特效等特性让您源程序的各个部分变得更为醒目。

源代码可存储在 Eclipse 项目中。这些项目支持在与 IBM® AIX® 服务器断开连接时工作,然后在重新连接时同步源代码。它们还通过适用于 Eclipse 平台的源代码控制提供程序实现了团队共享。在构建项目中的源代码之后,所有错误反馈都会集成到标准的 Eclipse 机制中。这能很快地为开发人员找到存在问题的代码行。

您可以使用远程系统资源管理器查看 IBM AIX 系统上的文件和进程。可以在集成的窗口中启动 shell 与 AIX 服务器进行交互。

备注:
尽管本文介绍的是 IBM Rational Developer for AIX and Linux 客户端的使用,但该过程也同样适用于其他客户端,其中包括:IBM® Rational® Developer® for System z® 和 IBM Rational Developer for the Enterprise 客户端。

IBM TXSeries for Multiplatforms

IBM TXSeries for Multiplatforms 是一个适合混合语言应用程序的分布式 CICS 在线事务处理器。它广泛用于在分布式解决方案和企业系统之间集成数据和应用程序。它还可用于部署使用 COBOL、C / C++、PL/I 和 Java 编程语言编写的 IBM CICS 应用程序。TXSeries 还支持随着业务需求的增长而扩展到大型机上的 CICS Transaction Server 上。

TXSeries for Multiplatforms 软件控制业务系统中的事务的处理,甚至在事务在不同计算机上同时工作并访问相同数据时也能实现此操作。用户应用程序无需执行事务处理所需的专门的任务调度、控制、数据路由和锁定。事务处理服务使得应用程序能够集中精力处理业务逻辑,而不是该逻辑的实现过程。这些服务由 TXSeries CICS 区域实现,它们为您和您的团队提供了事务处理系统的单独视图,而没有牺牲数据完整性和和针对许多并发用户的最优性能。

本文中使用的软件环境概述

表 1 显示了本文中使用的软件栈,该软件栈用于演示如何远程调试部署在 TXSeries 区域中的混合语言应用程序(基于 C 和 IBM COBOL)。

表 1. 用于演示的软件栈

软件 平台 版本
TXSeries for Multiplatforms AIX 7.1.0.4
IBM COBOL AIX 4.1
XLC/C++ AIX 11.1
Rational Developer for AIX and Linux 软件 Windows 9.0
IBM Debugger Engine(随 Rational Developer for AIX and Linux 软件或 IBM 编译器产品提供。) AIX 12.1.0.3

一个典型的远程调试环境,使用 Rational Developer for AIX and Linux 软件调试部署在 AIX 服务器上的 TXSeries 区域之上的混合语言应用程序,如图 1 所示。

Rational Developer for AIX and Linux 软件基于一种客户端-服务器模型。该调试引擎可充当客户端,Rational Developer for AIX and Linux 软件的用户界面可充当服务器。这种类型的客户端-服务器模型能够灵活地在本地 Windows 或 LInux 桌面机器上显示用户界面,即使您调试的程序位于远程 AIX 机器上。

图 1. 同时使用了本地和远程机器的客户端-服务器配置

使用IBM Rational Developer for AIX and Linux软件进行调试部署

准备要调试的 TXSeries CICS 区域

按照以下步骤,使用 Rational Developer for AIX and Linux 调试 TXSeries CICS 区域:

  1. 发出以下命令来启用一个 TXSeries 区域,以便允许运行要调试的程序:
    # cicsupdate -r region_name -c rd AllowDebugging=yes
  2. 重置检查点管理接口 (CPMI) 事务的资源级安全设置,或者调试 CICS 程序时需要运行的其他事务的安全设置:
    # cicsupdate -c td -r region_name CPMI Permanent=no
    # cicsupdate –c td -r region_name CPMI RSLCheck=none
    # cicsupdate -c td -r region_name CPMI Permanent=yes
  3. 发出以下命令来设置 CICS 区域的环境文件中的路径。<source_directory_path> 指绝对目录路径,其中可找到在调试时需要的所有程序源文件。
     DER_DBG_PATH="<source_directory_path>"
  4. 发出以下命令来设置调试库的路径。<library_path_idebug> 指 IBM IDEBUG 库所在的绝对目录路径。这些文件通常位于 /usr/idebug/engine/lib 目录下。
    CICS_IDEBUG_LIBPATH="<library_ path_idebug>"

备注:
在上述命令中,将 region_name 替换为合适的 CICS 区域名称。各个区域需要冷启动 (StartType=cold) 来反映上述更改。

准备调试 CICS 应用程序的环境

本文使用了 IBM Rational Developer for AIX and Linux Version 9.0,如图 2 所示。

备注:
尽管本文使用的是 IBM Rational Developer for AIX and Linux 客户端,但该过程也同样适用于其他客户端,比如 IBM® Rational® Developer for System z 和 IBM Rational Developer for the Enterprise 客户端。

图 2. Rational Developer for AIX and Linux 软件版本

使用IBM Rational Developer for AIX and Linux软件进行调试部署

要启动 IBM Rational Developer for AIX and Linux,请转到 Start Menu > Programs,选择 IBM Software Delivery Platform,然后选择 IBM Rational Developer for AIX and Linux。启动 Rational Developer for AIX and Linux 软件后,选择一个工作区,系统会显示 IBM Rational Developer for AIX and Linux 视图。然后从 Window > Open Perspective 中选择 Debug Perspective,Debug 窗口将被激活,如图 3 所示。

图 3. Rational Developer for AIX and Linux 的调试透视图

使用IBM Rational Developer for AIX and Linux软件进行调试部署

在图 3 中,调试按钮具有一个红色圆圈。默认情况下,调试器将监听端口 8001。如图 4 所示,单击调试按钮更改您希望 IBM Rational Developer for AIX and Linux 调试器监听的端口。

图 4. 使用调试按钮设置端口

使用IBM Rational Developer for AIX and Linux软件进行调试部署

要更改该端口,可单击调试按钮旁边的下拉箭头,然后单击调试按钮,如图 4 所示。该按钮将变为绿色,这表示 IBM Rational Developer for AIX and Linux 现在正在刚设置的端口上监听调试请求。

准备要调试的混合语言 CICS 应用程序

代码清单中使用了一个示例 COBOL 程序 (COBOLPRG.ccp),它使用 EXEC CICS LINK 来调用一个 C 程序 (CPROGRAM.ccs)。数据是使用LINK API 的 COMMAREA 工具传递给 C 语言的。

清单 1. 示例 CICS/COBOL 程序代码段 (COBOLPRG.ccp)

IDENTIFICATION DIVISION.
PROGRAM-ID.   COBOLPRG.
ENVIRONMENT DIVISION.
DATA DIVISION.
WORKING-STORAGE SECTION.

01 TEXT-OUT.
   05  MSG PIC X(24)  VALUE 'HELLO TXSERIES PRODUCT'.
   05  TERMCHAR PIC X.
01 OUT-MSG            PIC X(80)  VALUE SPACES.
01 W-RESP             PIC S9(8)  BINARY.
01 W-RESP2            PIC S9(8)  BINARY.

LINKAGE SECTION.

PROCEDURE DIVISION.


    EXEC CICS LINK PROGRAM('CPROGRAM')
                   COMMAREA(TEXT-OUT)
                   LENGTH(LENGTH OF TEXT-OUT)
                   RESP(W-RESP)
                   RESP2(W-RESP2)
    END-EXEC.

    IF W-RESP = DFHRESP(NORMAL)

    STRING 'MODIFIED MESSAGE FROM C PROGRAM :'
           DELIMITED BY SIZE
           TEXT-OUT DELIMITED BY SIZE
           INTO OUT-MSG
    END-STRING

    EXEC CICS WRITE OPERATOR TEXT(OUT-MSG)
              TEXTLENGTH(LENGTH OF OUT-MSG)
    END-EXEC

    END-IF.

    EXEC CICS RETURN
    END-EXEC.

清单 2. 示例 CICS/C 程序代码段 (CPROGRAM.ccs)

#include <cicstype.h>
#include <stdio.h>
#include <memory.h>

DFHEIBLK  *eibptr;

int main(void)
{
     cics_char_t* commarea;
     cics_char_t outmsg[128];
     cics_ushort_t msglen;
     cics_ushort_t rcode;


     EXEC CICS ADDRESS EIB(eibptr);

     EXEC CICS ADDRESS COMMAREA(commarea);

     memset(outmsg,'\0',sizeof(outmsg));

     commarea[eibptr->eibcalen-1]='\0';

     if(eibptr->eibcalen == 0){
          sprintf(outmsg,"INPUT MESSAGE FOR C PROGRAM IS NULL\n");
          msglen=strlen(outmsg);
          EXEC CICS WRITE OPERATOR
                          TEXT(outmsg)
                          TEXTLENGTH(msglen)
                          RESP(rcode);
     }else{
          sprintf(outmsg,"INPUT MESSAGE FOR C PROGRAM IS :%s\n",commarea);
          msglen=eibptr->eibcalen + strlen(outmsg);
          EXEC CICS WRITE OPERATOR
                          TEXT(outmsg)
                          TEXTLENGTH(msglen)
                          RESP(rcode);
          memcpy(commarea,"TRIED",5);
          sprintf(outmsg,"MODIFIED MESSAGE IN C PROGRAM IS :%s\n",commarea);
          EXEC CICS WRITE OPERATOR
                          TEXT(outmsg)
                          TEXTLENGTH(msglen)
                          RESP(rcode);
     }
     EXEC CICS RETURN;
}

编译程序

基于 CICS 的混合语言应用程序是使用 TXSeries 所提供的 cicstcl 实用程序来编译的。该实用程序对 CICS 语句进行预处理(转换),然后调用合适的语言编译器来生成(编译-链接-编辑)负载模块。程序必须使用 -a 来标志编译,以支持使用 IBM Rational Developer for AIX and Linux 调试它们。

编译步骤如下:

  • 要编译名为 COBOLPRG.ccp 的 IBM COBOL 程序,可发出以下命令:
    	# cicstcl -alIBMCOB COBOLPRG.ccp
  • 要编译名为 CPROGRAM.ccs 的 C 程序,可发出以下命令:
    	# cicstcl -alC CPROGRAM.ccs

将程序资源添加到 TXSeries 区域中

要将程序部署在 TXSeries 区域中,需要按以下方式向该区域定义事务名称和程序名称:

  • 要添加事务 DPRG(它使用程序 COBOLPRG),可发出以下命令:
    	# cicsadd -c td -r region_name DPRG ProgName="COBOLPRG"
  • 要添加 IBM COBOL 程序 COBOLPRG 资源条目,可发出以下命令:
    	# cicsadd -c pd -r region_name COBOLPRG PathName="COBOLPRG.ibmcob"
  • 要添加 C 程序 CPROGRAM 资源条目,可发出以下命令:
    	# cicsadd -c pd -r region_name CPROGRAM PathName="CPROGRAM"

发出这些命令后,应用程序会部署到 TXSeries 区域,而且已准备好使用 Rational Developer for AIX and Linux 软件进行调试。

备注:
任何以 “C” 开头的事务都无法在 TXSeries 上进行调试。

启用 CICS 应用程序在 TXSeries 区域中进行的调试

要启用和禁用 CICS 事务的调试,需要通过 CICS CDCN 事务管理它们。资源可以是一个终端、事务、程序或 SYSID。

出于演示之目的,我们启用了 COBOLPRG 和 CPROGRAM 的调试。以下步骤展示了如何为资源启用使用了 CDCN 事务的调试:

从一个基于 3270 的终端运行事务 CDCN。采用以下格式提供 DISPLAY 参数,使用 Rational Developer for AIX and Linux 监听的 IP 地址和端口:

IP 地址:端口

如图 5 所示,如果 Rational Developer for AIX and Linux 软件监听的桌面机器的 IP 地址为 1.1.1.1,监听端口为 1234,那么 DISPLAY 参数为:

1.1.1.1:1234

图 5. CDCN 屏幕显示了 COBOLPRG 的 DISPLAY 参数

使用IBM Rational Developer for AIX and Linux软件进行调试部署

如图 5 所示,添加 COBOLPRG 作为 PROGRAM,然后按下 Enter。终端上显示了以下消息。

ERZ104056I: Successfully configured debugging on for program 
COBOLPRG ERZ104072I: The display to be used for the debugging information is
 '1.1.1.1:1234'

可重复同样的过程来为 CPROGRAM 启用调试。

所有资源、TXSeries 区域和 Rational Developer for AIX and Linux 软件都已准备好开始调试。

开始调试

要开始调试,可启动事务 DPRG,它会调用 COBOL 程序 (COBOLPRG)。事务 DPRG 可从一个 3270 终端启动。事务 (DPRG) 运行后,在 TXSeries 中运行的程序会自动附加到 Rational Developer for AIX and Linux 用户界面,如图 6 所示。

图 6. 附加程序后的初始调试视图

使用IBM Rational Developer for AIX and Linux软件进行调试部署

如图 6 所示,该事务停止在 PROCEDURE DIVISION 中的 COBOL 模块 COBOLPRG 中。您可以在程序上设置断点。使用功能键 F5 单步执行每一行来进一步调试。

图 7 显示了从 COBOL 程序传来的 COMMAREA 内容 HELLO TXSERIES PRODUCT。鼠标指针指向任何变量时,就会显示该变量的内容。变量内容也可从 Variables 窗口中看到。在 Rational Developer for AIX and Linux 中,您可以在调试程序的同时更改程序中使用的不同变量的值。

图 7. COBOLPRG 内的初始 COMMAREA 视图

使用IBM Rational Developer for AIX and Linux软件进行调试部署

按功能键 F5(恢复运行)转到 C 模块,该模块会从 COBOL 程序调用。图 8 描绘了 C 程序中的 COMMAREA 文本,它是从 COBOL 模块获得的。

图 8. C 程序 CPROGRAM 中的 COMMAREA 视图

使用IBM Rational Developer for AIX and Linux软件进行调试部署

如果想要继续调试此程序,可使用 F5(恢复运行)键。其他选项可使用 Rational Developer for AIX and Linux 软件中定义的调试指令,比如 F7(单步执行)键和 F8(单步跳出)键。然后修改此程序中的 COMMAREA 文本,图 9 显示了如何修改它。

图 9. CPROGRAM 中已修改的 COMMAREA

使用IBM Rational Developer for AIX and Linux软件进行调试部署

您可继续调试。此刻,控制权返回到了父 COBOL 模块那里,父模块也可在模块部分中看到。修改后的 COMMAREA 内容如图 10 所示。

图 10. COBOLPRG 中已修改的 COMMAREA 的调试视图

使用IBM Rational Developer for AIX and Linux软件进行调试部署

此过程演示了如何使用 IBM Rational Developer for AIX and Linux 调试一个混合语言 TXSeries 应用程序。您也可以使用类似过程调试 IBM PLI、C++ 或 Java 应用程序。

排除常见问题

使用 Rational Developer for AIX and Linux 软件调试 CICS 应用程序时看到的一些常见问题如下所示:

  • 在 Rational Developer for AIX and Linux 软件中,调试监听端口未启用或在错误的端口上监听。在本例中,TXSeries 的 console.msg 或console.<nnnnnn> 日志表明,与 IDEBUG Rational Developer for AIX and Linux 软件客户端连接时出现了一个问题,如下所示: 
    SERVICE_MESSAGE 09/23/13 13:44:14.709092505 
    NEWREG 15532258/000     : Unable to attach to debugger. error: -3
    SERVICE_MESSAGE 09/23/13 13:44:16.775111648 NEWREG 15532258/000     : 
    Unable to attach to debugger. error: -3
  • 如果 AllowDebugging 未设置为 yes,那么在 CDCN 事务运行时会显示图 11 中所示的警告消息。

图 11. 未启用调试时的警告消息

使用IBM Rational Developer for AIX and Linux软件进行调试部署

  • CICS 程序未使用 –a 标志编译。调试器显示了汇编指令,参见图 12。

图 12. Rational Developer for AIX and Linux 软件中显示的汇编指令

使用IBM Rational Developer for AIX and Linux软件进行调试部署

  • 如果 CICS_IDEBUG_LIBPATH 环境变量未正确设置,或者具有错误的路径引用,CDCN 会抛出一条错误消息,如图 13 所示。

图 13. 环境未正确设置

使用IBM Rational Developer for AIX and Linux软件进行调试部署

结束语

本教程循序渐进地展示了如何从 IBM Rational Developer for AIX and Linux 配置和调试部署在 TXSeries 上的混合语言 CICS 应用程序。

大家感兴趣的内容
小伙伴最爱的新闻
小伙伴还关注了以下信息
小伙伴关注的焦点

小伙伴都在关注的热门词

新服 缤纷活动 航海世纪 芈月传 暗黑道具 萌乐网 苹果发布会 最新谍照 三国令 剑雨江湖 怎样修炼战骑 页游 怎样修炼伙伴 木甲世界 仙侠道2 推黑科技 页游模式 武圣试炼场 街机玩法 蓝月传奇 个人BOSS玩法 哥们网 九阴绝学 仗剑出鞘 全新模式 范伟打天下 全新元神玩法 七大神兵简介 新手攻略 跑腿任务 门派五行 城战礼包 页游界 泥石流 傅园慧 经典网页游戏 耐玩 盘点 玉石攻略 提升角色 大黑 实装属性 神兵攻略 问鼎莽荒 莽荒纪 手持神兵 土豪梦 万世 开学清单 财富赚不停 天书世界 大黑游戏 资源战场 ppwan 天问 激战 全国大战 雄霸一方 新增宠物技能 绝对小能手 花千骨 三尾章鱼 风色轨迹 双枪手 弑之神 缤纷好礼 惊喜六重连 帮会 中秋福利 自制月饼 九阴真经 玩家 五周年纪念 纪念银币 名动三界 新服资料片 画江山 勇战妖魔 邪恶势力 上古降魔 老司机玩法 坐骑揭秘 黑科技 竞技场攻略 铁血皇城 披风玩法 书剑恩仇录 装备强化攻略 野外BOSS玩法 全网曝光 赤壁传说 半回合制国 ACT 奇珍商城 热血战歌 传奇宝藏抽奖 打开方式 门徒 门徒获取玩法 三大萌宠简介