COBOL 容器概述
COBOL 容器使 COBOL 模块可以装入到批处理地址空间中,且可以直接将其调用。
可以在应用程序服务器的生命周期内多次创建和破坏容器。使用独立于服务器的 Language Environment® (LE) 封套来创建每个容器。每次创建容器时,保证其具有干净的 LE。
Java™ 程序将参数传递到 COBOL 中并检索结果。提供了 COBOL 调用存根生成器工具来基于 COBOL 源中的数据和链接定义进行创建 Java 调用存根和数据绑定。此外,Java 程序创建的 JDBC 类型 2 连接可以在同一事务上下文下与 COBOL 程序共享。
COBOL 容器的值
本产品为 Java 批处理提供综合执行环境。 批处理支持的部分设计是融合了其他信息处理。COBOL 自计算机的发展初期起就是批处理的一部分,并且对 COBOL 资产进行了大量的投入。COBOL 容器提供将 COBOL 直接集成到 Java 处理中的方式。
COBOL 程序的编程限制
- 不允许用户定义的错误处理程序。
- 不允许显式事务控制:例如,没有 COMMIT 或 ROLLBACK。
- 不能设置 DB2® 专用寄存器,例如 SOLID 或 SCHEMA。
- DD 访问要求用户代码动态分配或取消分配该 DD。
- 不支持 ENTRY 标签的 Java 调用。
- 不支持 Java 代码的 COBOL 调用
COBOL 编译需求
您必须使用以下选项来编译要在环境中使用的所有 COBOL 模块:
- dll
- COBOL 模块必须是 DLL 格式。
- rent
- COBOL 模块必须包含可重入代码。
- thread
- COBOL 模块必须是线程安全的。
- outdd(WCGILOUT)
- 为了让 COBOL DISPLAY 输出显示在产品作业日志中,这是必需的。
- SQL('ATTACH(RRSAF)')
- 为了进行 DB2 访问,这是必需的。
cbl dll,lib,rent,thread,outdd(wcgilout)
cob2 -c -bdll,rent,thread,lib,list '-qOUTDD(WCGILOUT)' sample.cbl
COBOL 容器的限制
必须使用 ISOLATE 的工作负载概要文件来配置托管 COBOL 容器的产品。
有关如何配置工作负载概要文件的信息,请阅读关于 z/OS® 平台上的 ORB 服务高级设置的信息。
COBOL 容器的 JDBC 数据源限制
在此部分中列出的限制适用于任何 JDBC 数据源,数据源包含通过 ILContainer.setDB2Connection 在 Java 与 COBOL 代码之间共享的 DB2 类型 2 连接。[还指定 ILContainer.setDB2Connection 的对象类型。]
这些限制确保在关闭 JDBC 连接时,正确清理了 COBOL 代码打开的以及跨 COMMIT 边界存留的任何 DB2 数据构造,例如 WITH HOLD CURSOR。
必须禁用连接池。您可以使用 disableWASConnectionPooling 属性来禁用连接池。要使用管理控制台设置此属性,请单击
。添加名为 disableWASConnectionPooling 的定制属性,然后将该值设置为 true。连接共享必须设置为 UNSHARED。可以使用 globalConnectionTypeOverride 属性将数据源的连接共享设置为 UNSHARED。要使用管理控制台设置此属性,请单击
。添加名为 globalConnectionTypeOverride 的定制属性,然后将该值设置为 unshared。有关这些属性的更多信息,请阅读关于“调节连接池”的信息。