IBM集成总线:找不到指定应用程序的PIF数据



我正在使用IBM Integration Bus v10(以前称为IBM Message Broker)将COBOL例程公开为SOAP Web服务。COBOL例程通过MQ队列集成到IIB中。

我们已经在IIB中导入了一些COBOL副本作为DFDL模式,SOAP消息和DFDL消息之间的映射运行良好。

但是,当消息到达必须对消息树进行序列化的节点(例如,FileOutput或MQ请求)时,它将失败,并出现以下错误:

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

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

RecoverableException
    File:CHARACTER:F:buildslot1S000_PsrcDataFlowEngineTemplateNodesImbOutputTemplateNode.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:buildslot1S000_PsrcMTIMTIforBrokerDfdlParserImbDFDLWriter.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向导生成了它们,并且消息解析工作得很好。问题仅在于序列化。

有人知道这里可能缺少什么吗?

OutputRoot.Properties.MessageType必须包含DFDL架构中消息的名称。此外,当DFDL架构在共享库中时,OutputRoot.Properties.MessageSet必须包含库的名称。

听起来好像OutputRoot.Properties没有指向共享库。我记不清是哪个子字段完成了这项工作——它要么是OutputRoot.Properties.MessageType,要么是OutoutRoot.Properties.MessageSet。您可以很容易地检查-只需在使用了相同共享库的输入节点之后检查InputRoot.Properties的内容。

面临类似的问题。在我的案例中,一个HttpRequest节点使用DFDL域解析器/格式解析来自远程系统的HTTP响应的消息流引发了此错误(找不到指定应用程序的PIF数据)。"重新选择"相同的解析器域&节点上的消息类型以及随后的构建/重新部署解决了问题。似乎是IIB工具包中与项目参考相关的问题。

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

最新更新