Signal1 (MQLONG)

这是仅与 MQGMO_SET_SIGNAL 选项结合使用的输入字段; 它标识在消息可用时要传递的信号。

注: 此字段的数据类型和用法由环境确定; 因此,要在不同环境之间移植的应用程序不得使用信号。
  • z/OS®上,此字段必须包含事件控制块 (ECB) 的地址。 在发出 MQGET 调用之前,应用程序必须清除 ECB。 在队列关闭之前,不得释放包含 ECB 的存储器。 队列管理器使用描述的其中一个信号完成代码来发布 ECB。 这些完成代码以位 2 到 31 的 ECB 为单位设置,这是在 z/OS 映射宏 IHAECB 中定义的用于用户完成代码的区域。
  • 在所有其他环境中,这是保留字段; 其值不重要。
信号完成代码为:
MQEC_MSG_已到达
适合的消息已到达队列。 此消息未保留给调用者; 必须发出第二个 MQGET 请求,但另一个应用程序可能会在发出第二个请求之前检索消息。
MQEC_WAIT_INTERVAL_EXPIRED
指定的 WaitInterval 已到期,没有合适的消息到达。
MQEC_WAIT_CANCEL
由于不确定原因 (例如队列管理器正在终止或正在禁用队列) ,已取消等待。 如果需要进一步诊断,请重新发出请求。
MQEC_Q_MGR_QUIESCING
由于队列管理器已进入停顿状态 (在 MQGET 调用上指定了 MQGMO_FAIL_IF_QUIESCING) ,因此已取消等待。
MQEC_CONNECTION_QUIESCING
由于连接已进入停顿状态 (在 MQGET 调用上指定了 MQGMO_FAIL_IF_QUIESCING) ,因此已取消等待。
此字段的初始值由环境确定:
  • z/OS上,初始值为空指针。
  • 在所有其他环境中,初始值为 0