2015-11-02 2 views
0

Я использую IBM Integration Bus v10 (ранее называемый IBM Message Broker), чтобы выставлять подпрограммы COBOL в качестве веб-служб SOAP. Подпрограммы COBOL интегрированы в очереди IIB через очереди MQ.IBM Integration Bus: данные PIF не найдены для указанного приложения

Мы импортировали несколько копий COBOL в виде схем DFDL в IIB, а отображение между сообщениями 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}'; где «Электронные ваучеры» - это имя моего сообщения, {} связано с тем, что он находится в схеме брокера по умолчанию. «DFDL» в фигурных скобках - это имя библиотеки MessageSet. Значения, которые я обнаружил из приведенного ниже предложения кимбертов. Это не хорошо документировано на базе знаний IBM. – kirenpillay

0

столкнулся с аналогичной проблемой. В моем случае поток сообщений с узлом HttpRequest с использованием парсера/формата домена DFDL для анализа ответа HTTP от удаленной системы отбросил эту ошибку (данные PIF не могли быть найдены для указанного приложения). «Повторный выбор» того же домена парсера & тип сообщения на узле, за которым следует сборка/передислокация, решила проблему. Считается, что проблема связана с проектом в рамках инструментария IIB.

-1

вам необходимо создать статические библиотеки и обратиться к приложению. в вычислительном узле Ур кодирование основано на корпусе dfdl