将 MQMD 报告字段映射至特定于 JMS 提供程序的属性
JMS 应用程序可以使用报告消息作为受管的请求/响应处理的格式,以向生产者提供有关发送操作的结果以及消息的结局的远程反馈。通过设置 JMS_IBM_Report_Xxxx 消息属性和选项,JMS 应用程序可以请求不同类型的报告消息。
- MQRO_report-type
- 生成所指明类型的报告消息,该消息包含原始消息的 IBM MQ 消息描述符 (MQMD)。它不包含任何消息体数据。
- MQRO_report-type_WITH_DATA
- 生成指明的类型的报告消息,它包含 MQMD、任何 MQ 头以及体数据的 100 个字节。
- MQRO_report-type_WITH_FULL_DATA
- 生成指明的类型的报告消息,它包含原始消息的所有数据。
请将以下前缀与每个选项配合使用:com.ibm.websphere.sib.api.jms。
例如,要请求交付时确认 (COD) 报告消息连同全部数据,JMS 应用程序必须将 JMS_IBM_Report_COD 设置为值 com.ibm.websphere.sib.api.jms.MQRO_COD_WITH_FULL_DATA。
对于每种类型的报告消息,下表显示 JMS 应用程序可以设置的 JMS_IBM_Report_Xxxx 消息属性以及映射至该属性的 MQMD 报告字段选项。
报告消息的类型 | 描述 | JMS_IBM_Report_Xxxx 消息属性和选项 |
---|---|---|
异常 | 如果无法将请求消息放入目标队列,那么发送一条报告消息。消息被重新路由至异常目标时生成异常报告消息。 | JMS_IBM_Report_Exception
|
废弃 | 废弃原始请求消息,而不是将它发送至异常目标。您可以在 JMS_IBM_Report_Exception 属性设置为 MQRO_EXCEPTION_WITH_FULL_DATA 的情况下使用此选项,以便将无法送达的请求消息返回给其发送方。 | JMS_IBM_Report_Discard_Msg
|
到期 | 如果请求消息经过了它的截止时间,那么发送一条报告消息。 | JMS_IBM_Report_Expiration
|
到达时确认 (COA) | 当请求消息放入目标队列时发送一条报告消息。 对于发布/预订消息传递,仅在生产者消息传递引擎上生成 COA 报告消息。因此,这样的报告只与本地预订相关。 对于点到点消息传递,在消息到达最终目标时生成 COA 消息。对于分区的队列,仅当放入操作已落实并且因此已选择最终目标时才生成报告消息。忽略任何指定的 With_Data 或 With_Full_Data 报告选项;COA 报告消息仅处理消息头。 如果使用正向路由路径,那么在消息到达路径中的最终目标时生成 COA 消息。 |
JMS_IBM_Report_COA
|
交付时确认 (COD) | 当消息使用者从队列或主题空间中移除了请求消息时就会发送一条报告消息。 对于发布/预订消息传递,当所有订户接收到请求消息时生成 COD 消息。因此,为每个 COA 生成一条 COD 消息。当订户使用消息时,主题空间上的消息的引用计数在减少。当引用计数到达零时,从主题空间中移除该消息,然后生成 COD 报告消息。 对于点到点消息传递,在消费应用程序成功接收消息后生成 COD 消息。忽略任何指定的 With_Data 或 With_Full_Data 报告选项;COD 报告消息仅处理消息头。 |
JMS_IBM_Report_COD
|
肯定操作通知 (PAN) | 要求用户应用程序在成功地处理请求消息后发送一条报告消息。 | JMS_IBM_Report_PAN
|
否定操作通知 (NAN) | 要求用户应用程序在无法成功处理请求消息的情况下发送一条报告消息。 | JMS_IBM_Report_NAN
|
- 如何生成报告消息和任何应答消息的消息标识:
- MQRO_New_Msg_Id
- 这是缺省值。为报告消息生成新的消息标识。
- MQRO_Pass_Msg_Id
- 将报告消息的消息标识设置为请求消息的消息标识。
- 如何设置报告或应答消息的相关标识。
- MQRO_Copy_Msg_Id_To_Correl_Id
- 这是缺省值。将报告消息的相关标识设置为请求消息的消息标识。
- MQRO_Pass_Correl_Id
- 将报告消息的相关标识设置为请求消息的相关标识。
有关报告消息以及关联的属性和选项的更多信息,请参阅 WebSphere® MQ 库中的 WebSphere MQ 信息中心的“使用 Java™”部分。