【发布时间】:2022-02-04 05:58:30
【问题描述】:
我正在尝试了解一些 IBM MQ 看跌期权:
我已使用https://www.ibm.com/docs/en/ibm-mq/9.2?topic=interfaces-mqputmessageoptionsnet-class 来记录文档。
-
MQPMO_ASYNC_RESPONSE和MQPMO_SYNC_RESPONSE似乎实际上是互斥的,但是这些选项具有不同的 ID(第 12 位和第 13 位)。当两个选项都设置或都没有设置时,MQ 会做什么? -
t 似乎
MQPMO_SYNCPOINT和MQPMO_NO_SYNCPOINT实际上是互斥的,但这些选项具有不同的 ID(位 2 和位 3)。当两个选项都设置或都没有设置时,MQ 会做什么? -
MQPMO_RESPONSE_AS_Q_DEF让我更加困惑。正如我从文档中了解到的那样,这一位将同步或异步请求的控制推迟到队列定义。因此忽略使用MQPMO_ASYNC_RESPONSE和MQPMO_SYNC_RESPONSE设置的选项。但是文档说明了以下内容
对于 MQDestination.put 调用,此选项从队列的 DEFPRESP 属性中获取 put 响应类型。 对于 MQQueueManager.put 调用,此选项会导致同步进行调用。
DEFRESPhttps://www.ibm.com/docs/en/ibm-mq/9.1?topic=queues-defpresp-mqlong 的文档说明了这一点:
当 MQPMO 中的 PutResponseType 设置为 MQPMO_RESPONSE_AS_Q_DEF 时,默认放置响应类型 (DEFPRESP) 属性定义应用程序使用的值。该属性对所有队列类型都有效。
值为以下之一:
- 同步 同步发出 put 操作并返回响应。
- 异步 put 操作是异步发出的,返回 MQMD 字段的子集。
但其他文档说设置此选项会使调用同步。
简而言之:看似相互排斥的选项会发生什么,MQPMO_RESPONSE_AS_Q_DEF 的真正作用是什么?
【问题讨论】:
标签: ibm-mq