将消息头字段和属性映射至 IBM MQ 格式以及从此格式映射至消息头字段和属性
服务集成将消息转换为 IBM MQ 格式时,它根据服务集成消息头字段和属性设置 MQMD 和 MQRFH2 中的字段(包括适用于消息的 JMS 消息头字段和属性)。服务集成转换 IBM MQ 格式的消息时,它将根据 IBM MQ 消息中的 MQMD 和 MQRFH2 设置服务集成消息头字段和属性。
通过服务集成和 IBM MQ 在 JMS 程序之间交换消息
一般来说,不必知道消息格式之间的转换就可以在服务集成与 IBM MQ 之间交换 JMS 消息,原因是服务集成会自动执行适当转换,包括字符和数字编码。但是,如果 JMS 应用程序未按预期运行,或者服务集成配置包括用于处理到达或来自非 JMS IBM MQ 程序的消息的 JMS 程序或调解,那么您可能必须了解消息转换。
如果服务集成应用程序与 IBM MQ 应用程序交换 MapMessage 对象,那么可能必须指定非缺省映射消息编码格式。
IBM MQ 消息属性:MQMD 和 MQRFH2
同样,服务集成可能从生成不带 MQRFH2 的消息的 IBM MQ 应用程序接收消息。服务集成接收不带 MQRFH2 的消息时,它会尽量从 MQMD 获取信息并对其他字段使用缺省值来创建“最佳推测”服务集成头。
有关消息描述符和消息头的内容的详细信息,请参阅 IBM MQ 应用程序编程参考。有关 IBM MQ JMS 支持的详细信息(包括有关 IBM MQ 如何在 MQMD 和 MQRFH2 中存储 JMS 消息属性和头字段的详细信息),请参阅 IBM MQ。
IBM MQ 消息属性:JMS 头字段
下表显示将消息转换为 IBM MQ 格式以及转换该格式的消息时服务集成如何在 MQMD 和 MQRFH2 字段之间映射 JMS 头字段。
该表将 MQRFH2 字段显示为 folder.field,其中 folder 是包含该字段的 MQRFH2 文件夹的名称,field 是该字段在 MQRFH2 文件夹中的名称。
对于一些 JMS 头字段,同时存在 MQMD 字段和 MQRFH2 字段。服务集成将消息转换为 IBM MQ 格式时,它会设置 MQMD 和 MQRFH2 字段。服务集成转换 IBM MQ 格式的消息时,它将根据 MQRFH2 字段(如果可用)设置 JMS 头字段,否则根据 MQMD 字段设置 JMS 头字段。
JMS 头字段 | MQMD 字段 | MQRFH2 字段 | 注意 |
---|---|---|---|
JMSCorrelationID | CorrelId | jms.Cid | 请参阅注释 1。 |
JMSDeliveryMode | Persistence | jms.Dlv | 请参阅注释 15。 |
JMSDestination | jms.Dst | 请参阅注释 16。 | |
JMSExpiration | Expiry | jms.Exp | |
JMSMessageID | MsgId | ||
JMSPriority | Priority | 请参阅注释 2。 | |
JMSRedelivered | BackoutCount | 请参阅注释 3。 | |
JMSReplyTo | ReplyToQ 和 ReplyToQMgr | jms.Rto | 请参阅注释 16。 |
JMSTimestamp | PutDate 和 PutTime | jms.Tms | |
JMSType | mcd.Type |
IBM MQ 消息属性:JMS 定义的属性
下表显示将消息转换为 IBM MQ 格式以及转换该格式的消息时服务集成如何在 JMS 定义的属性与 MQMD 和 MQRFH2 字段之间进行映射。
该表将 MQRFH2 字段显示为 folder.field,其中 folder 是包含该字段的 MQRFH2 文件夹的名称,field 是该字段在 MQRFH2 文件夹中的名称。
对于一些 JMS 定义的属性,同时存在 MQMD 字段和 MQRFH2 字段。服务集成将消息转换为 IBM MQ 格式时,它会设置 MQMD 和 MQRFH2 字段。服务集成转换 IBM MQ 格式的消息时,它将根据 MQRFH2 字段(如果可用)设置 JMS 定义的属性,否则根据 MQMD 字段进行设置。
JMS 定义的属性 | MQMD 字段 | MQRFH2 字段 | 注意 |
---|---|---|---|
JMSXAppID | PutApplName | ||
JMSXDeliveryCount | BackoutCount | ||
JMSXGroupID | GroupId | jms.Gid | 请参阅注释 4 和注释 5。 |
JMSXGroupSeq | MsgSeqNumber | jms.Seq | |
JMSXUserID | UserIdentifier |
IBM MQ 消息属性:特定于 JMS 提供程序的属性
下表显示将消息转换为 WebSphere MQ 格式以及转换 WebSphere MQ 格式的消息时服务集成如何在特定于 JMS 提供程序的属性与 MQMD 和 MQRFH2 字段之间形成映射。通常,您使用这些属性来满足接收应用程序中的特殊要求,所以应咨询接收应用程序的开发者或管理员以了解有关必需属性值的详细信息。
特定于 JMS 提供程序的属性 | MQMD 字段 | MQRFH2 字段 | 注意 |
---|---|---|---|
JMS_IBM_ArmCorrelator | mqext.Arm | 请参阅注释 6。 | |
JMS_IBM_Character_Set | CodedCharacterSetId | CodedCharacterSetId | 请参阅注释 7。 |
JMS_IBM_Encoding | 编码 | 编码 | 请参阅注释 7。 |
JMS_IBM_Feedback | 反馈 | ||
JMS_IBM_Format | 格式 | 格式 | 请参阅注释 7。 |
JMS_IBM_Last_Msg_In_Group | MQMF_LAST_MSG_IN_GROUP | 请参阅注释 8。 | |
JMS_IBM_MQMD_CorrelId | CorrelId | 请参阅注释 9 和注释 10。 | |
JMS_IBM_MQMD_MsgId | MsgId | 请参阅注释 9 和注释 11。 | |
JMS_IBM_MQMD_Persistence | Persistence | 请参阅注释 9、注释 12 和注释 15。 | |
JMS_IBM_MQMD_ReplyToQ | ReplyToQ | 请参阅注释 9、注释 13 和注释 16。 | |
JMS_IBM_MQMD_ReplyToQMgr | ReplyToQMgr | 请参阅注释 9、注释 13 和注释 16。 | |
JMS_IBM_MsgType | MsgType | ||
JMS_IBM_PutDate | PutDate | ||
JMS_IBM_PutTime | PutTime | ||
JMS_IBM_Report_* | Report | 请参阅注释 14。 | |
JMS_IBM_RMCorrelator | mqext.Wrm | ||
JMS_TOG_ARM_Correlator | mqext.Arm | 请参阅注释 6。 |
服务集成转换 IBM MQ 格式的消息时,它会根据对应 MQMD 字段设置每个属性。
服务集成转换 IBM MQ 格式的消息时,不管 MQRFH2 jms.Cid 字段的值(如果存在)如何,服务集成都会将 JMS_IBM_MQMD_CorrelId 属性设置为 MQMD CorrelId 字段的值 (byte[])。
服务集成转换 IBM MQ 格式的消息时,服务集成将 JMS_IBM_MQMD_MsgId 属性设置为 MQMD MsgId 字段的值 (byte[])。
服务集成转换 IBM MQ 格式的消息时,不管 MQRFH2 jms.Dlv 字段的值(如果存在)如何,服务集成都会将 JMS_IBM_MQMD_Persistence 属性设置为 MQMD Persistence 字段的值(整数)。
服务集成转换 IBM MQ 格式的消息时,不管 MQRFH2 jms.Rto 字段的值(如果存在)如何,服务集成都会将 JMS_IBM_MQMD_ReplyToQ 和 JMS_IBM_MQMD_ReplyToQMgr 属性设置为 MQMD ReplyToQ 和 ReplyToQMgr 字段的值(字符串)。