MQ 记录的选项记录

每个 MQ 记录都与 5 个选项记录相关联,EGL 将这些选项记录用作对 MQSeries® 进行的隐藏调用中的自变量:

当指定选项记录来作为 MQ 记录的属性时,引用的是将工作存储器记录部件(如 MQOD)用作 typeDef 的变量。该部件位于随产品提供的 EGL 文件中,如 MQSeries 支持中所述。您可以将记录部件复制到自己的 EGL 文件中并定制该部件,而不是按原样使用记录部件。

如果您未指示正在使用给定的选项记录,则 EGL 会构建一个缺省记录并指定值,如下列各节所述。但是,在不使用 MQ 记录的情况下访问 MQSeries 时,缺省选项记录不可用。

获取选项记录

可以根据 MQSeries 获取消息选项(MQGMO,它是 MQSeries MQGET 调用中的自变量)来创建获取选项记录。如果未声明获取选项记录,则 EGL 会自动构建一个名为 MQGMO 的缺省值,并且生成的程序将执行下列操作:
  • 使用列示在数据初始化开头的值来初始化获取选项记录
  • 将 OPTIONS 设置为 MQGMO_SYNCPOINT 或 MQGMO_NO_SYNCPOINT,这取决于您是否设置了 MQ 记录属性将消息包括在事务中

放置选项记录

可以根据 MQSeries 放置消息选项(MQPMO,它是 MQSeries MQPUT 调用中的自变量)来创建放置选项记录。如果未声明放置选项记录,则 EGL 会自动构建一个名为 MQPMO 的缺省值,并且生成的程序将执行下列操作:
  • 使用列示在数据初始化开头的值来初始化放置选项记录
  • 将 OPTIONS 设置为 MQPMO_SYNCPOINT 或 MQPMO_NO_SYNCPOINT,这取决于您是否设置了 MQ 记录属性将消息包括在事务中

打开选项记录

打开选项记录的内容确定了在调用 MQSeries 命令 MQOPEN 或 MQCLOSE 时使用的 Options 参数的值。打开选项记录部件(MQOO)是可用的,但是如果未声明基于该部件的记录,则 EGL 会自动构建一个名为 MQOO 的缺省值,如下所示:
  • 对于因为 EGL add 语句而调用的 MQOPEN,生成的程序将 MQOO.OPTIONS 设置为以下值:
      MQOO_OUTPUT + MQOO_FAIL_IF_QUIESCING
  • 当消息队列记录属性选项打开输入队列以供独占使用生效时,对于因为 EGL scan 语句而调用的 MQOPEN,生成的程序将 MQOO.OPTIONS 设置为以下值:
      MQOO_INPUT_EXCLUSIVE + MQOO_FAIL_IF_QUIESCING
  • 当消息队列记录属性选项打开输入队列以供独占使用无效时,在由于 EGL scan 语句而调用的 MQOPEN 上,生成的程序将 MQOO.OPTIONS 设置为以下值:
      MQOO_INPUT_SHARED + MQOO_FAIL_IF_QUIESCING
  • 对于因为 EGL close 语句而调用的 MQCLOSE,生成的程序将 MQOO.OPTIONS 设置为以下值:
      MQCO_NONE

消息描述符记录

可以根据 MQSeries 消息描述符(MQMD,它是 MQGET 和 MQPUT 调用中的参数)来创建消息描述符记录。如果未声明消息描述符记录,则 EGL 会自动构建一个名为 MQMD 的缺省值,并使用列示在数据初始化中的值来初始化该记录。

队列描述符记录

可以根据 MQSeries 对象描述符(MQOD,它是 MQSeries MQOPEN 和 MQCLOSE 调用中的自变量)来创建队列描述符记录。如果未声明队列描述符记录,则 EGL 会自动构建一个名为 MQOD 的缺省值,并且生成的程序将执行下列操作:
  • 使用列示在数据初始化的开头中的值来初始化队列描述符记录
  • 将该记录中的 OBJECTTYPE 设置为 MQOT_Q
  • 将 OBJECTMGRNAME 设置为系统字 record.resourceAssociation 中指定的队列管理器名;但是如果 record.resourceAssociation 未引用该队列管理器名,则 OBJECTQMGRNAME 没有值
  • 将 OBJECTNAME 设置为 record.resourceAssociation 中的队列名
使用条款 | 反馈
(C) Copyright IBM Corporation 2000, 2005. All Rights Reserved.