XPLink 以及 C 和 C++ 编程

CICS® 支持使用 XPLINK 选项编译的 C 和 C++ 程序。 所有使用 CICS XPLink 支持的程序都必须是可重入且线程安全的。

"额外性能链接" (通常缩写为 XPLink) 是 z/OS® 功能部件,它提供高性能子例程调用和返回机制。 这将导致执行路径长度短且高度优化。

面向对象的编程是基于向对象发送 "消息" 的概念构建的,这将导致该对象执行某些操作。 消息发送活动作为子例程调用实现。 在 C++ 术语中称为成员函数的子例程通常是一小部分代码。 典型 C++ 程序的特征执行流包含许多对小代码段的子例程调用。 这种性质的程序受益于 XPLink 优化技术。

MVS 有一个标准的子程序调用约定,可以追溯到System/360 的早期。 此约定针对以下环境进行了优化: 子例程较为复杂,其中的子例程相对较少,并且调用这些子例程的次数相对较少。 面向对象的编程约定已对此进行了更改。 子例程变得更简单,但它们是众多的,并且子例程调用的频率增加了数量级。 子例程的大小,数字和使用模式的这种更改使得需要优化所涉及的系统开销。 XPLink 是此优化的结果。

要使用 XPLink , C 或 C++ 应用程序代码必须是 reentrantthreadsafe。 同一代码实例可以在多个 MVS TCB 上执行,并且如果没有线程安全机制来保护共享资源,那么应用程序代码的执行行为不可预测。 这一点不能过于强调。

如果计划使用 XPLINK 选项为 CICS 环境编译 C 和 C++ 程序,那么应用程序开发者应该执行以下操作以利用 CICS XPLink 支持:
  • 开发代码,严格遵守线程安全编程原则和技术。
  • 在设置了 XPLINK 选项的情况下编译 C 或 C++ 程序。
  • 在 PROGRAM 资源定义中指示程序是线程安全的。
  • 请考虑在 CEEUOPT 或 #pragma 中使用 CICSVAR (请参阅 定义 Language Environment 的运行时选项 中的说明以获取详细信息)。
所有使用 CICS XPLink 支持的程序都必须是可重入且线程安全的。 只有应用程序开发者才能保证特定应用程序的代码满足这些要求。