【问题标题】:How To Fix Unparsed Interchange Issue IBM MQ Message to BizTalk [duplicate]如何修复未解析的交换问题 IBM MQ 消息到 BizTalk [重复]
【发布时间】:2019-12-03 10:41:58
【问题描述】:

我们使用 IBM MQ XMS 编写了一个 .NET 应用程序,它侦听队列,检查消息内容,然后将消息转发到正确的队列。消息不加修改地转发。

BizTalk 拾取消息,但将其保留为未解析的交换格式,正文中包含消息头信息。示例:

RFH ... MQSTR ... <mcd><Msd>jms_text</Msd></mcd>  d   <jms><Dst>queue:///VC.AZ.BT.270.Q.5010?persistence=1</Dst><Tms>1575310018071</Tms><Dlv>1</Dlv></jms> 
   <usr></usr> ISA*00*...

如果我们绕过 .NET 路由客户端并从 MQ Explorer 将消息直接放到同一个队列中,BizTalk 会按预期将其解析为序列化交换格式。我们看不出为什么这个头信息没有被解析出来。有什么想法吗?

【问题讨论】:

  • 看来你的.Net路由客户端有问题,但是没有相关代码就不好说了。
  • 如何告诉 XMS 不要发送默认的附加 RFH2 标头,请参阅上述问题的答案。
  • @JoshMc 成功了!我正在查看目标是如何创建的,只是还没有找到引用 targetClient 的支持文档。谢谢!

标签: ibm-mq biztalk


【解决方案1】:

您的 .Net 代码可能会触发重要的 NULL 或其他非可视字符。 BizTalk 将要求消息在消息头中包含所有字符,否则它将失败。使用 Notepad++ 或 UltraEdit 等工具在 HEX 模式下检查消息,以便能够查明差异所在。路由客户端的目的是什么?它在消息流中的什么位置?为什么不使用 BizTalk 进行路由并删除有问题的程序?

【讨论】:

  • 该问题已通过在目标中设置 targetClient=1 来解决,如上所述删除额外的 RFH2 标头。谢谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-06-15
  • 2011-11-04
  • 2019-02-12
  • 2022-09-29
  • 2021-08-02
  • 1970-01-01
相关资源
最近更新 更多