“CICS®
事务网关”提供了一些资源适配器,它们可以实现“公共客户机接口”(CCI)以便与 CICS
进行交互。
公共客户机接口
CCI 是由 JCA 定义的一个高级接口,可让 J2EE 开发者使用“外部调用接口”(ECI)与在 CICS 服务器上运行的程序进行通信。
CCI 有两种截然不同的类:
- 通用 CCI 类:通用 CCI 类用来请求与 EIS(例如,CICS)建立连接、在该 EIS 上执行命令以及传递输入和检索输出。之所以说这些类是通用的,是因为它们不会传递特定于某个特定 EIS 的信息。“连接”和“连接工厂”就是通用 CCI 类的两个示例。
- 特定于 CICS 的 CCI 类:特定于 CICS 的类用来传递 Java™
客户机应用程序与 CICS 之间的特定信息。以下是特定于 CICS 的类的示例:
无论使用哪种 EIS,遵循使用 CCI 的编程接口模型的应用程序都具有共同结构。JCA 定义用来表示与 EIS 的连接的“连接”和“连接工厂”。这些对象允许应用程序服务器管理资源适配器的安全性、事务上下文和连接池。应用程序必须获得连接工厂才能够启动,并且从该连接工厂可以获得连接。此连接的属性可被 ConnectionSpec 对象覆盖。ConnectionSpec 类(例如,ECIConnectionSpec)是特定于 CICS 的。在获得连接之后,才能从连接创建交互,以便发出特定请求。对于连接,交互可以通过特定于 CICS 的 InteractionSpec 类(ECIInteractionSpec)来设置定制属性。要执行交互,应用程序将调用 execute() 方法并且使用特定于 CICS 的记录对象来存放数据。
- 连接工厂:可以通过两种方式获得连接工厂:
- 受管:如果您正在使用应用程序服务器,则通常通过使用管理界面从资源适配器来创建连接工厂。此连接工厂设置了一些定制属性,例如,设置为 ConnectionURL 的网关。创建了连接工厂之后,任何企业应用程序就可通过 JNDI 来使用它。这种类型的环境称为受管环境。受管环境允许应用程序服务器管理连接的服务质量。
- 非受管:如果未使用应用程序服务器,则必须创建受管连接工厂并设置它的定制属性。然后就可以从受管连接工厂创建连接工厂。这种类型的环境称为非受管环境。非受管环境不允许应用程序服务器管理连接。
为了从 CICS 服务器中检索数据,J2EE 应用程序应该:
- 使用连接工厂对象来创建连接对象。
- 使用连接对象来创建交互对象。
- 使用交互对象来在 EIS 上执行命令。
- 关闭交互和连接。
以下示例说明了使用 J2EE CCI 接口在 EIS 上执行命令:
ConnectionFactory cf = [Lookup from JNDI namespace]
Connection conn = cf.getConnection();
Interaction int = conn.createInteraction();
int.execute([Input output data]);
int.close();
conn.close();