2015-11-02 87 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主體

相關問題