使用WebSphere Studio Enterprise Developer V5的EGL和Struts生成COBOL/CICS(2)
  

运行应用程序

至此,您已经创建了所有的 COBOL 服务器代码和 Java 包装程序。现在,您必须把大型机组件提交给大型机以创建可执行文件,而且必须正确配置 WebSphere Application Server 以通过 JCA 连接器(它调用 CICS COBOL 程序)来运行应用程序。

现在,您必须执行下列任务以准备并运行应用程序:

  1. 提交为大型机的准备而生成的 COBOL 程序
  2. 配置 CICS 的 Web 应用程序
  3. 在 WebSphere Application Server 中安装 CICS ECI 资源适配器
  4. 为 WebSphere 测试环境创建资源适配器并配置连接工厂
  5. 测试 COBOL/CICS 事务

1. 提交为大型机的准备而生成的 COBOL 程序

当您生成 COBOL 程序、Java 程序或 Java 包装程序时,EGL 都会产生一个构建规划(除非您将构建描述符中的 buildPlan 选项设置为 NO )。Enterprise Developer 把这个生成的构建规划(在我们的示例中就是 TE01ABuildPlan.xml )用作为运行时准备生成的输出这一步的输入。

因为我们并不期望在生成时连接到大型机,所以我们在 COBOL 生成选项中指定 prep = NO 以阻止构建规划被启动。现在,要调用构建规划,请执行下列步骤(如果您将 prep 选项设置为 YES ,下列步骤就不是必需的):

  1. 打开命令窗口。
  2. 执行下列命令:

java com.ibm.etools.egl.distributedbuild.BuildPlanLauncherc:\WSED\workspace\EGLgenout\TE01ABuildPlan.xml

2. 配置 CICS 的 Web 应用程序

JCA 连接工厂提供了到 CICS 的连接。您必须指定资源适配器在连接到特定的 CICS 实例时所需的全部信息,同时还需指定 JNDI 查找名称,使得组件能通过它使用新的连接工厂实例。有了这个查找名称,组件就能快速地连接到 CICS。然后在运行时,工厂对象就能生成一个连接、定位 CICS 服务器并调用服务器上的 CICS 程序。

当我们定义了链接部件,就要在 CallLink 元素中指定 eis/CICSResourceAdapter 的位置值。因为这个值是一个局部 JNDI 名称,所以我们不得不将它映射为一个全局 JNDI 名称。要绑定 JNDI 名称:

  1. 打开 EGLWeb 项目(在 /WEB-INF Web 内容中)的 web.xml 部署描述符。
  2. 选择 References选项卡(在底部),然后选择 Resources选项卡(在顶部)。
  3. 选择 Add定义一个新的资源引用。
  4. 输入下列值:
    • Resource Environment Reference: eis/CICSResourceAdapter
    • Type:选择 Browse,然后选择 javax.resource.cci.ConnectionFactory
    • JNDI Name:输入任意唯一的名称;在我们的示例中是: eis/CICSERV
  5. 保存部署描述符。结果如图 10 所示。


图 10. JCA 的资源引用
JCA 的资源引用

3. 在 WebSphere Application Server 中安装 CICS ECI 资源适配器

CICS ECI(External Call Interface,外部调用接口)资源适配器可以访问服务器上的 CICS 事务。Enterprise Developer 不会在产品安装过程中自动装入 ECI 资源适配器。因此您需要为每个用户工作空间都执行一次这个活动。

要查看您的 Enterprise Developer 工作空间中是否已经安装了 CICS ECI 资源适配器(如果有必要,您需要在随后导入它):

  1. 从 Business Integration 透视图中选择 J2EE Hierarchy选项卡(如图 11)。
  2. 展开 Connector Modules。如果其中没有列出 ECIResourceAdapter,您将需要导入它:

    图 11. 检查是否导入了 CICS ECI 资源适配器
    检查是否导入了 CICS ECI 资源适配器

    • 从菜单栏中选择 File => Import...。这样就会打开 Import 向导。
    • 选择 RAR file。这样就会打开 Connector Import 向导。
    • 选择 Browse查找资源适配器文件 cicseci.rar 。您可以在 WSED\resource_adapters 中找到 WebSphere Studio 所带的 JCA 资源适配器,其中 WSED 是安装 WebSphere Studio 的目录。
    • 选中 Standalone connector project复选框。
    • 将项目名称指定为 Connector project。
    • 单击 Finish完成导入。
  3. 在 J2EE Hierarchy 视图中展开 Connector Modules查看新的带有导入的资源适配器的 connector project。

4. 为 WebSphere 测试环境创建资源适配器并配置连接工厂

应用程序组件是用连接工厂(而不是直接用资源适配器)来访问连接实例。连接的示例包括数据库连接、JCA、Java 消息服务(Java Message Service)连接和 SAP R/3 连接。连接工厂实际上是一个配置属性列表持有者。除了资源适配器供应商定义的配置属性的任意集之外,还有几个标准配置属性可以应用到连接工厂上。JCA 连接池管理器会在应用程序服务器运行时使用这些标准属性。

第 3 节中,我们将资源适配器装入了工作空间中。现在,我们必须要创建资源适配器并配置连接工厂,我们会在运行时执行中用到它们。这一步和访问数据库所需的数据存储配置很相似。(在第 1 部分中, 第 7.1 节中有类似步骤的执行。)

在下面的步骤中,您将把连接工厂添加到您的包含了资源适配器在连接到特定 CICS 实例时所需信息的服务器配置中。您将指定 Java 命名和目录接口(Java Naming and Directory Interface,JNDI)查找名称,使得组件能通过它使用新的连接工厂实例,从而使组件能快速地连接到 CICS。在运行时,工厂对象将使用这一信息来生成连接、定位 CICS 服务器并调用服务器上的 CICS 程序。

要创建资源适配器,打开服务器配置,选择 J2C页面,然后选择 Add,如图 12 所示。

这里,我们假设您已经定义了 WebSphere 服务器和服务器配置。要创建资源适配器,打开服务器配置,选择 J2C页面,然后选择 Add,如图 12 所示。选择 Enter关闭窗口。如果 Add 按钮不是活动的,可能是因为在步骤 3 中没有正确地装入 RAR 文件。



图 12. 安装 CICS ECI 资源适配器
安装 CICS ECI 资源适配器

4.1 定义 JCA 用法的安全性

WebSphere Application Server V5 完全支持 Java 认证和授权服务(Java Authentication and Authorization Service,JAAS)体系结构并扩展了访问控制体系结构以支持 J2EE 资源的基于角色的授权。安全性是可选的。要使用 JAAS 认证来约束对事务的访问,您需要把 JAAS 认证条目添加到服务器配置中:

  1. 在服务器配置的 Security 页面上选择 Add定义一个新的 JAAS 认证条目。
  2. 在所显示的域中输入值。任何值对 Alias 名称都是有效的,但 User ID 和 Password 的值需要且必须有效,这样才能运行 CICS 事务。请参阅图 13。


图 13. 定义 JCA 的认证
定义 JCA 的认证

4.2 创建 JCA 连接工厂

现在,我们必须配置 JCA 的连接工厂:

  1. 从服务器配置的 J2C 页面中选择 ECIResourceAdapter
  2. 从 JCA Connection Factories 窗口中选择 Add创建连接工厂(如图 14)。
  3. 输入下列值:
    • Name: CICSERV (CICS 服务器名称)
    • JNDI name: eis/CICSERV (它和 Web 应用程序相匹配)
  4. 为 Component-managed authentication 选择 EGLCICS
  5. 选择 OK


图 14. 连接工厂定义
连接工厂定义

4.3 定义连接工厂的属性

使用 Resource Properties 窗口,通过将配置对话框中每个属性的值改为如下所示的值来定义连接工厂的各属性(如图 15):

  • ServerName: CICSERV (CICS 服务器的名称)
  • ConnectionURL: tcp://carmv1.raleigh.ibm.com (z/OS 机器,在构建描述符的 destHost 中也有定义)
  • Port Number: 22002 (CICS 事务网关的端口)
  • TPNName: TE01 (运行 DB2 规划的 CICS 事务的名称)


图 15. 连接工厂属性
连接工厂属性

5. 测试 COBOL/CICS 事务

在测试之前,您必须完成下列与环境有关的任务,其中大部分是任何运行 CICS 事务的 z/OS 环境的典型任务:

  • 您必须配置并启动 z/OS 构建服务器。
  • 如果您正在使用 Enterprise Developer z/OS IDE 准备 COBOL 代码,您还要配置并启动外部文件系统(foreign file system,FFS)服务器。

    (欲了解有关上述任务的详细信息,请参考标签为“WebSphere Studio Enterprise Developer for z/OS & FFS”(FMID:HEDS500)的安装 CD-ROM 上的“Program Directory for WebSphere Studio Enterprise DeveloperOptions for z/OS”(文档 GI10-3242)。)

  • 您必须安装并配置了 Enterprise Developer Server(5655-I57),因为生成的 COBOL 程序所要使用的模块是由它来提供的。但标准 Enterprise Developer CD 中不包含 Enterprise Developer Server,因此您必须单独地订购它。
  • 和其他 COBOL/CICS 程序一样,此生成的 COBOL 程序的运行时组件必须在 z/OS 中成功地编译、链接编辑并进行编目,同时还必须配置 CICS 事务处理网关并更新 CICS 程序表(如 PPT、PCT 等等)。

在您设置完环境后,就可以进行测试了:

  • 选择 index.jsp
  • 从上下文菜单中选择 Run on Server

您可能遇到的异常错误将涉及到一些 CICS 配置元素。错误消息将提供给您一些信息,但为了能更好地理解,您可能需要查看存储在 z/OS 中的 CICS 日志消息。例如,如果机器无法访问指定的 z/OS IP 地址,您会接收到一条如下所示的消息:


J2CA0056I: The Connection Manager received a fatal connection error from the Resource Adaptor for resource eis/CICSERV. The exception which was received is
[3/12/03 19:17:07:408 EST]7078ea1 SystemErrR com.ibm.vgj.cso.CSOException: class com.ibm.vgj.cso.CSOException,CSO8104E An error occurred during an attempt to communicate with CICS. Exception is CTG9630E: IOException occurred in communication with CICS.

不要感到沮丧,因为像这样的错误一般是由 CTG 或 CICS 配置问题所引起的,所以您不需要对生成的服务器程序组件做任何编码上的改变。





结束语

祝贺您!您没有编写一行 Java 或 COBOL 代码,就实现了一个使用了 STRUTS 的应用程序,并用 JCA Connector 完成了它与 CICS 的连接。您完全可以把这个非常简单的应用程序扩展为一个相当高级的、复杂的应用程序,但它们的编码、测试和调试的过程却是十分相似的。

当开发人员在 EGL 中进行编码时,他们并不需要应付所有的细节问题,因为 EGL 会生成所有的连接器以使用必需的 Java 类,而这些 Java 类会在生成时可用。EGL 为程序员提供了一种简单的方式,使得他们即使不具备实现 J2EE 通常所必需的所有技能,也能够进入复杂的 J2EE 世界。

共38页 上一页 下一页