至此,您已经创建了所有的 COBOL 服务器代码和 Java 包装程序。现在,您必须把大型机组件提交给大型机以创建可执行文件,而且必须正确配置 WebSphere Application Server 以通过 JCA 连接器(它调用 CICS COBOL 程序)来运行应用程序。
现在,您必须执行下列任务以准备并运行应用程序:
当您生成 COBOL 程序、Java 程序或 Java 包装程序时,EGL 都会产生一个构建规划(除非您将构建描述符中的 buildPlan 选项设置为 NO )。Enterprise Developer 把这个生成的构建规划(在我们的示例中就是 TE01ABuildPlan.xml )用作为运行时准备生成的输出这一步的输入。
因为我们并不期望在生成时连接到大型机,所以我们在 COBOL 生成选项中指定 prep = NO 以阻止构建规划被启动。现在,要调用构建规划,请执行下列步骤(如果您将 prep 选项设置为 YES ,下列步骤就不是必需的):
JCA 连接工厂提供了到 CICS 的连接。您必须指定资源适配器在连接到特定的 CICS 实例时所需的全部信息,同时还需指定 JNDI 查找名称,使得组件能通过它使用新的连接工厂实例。有了这个查找名称,组件就能快速地连接到 CICS。然后在运行时,工厂对象就能生成一个连接、定位 CICS 服务器并调用服务器上的 CICS 程序。
当我们定义了链接部件,就要在 CallLink 元素中指定 eis/CICSResourceAdapter 的位置值。因为这个值是一个局部 JNDI 名称,所以我们不得不将它映射为一个全局 JNDI 名称。要绑定 JNDI 名称:
/WEB-INF Web 内容中)的 web.xml 部署描述符。
eis/CICSResourceAdapter
eis/CICSERV
3. 在 WebSphere Application Server 中安装 CICS ECI 资源适配器
CICS ECI(External Call Interface,外部调用接口)资源适配器可以访问服务器上的 CICS 事务。Enterprise Developer 不会在产品安装过程中自动装入 ECI 资源适配器。因此您需要为每个用户工作空间都执行一次这个活动。
要查看您的 Enterprise Developer 工作空间中是否已经安装了 CICS ECI 资源适配器(如果有必要,您需要在随后导入它):
cicseci.rar 。您可以在 WSED\resource_adapters 中找到 WebSphere Studio 所带的 JCA 资源适配器,其中 WSED 是安装 WebSphere Studio 的目录。
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 文件。
4.1 定义 JCA 用法的安全性
WebSphere Application Server V5 完全支持 Java 认证和授权服务(Java Authentication and Authorization Service,JAAS)体系结构并扩展了访问控制体系结构以支持 J2EE 资源的基于角色的授权。安全性是可选的。要使用 JAAS 认证来约束对事务的访问,您需要把 JAAS 认证条目添加到服务器配置中:
4.2 创建 JCA 连接工厂
现在,我们必须配置 JCA 的连接工厂:
CICSERV (CICS 服务器名称)
eis/CICSERV (它和 Web 应用程序相匹配)
4.3 定义连接工厂的属性
使用 Resource Properties 窗口,通过将配置对话框中每个属性的值改为如下所示的值来定义连接工厂的各属性(如图 15):
CICSERV (CICS 服务器的名称)
tcp://carmv1.raleigh.ibm.com (z/OS 机器,在构建描述符的 destHost 中也有定义)
22002 (CICS 事务网关的端口)
TE01 (运行 DB2 规划的 CICS 事务的名称)
在测试之前,您必须完成下列与环境有关的任务,其中大部分是任何运行 CICS 事务的 z/OS 环境的典型任务:
在您设置完环境后,就可以进行测试了:
您可能遇到的异常错误将涉及到一些 CICS 配置元素。错误消息将提供给您一些信息,但为了能更好地理解,您可能需要查看存储在 z/OS 中的 CICS 日志消息。例如,如果机器无法访问指定的 z/OS IP 地址,您会接收到一条如下所示的消息:
不要感到沮丧,因为像这样的错误一般是由 CTG 或 CICS 配置问题所引起的,所以您不需要对生成的服务器程序组件做任何编码上的改变。
祝贺您!您没有编写一行 Java 或 COBOL 代码,就实现了一个使用了 STRUTS 的应用程序,并用 JCA Connector 完成了它与 CICS 的连接。您完全可以把这个非常简单的应用程序扩展为一个相当高级的、复杂的应用程序,但它们的编码、测试和调试的过程却是十分相似的。
当开发人员在 EGL 中进行编码时,他们并不需要应付所有的细节问题,因为 EGL 会生成所有的连接器以使用必需的 Java 类,而这些 Java 类会在生成时可用。EGL 为程序员提供了一种简单的方式,使得他们即使不具备实现 J2EE 通常所必需的所有技能,也能够进入复杂的 J2EE 世界。