定义 Language Environment 的运行时选项

Language Environment® 提供了运行时选项来控制程序的处理。 在 CICS® 下,究竟哪些选项适用于某个程序的执行,不仅取决于程序,还取决于程序的运行方式。

Java™ 程序和从 Web 启动的程序使用 Language Environment 预初始化模块 CEEPIPI。 这具有自己的 CEEDOPT CSECT 版本,此类程序从此 CSECT 获取其运行时选项。

对于正常的 CICS 任务,如从终端启动的任务,可使用下列任一方法设置 Language Environment 运行时选项。 有关 Language Environment 运行时选项全部优先顺序的更多信息,请参阅《 z/OS Language Environment 编程指南》。 这些方法按其处理顺序显示。 每个设置都可以被以下一个设置覆盖。 这实际上是一个相反的优先顺序。
  1. CEECCICS 内置的 CEEDOPT CSECT 包含 IBM® Language Environment 默认运行时选项。 您可以使用位于 SCEESAMP 中的 CEEWCOPT 样本作业来更改这些缺省运行时选项。 此选项受支持,但使用 CEEPRMxx parmlib 成员来指定运行时选项是首选且最简单的方法。
  2. CEEPRMxx parmlib 成员支持 CEECOPT 选项组,这是设置 Language Environment 默认运行时选项的首选方法,用于 CICS。
  3. 在区域范围的缺省选项所在的 CEEROPT CSECT 中。 此 CSECT 被链接编辑到同名的装入模块中,并放置在 CICS 作业的 DFHRPL 库并置中的数据集内。
  4. 用户可替换程序 DFHAPXPO (仅适用于 XPLINK 程序)。
  5. 在用户提供的应用程序级别运行时选项所在的 CEEUOPT CSECT 中。 此 CSECT 与应用程序本身链接。
  6. 在使用编程语言选项语句的应用程序源代码中,如下所示:
    • 在C程序中,通过程序源代码中的#pragma runopts语句。 例如:
      #pragma runopts(rptstg(on))
    • 在 PL/I 程序中,通过程序中的 PLIXOPT 声明语句。 例如:
      DECLARE PLIXOPT CHARACTER(18) VARYING STATIC EXTERNAL
      INIT('RPTOPTS(ON) NOSTAE');
    注: 没有允许在 COBOL 程序或 C++ 程序中设置运行时选项的源代码机制。
  7. 在调试配置文件中指定的 Language Environment 选项中。 更多信息,请参阅调试配置文件

在大多数安装中,先前列表中的第一个方法对应用程序员不可用,而第二个方法通常不可用。 但是,应用程序员可以使用方法 4 或方法 5。 仅选择一个方法; 请勿尝试同时使用方法 4 和方法 5。 有关生成与应用程序连接的 CEEUOPT CSECT 的信息,请参阅 z/OS Language Environment Customization

CEEDOPT 和 CEEROPT 都能够设置任何选项,以便以后的规范无法覆盖此选项。

有关如何指定 Language Environment 运行时选项及其含义的更多信息,请参阅 z/OS Language Environment Programming Reference

CICS 下忽略的运行时选项

在 CICS 下,许多 Language Environment 运行时选项设置都会被忽略。 这些都是 Fortran 仅有的选项,另外还有以下选项:
  • ABPERC
  • AIXBLD
  • CBLOPTS
  • CBLQDA
  • DEBUG
  • 特警
  • 中断
  • LIBRARY
  • MSGFILE
  • 非 IPTSTACK
  • 任务计数
  • POSIX (除非 XPLINK 或 Java 程序)
  • RTEREUS
  • 实时定位系统
  • SIMVRD
  • 线程堆
  • 版本

确定使用了哪些运行时选项

如果想知道程序运行时哪些 Language Environment 运行时选项有效,请指定选项 RPTOPTS(ON)。 当程序结束时,将生成使用的所有运行时选项的列表。 该列表将写入 CESE TD 队列。 该列表不仅包含选项的实际设置,还包含它们的来源,即,它们是安装或区域的缺省设置,还是由程序员设置,还是在其中一个出口中设置。

注: 请勿在生产环境中使用 RPTOPTS (ON)。 存在大量开销,这会导致将大量数据写入 CESE 队列。

子相关可调度单元组中的运行时选项: 性能注意事项

在 CICS 下,执行 CICS LINK 命令会创建 Language Environment 所称的子 Enclave。 新环境已初始化,子相关可调度单元组将获取其运行时选项。 这些运行时选项与创建相关可调度单元组中存在的选项无关。

频繁使用 EXEC CICS LINK 以及许多运行时选项的单独设置可能会影响性能。 静态或动态调用不会产生这些开销。 如果必须使用 CEEUOPT 来指定选项,那么仅指定那些不同于缺省值的选项可提高性能。

执行 CICS XCTL 命令时发生类似情况。 在这种情况下,我们不会获取子相关可调度单元组,但会终止现有相关可调度单元组,然后使用为新程序确定的运行时选项进行重新初始化。 相同的性能注意事项也适用。