1
votes

I'm using IBM Integration Bus v10 (previously called IBM Message Broker) to expose COBOL routines as SOAP Web Services. COBOL routines are integrated into IIB through MQ queues.

We have imported some COBOL copybooks as DFDL schemas in IIB, and the mapping between SOAP messages and DFDL messages is working fine.

However, when the message reaches a node where a serialization of the message tree has to take place (for example, a FileOutput or a MQ request), it fails with the following error:

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

This is the last part of the stack trace of the exception:

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

It seems like something is missing in my deployable BAR file. It's important to say that my application has the message flow and it depends on a shared library that has all the .xsd files (DFDLs).

I suppose that the schemas are OK, as I've generated them using the Toolkit wizard, and the message parsing works well. The problem is only with serialization.

Does anybody know what may be missing here?

4

4 Answers

3
votes

OutputRoot.Properties.MessageType must contain the name of the message in the DFDL schema. Additionally when the DFDL schema is in a shared library, OutputRoot.Properties.MessageSet must contain the name of the library.

1
votes

Sounds as if OutputRoot.Properties is not pointing at the shared library. I cannot remember which subfield does that job - it is either OutputRoot.Properties.MessageType or OutputRoot.Properties.MessageSet. You can easily check - just check the contents of InputRoot.Properties after an input node that has used the same shared libary.

0
votes

Faced a similar problem. In my case, a message flow with an HttpRequest node using a DFDL domain parser / format to parse an HTTP response from the remote system threw this error (PIF data could not be found for the specified application). "Re-selecting" the same parser domain & message type on the node followed by build / redeploy solved the problem. Seemed to be a project reference related issue within the IIB toolkit.

-1
votes

you need to create static libraries and refer to application. in compute node ur coding is based on dfdl body