MQGetMessageOptions.NET

使用 MQGetMessageOptions 来指定如何检索消息。 它会修改 MQDestination.Get的行为。

System.Object
        |
        └─ IBM.WMQ.MQBase
                |
                └─ IBM.WMQ.MQBaseObject
                        |
                        └─ IBM.WMQ.MQGetMessageOptions
public class IBM.WMQ.MQGetMessageOptions extends IBM.WMQ.MQBaseObject;

属性

注: 此类中某些可用选项的行为取决于使用这些选项的环境。 这些元素标有星号 *。

获取属性时抛出 MQException 的测试。

public int GroupStatus {get;}*
GroupStatus 指示检索到的消息是否在组中,以及它是否是组中的最后一条消息。 可能的值为:
MQC.MQGS_LAST_MSG_IN_GROUP
消息是组中的最后一条或唯一一条消息。
MQC.MQGS_MSG_IN_GROUP
消息位于组中,但不是组中的最后一个消息。
MQC.MQGS_NOT_IN_GROUP
消息不在组中。
public int MatchOptions {get; set;}*
MatchOptions 确定如何选择消息。 可以设置以下匹配选项:
MQC.MQMO_MATCH_CORREL_ID
要匹配的相关标识。
MQC.MQMO_MATCH_GROUP_ID
要匹配的组标识。
MQC.MQMO_MATCH_MSG_ID
要匹配的消息标识。
MQC.MQMO_MATCH_MSG_SEQ_NUMBER
匹配消息序号。
MQC.MQMO_NONE
不需要匹配。
public int Options {get; set;}
选项 控制 MQQueue.get的操作。 可以指定下列任何值。 如果需要多个选项,那么可以使用按位 OR 运算符添加或组合值。
MQC.MQGMO_ACCEPT_TRUNCATED_MSG
允许截断消息数据。
MQC.MQGMO_ALL_MSGS_AVAILABLE*
仅当组中的所有消息都可用时,才从组中检索消息。
MQC.MQGMO_ALL_SEGMENTS_AVAILABLE*
仅当组中的所有段都可用时,才检索逻辑消息的段。
MQC.MQGMO_BROWSE_FIRST
从队列开始浏览。
MQC.MQGMO_BROWSE_MSG_UNDER_CURSOR*
浏览光标下的浏览消息。
MQC.MQGMO_BROWSE_NEXT
从队列中的当前位置进行浏览。
MQC.MQGMO_COMPLETE_MSG*
仅检索完整的逻辑消息。
MQC.MQGMO_CONVERT
在将数据复制到消息缓冲区之前,请求要转换的应用程序数据,以符合 MQMessageCharacterSetEncoding 属性。 由于从消息缓冲区检索数据时也会应用数据转换,因此应用程序不会设置此选项。

使用此选项可能会在从单字节字符集转换为双字节字符集时导致问题。 而是在传递消息后使用 readStringreadLinewriteString 方法执行转换。

MQC.MQGMO_FAIL_IF_QUIESCING
如果队列管理器正在停顿,那么失败。
MQC.MQGMO_LOCK*
锁定浏览的消息。
MQC.MQGMO_LOGICAL_ORDER*
以逻辑顺序返回组中的消息以及逻辑消息段。
如果在可重新连接的客户机中使用 MQGMO_LOGICAL_ORDER 选项,那么会将 MQRC_RECONNECT_INCOMPATIBLE 原因码返回到应用程序。
MQC.MQGMO_MARK_SKIP_BACKOUT*
允许回退工作单元而不恢复队列上的消息。
MQC.MQGMO_MSG_UNDER_CURSOR
在浏览光标下获取消息。
MQC.MQGMO_NONE
未指定其他选项; 所有选项都采用其缺省值。
MQC.MQGMO_NO_PROPERTIES
不检索消息的属性,消息描述符 (或扩展) 中包含的属性除外。
MQC.MQGMO_NO_SYNCPOINT
在没有同步点控制的情况下获取消息。
MQC.MQGMO_NO_WAIT
如果没有合适的消息,请立即返回。
MQC.MQGMO_PROPERTIES_AS_Q_DEF
检索由 MQQueuePropertyControl 属性定义的消息属性。 对消息描述符或扩展中的消息属性的访问不受 PropertyControl 属性的影响。
MQC.MQGMO_PROPERTIES_COMPATIBILITY
MQRFH2 头中检索前缀为 mcdjmsusrmqext的消息属性。 将废弃消息的其他属性 (消息描述符或扩展中包含的属性除外)。
MQC.MQGMO_PROPERTIES_FORCE_MQRFH2
MQRFH2 头中检索消息属性 (消息描述符或扩展中包含的属性除外)。 在期望检索属性但无法更改为使用消息句柄的应用程序中使用 MQC.MQGMO_PROPERTIES_FORCE_MQRFH2
MQC.MQGMO_PROPERTIES_IN_HANDLE
使用 MsgHandle检索消息属性。
MQC.MQGMO_SYNCPOINT
在同步点控制下获取消息。 此消息被标记为对其他应用程序不可用,但仅当落实工作单元时才会从队列中删除此消息。 如果工作单元回退,那么该消息将再次可用。
MQC.MQGMO_SYNCPOINT_IF_PERSISTENT*
获取具有同步点控制的消息 (如果消息是持久消息)。
MQC.MQGMO_UNLOCK*
解锁先前锁定的消息。
MQC.MQGMO_WAIT
等待消息到达。
public string ResolvedQueueName {get;}
队列管理器会将ResolvedQueueName设置为从中获取报文的队列的本地名称。 如果打开的是别名队列或模型队列,则ResolvedQueueName与用于打开队列的名称不同。
public char Segmentation {get;}*
分段 指示您是否可以允许对检索到的消息进行分段。 可能的值为:
MQC.MQSEG_INHIBITED
不允许分段。
MQC.MQSEG_ALLOWED
允许分段
public byte SegmentStatus {get;}*
SegmentStatus 是一个输出字段,用于指示检索的消息是否为逻辑消息的段。 如果消息是段,那么该标志指示它是否是最后一个段。 可能的值为:
MQC.MQSS_LAST_SEGMENT
消息是逻辑消息的最后或唯一段。
MQC.MQSS_NOT_A_SEGMENT
消息不是段。
MQC.MQSS_SEGMENT
消息是一个段,但不是逻辑消息的最后一个段。
public int WaitInterval {get; set;}
WaitIntervalMQQueue.get 调用等待合适消息到达的最长时间 (以毫秒为单位)。 将 WaitIntervalMQC.MQGMO_WAIT配合使用。 设置值 MQC.MQWI_UNLIMITED 以等待无限的消息时间。

构造函数

public MQGetMessageOptions()
创建一个新的 "MQGetMessageOptions对象,其选项设置为 "MQC.MQGMO_NO_WAITWaitInterval设置为零,ResolvedQueueName设置为空。