IBM Integration Bus: не удалось найти данные PIF для указанного приложения

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

Мы импортировали некоторые записные книжки 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, и синтаксический анализ сообщений работает хорошо. Проблема только в сериализации.

Кто-нибудь знает, чего здесь может не хватать?


person Ariel C.    schedule 02.11.2015    source источник


Ответы (4)


OutputRoot.Properties.MessageType должен содержать имя сообщения в схеме DFDL. Кроме того, когда схема DFDL находится в общей библиотеке, OutputRoot.Properties.MessageSet должен содержать имя библиотеки.

person Steve Hanson    schedule 20.11.2015
comment
Это верно. В моем случае помогло следующее: SET OutputRoot.Properties.MessageType = '{}: ElectronicVouchers'; УСТАНОВИТЬ OutputRoot.Properties.MessageSet = '{DFDL}'; где ElectronicVouchers - это имя моего сообщения, а {} - потому что он находится в схеме брокера по умолчанию. «DFDL» в фигурных скобках - это имя библиотеки MessageSet. Ценности, которые я обнаружил, используя предложение кимбертов ниже. Это плохо документировано в базе знаний IBM. - person kirenpillay; 05.10.2017

Похоже, что OutputRoot.Properties не указывает на общую библиотеку. Я не могу вспомнить, какое подполе выполняет эту работу - это либо OutputRoot.Properties.MessageType, либо OutputRoot.Properties.MessageSet. Вы можете легко проверить - просто проверьте содержимое InputRoot.Properties после входного узла, который использовал ту же общую библиотеку.

person kimbert    schedule 11.11.2015

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

person user5923045    schedule 21.04.2016

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

person Vaibhav Patil    schedule 16.02.2017