2015-11-02 71 views
0

我正在使用IBM Integration Bus v10(以前称为IBM Message Broker)将COBOL例程公开为SOAP Web服务。 COBOL例程通过MQ队列集成到IIB中。IBM Integration Bus:找不到指定应用程序的PIF数据

我们在IIB中导入了一些COBOL副本作为DFDL模式,并且SOAP消息和DFDL消息之间的映射工作正常。

然而,当消息到达该消息树的序列化必须发生的节点(例如,使用FileOutput或MQ请求)时,它失败,错误如下:

"The PIF data could not be found for the specified application" 

这是异常堆栈跟踪的最后一部分:

RecoverableException 
    File:CHARACTER:F:\build\slot1\S000_P\src\DataFlowEngine\TemplateNodes\ImbOutputTemplateNode.cpp 
    Line:INTEGER:303 
    Function:CHARACTER:ImbOutputTemplateNode::processMessageAssemblyToFailure 
    Type:CHARACTER:ComIbmFileOutputNode 
    Name:CHARACTER:MyCustomFlow#FCMComposite_1_5 
    Label:CHARACTER:MyCustomFlow.File Output 
    Catalog:CHARACTER:BIPmsgs 
    Severity:INTEGER:3 
    Number:INTEGER:2230 
    Text:CHARACTER:Caught exception and rethrowing 
    Insert 
     Type:INTEGER:14 
     Text:CHARACTER:Kcilmw20Flow.File Output 
    ParserException 
     File:CHARACTER:F:\build\slot1\S000_P\src\MTI\MTIforBroker\DfdlParser\ImbDFDLWriter.cpp 
     Line:INTEGER:315 
     Function:CHARACTER:ImbDFDLWriter::getDFDLSerializer 
     Type:CHARACTER:ComIbmSOAPInputNode 
     Name:CHARACTER:MyCustomFlow#FCMComposite_1_7 
     Label:CHARACTER:MyCustomFlow.SOAP Input 
     Catalog:CHARACTER:BIPmsgs 
     Severity:INTEGER:3 
     Number:INTEGER:5828 
     Text:CHARACTER:The PIF data could not be found for the specified application 
     Insert 
      Type:INTEGER:5 
      Text:CHARACTER:MyCustomProject 

这似乎是我的可部署BAR文件中缺少的东西。说我的应用程序具有消息流并且取决于具有所有.xsd文件(DFDL)的共享库很重要。

我想模式是可以的,因为我已经使用Toolkit向导生成了它们,并且消息解析工作正常。问题只在于序列化。

有没有人知道这里可能会丢失什么?

回答

1

听起来好像OutputRoot.Properties没有指向共享库。我不记得哪个子字段做这个工作 - 它是OutputRoot.Properties.MessageType或OutputRoot.Properties.MessageSet。 您可以轻松检查 - 只需在使用相同共享库的输入节点之后检查InputRoot.Properties的内容即可。

2

OutputRoot.Properties.MessageType必须包含DFDL模式中的消息名称。此外,当DFDL模式位于共享库中时,OutputRoot.Properties.MessageSet必须包含库的名称。

+0

这是正确的。在我的情况下,以下帮助: SET OutputRoot.Properties.MessageType ='{}:ElectronicVouchers'; SET OutputRoot.Properties.MessageSet ='{DFDL}'; 其中“ElectronicVouchers”是我的消息的名称,{}是因为它位于默认代理模式中。 花括号中的'DFDL'是MessageSet库的名称。 我从以下使用kimberts建议中发现的值。这在IBM知识库中没有很好地记录。 – kirenpillay

0

面临类似的问题。在我的情况下,使用DFDL域解析器/格式来解析来自远程系统的HTTP响应的HttpRequest节点的消息流抛出此错误(找不到指定应用程序的PIF数据)。在节点上重新选择“相同的解析器域&”消息类型,然后执行构建/重新部署解决了该问题。似乎是IIB工具包内的项目参考相关问题。

-1

您需要创建静态库并引用应用程序。 在计算节点ur编码是基于dfdl主体

相关问题