0

我的队列管理器有一个回退队列。

我想构建一个消息流来读取这个队列,如果有任何消息进入队列,它应该接收消息并将其包装在特殊格式的 XML消息中,并将其放入获取已处理异常的正常异常队列中。

但是,进入回退队列的消息可以是任何格式,我必须制作一个 xml,该消息将成为一个字段。

那么,对于我的流程(关于 MQMD 属性,如 CCSID、格式等)以及我应该使用哪个解析器(DFDL 或 BLOB 或 MRM),什么可能是最佳设置?

好心劝告。

4

1 回答 1

0

由于您不知道什么样的消息到达了回退队列,因此您不应该使用特定的解析器(如 XMLNSC 等)对其进行解析。可能您在 MQInput 上设置的通用参数越多,您就越能在流程中进一步确定消息中的内容。

因此,我将从默认消息域 (BLOB) 开始,并保持其他参数不变。将一些日志记录节点(例如 Trace 节点)连接到 Catch 和 Failure 终端。将 Out 终端连接到包含 ESQL 的 Compute 节点以确定错误类型并决定进一步的操作(例如,路由到标签)。然后在每个标签中决定应该将消息的哪一部分映射到最终异常消息和映射。

如果您需要结果消息中当前位于回退队列中的消息的那些 MQMD 属性,只需提取值并将/连接/任何内容放入结果消息 XML 部分。我认为您不应该将 MQMD(和其他)标头按原样复制到结果消息,因为这些可能是原始消息进入回退队列并且您的结果消息将再次到达那里的原因。从头开始构造生成的消息头。

如果在执行这些转换时发生了不好的事情,您将在 Trace 中看到问题。然后适当修改错误处理逻辑,避免以后出现错误处理。

于 2013-05-03T19:23:32.090 回答