映射服务集成中的其他 MQRFH2 头字段
在 IBM MQ 消息头 (MQRFH2) 中,有一些附加字段特定于服务集成总线并且允许使用 IBM MQ 中未使用的功能。当 IBM MQ 将消息从一个服务集成总线传输到另一个服务集成总线时,这些字段显示可由服务集成应用程序使用但 IBM MQ 不需要的信息。
附加字段插入到 <sib> 和 <jms> 文件夹内的应用程序消息的 MQRFH2 头中。这些字段未显示为 JMS 消息字段或属性。
将消息发送至
IBM MQ 时,如果同时符合以下条件,那么消息的 MQRFH2 头包含 <sib>
文件夹:
- 服务集成目标的 IBM MQ 队列点属性配置为使用 MQRFH2 头。
- 服务集成消息中设置了对应于 <sib> 文件夹内容的字段。
MQRFH2 头和字段(<jms> 文件夹) | SIBusMessage 字段或属性 |
---|---|
Frp(追加至 Dst 字段) | 正向路由路径头字段 |
Rrp(追加至 Rto 字段) | 反向路由路径头字段 |
MQRFH2 头和字段(<sib> 文件夹) | SIBusMessage 字段或属性 |
---|---|
RTopic | 应答主题 |
RPri | 应答优先级 |
RPer | 应答持久性 |
RTTL | 应答生存时间 |
JsApiUserId | 服务集成应用程序的应用程序用户标识 (JMSXUserId) |
JsDst | JMS 目标 |
JsFmt | 消息格式 |
JsSysMsgId | 系统消息标识 |
在服务集成与 IBM MQ 之间映射 JMS 目标属性
服务集成目标的属性不同于 IBM MQ 队列所使用的属性,并且它们不能准确地映射。当服务集成使用 IBM MQ 来传输消息时,将 JMS 目标属性的两种标识都保存在消息中非常有用。为解决此问题,消息离开服务集成进入 IBM MQ 时,在 RFH2 中引用了另一 RFH2 属性来存储服务集成目标属性。
该服务集成目标属性将会序列化,格式化为十六进制字符串,然后通过服务集成 RFH2 文件夹(<sib> 文件夹)的 JsDst 属性存储起来。IBM MQ 应用程序不使用此文件夹,但如果消息将由另一个服务集成应用程序检索,那么它可以使用该信息。
例如:服务集成目标
SIQ1 位于队列管理器 QM1 中的 IBM MQ 队列 MQQ1 上。服务集成应用程序将消息发送至 SIQ1 时,会执行以下操作:
- 通过使用 JsDst 属性,将 PMQ1 的序列化表示放在 RFH2 头的 <sib> 文件夹中。
- 将该消息存储在 MQQ1 上。
- 通过使用 Dst 属性,也将字符串“queue://QM1/MQQ1”放在 RFH2 头的 <jms> 文件夹中。
注: 如果将 IBM MQ 服务器总线成员配置为不使用 RFH2 头,那么消息进入 IBM MQ
时不会保留 JMS 目标。在此情况下,服务集成应用程序仍可检索 JMS 消息,但是,任何检查 JMS 目标属性的尝试都将导致 JMS 异常。