App Connect

 View Only
  • 1.  Service packaging with precompiled maps/schemas

    Posted Thu February 23, 2023 09:11 AM
    Edited by Vid Romac Thu February 23, 2023 09:12 AM

    We are attempting to package our ACE solution with pre-compiled maps/schemas place in the resulting BAR, i.e we add the --compile-maps-and-schemas flag when using the ibmint package command.

    Before we switched to it, the service would be normally packaged, deployed and it would run without any issues. But we would have longer startup times which we are now trying to avoid [due to compilation happening during deployment].

    We amended our packaging procedure to use the new flag, as well as adding all the supplementary projects for it to contain the necessary schemas. However we now get errors like these:

    BIP9342I: Created compiled 'XMLNSC' schema file 'X/$mqsiApplication.bir'. 
    BIP3946E: Failed to generate mapping routine 'echo_Echo_Response.map', with the following details: 'Schema file://workspace/output/X/X/X_InlineSchema1.xsd could not resolve xml schema location file://workspace/output/X/X/X.xsd.'. 
    BIP8071I: Successful command completion. 

    [NOTE: the files mentioned exist and are in the correct location]

    The command we use:

    ibmint package --input-path ./X --output-bar-file ./release/0.53.3/X-0.53.3.bar --project X --project XJava --project XCommonSchemas --project CommonSchemas --project Y --project Z --compile-maps-and-schemas

    How/why is the packaging failing with this flag, while it would work correctly without it?



    ------------------------------
    Vid Romac
    ------------------------------



  • 2.  RE: Service packaging with precompiled maps/schemas

    Posted Thu February 23, 2023 09:32 AM

    attempted with ACE v12.0.6.0 and v12.0.7.0



    ------------------------------
    Vid Romac
    ------------------------------



  • 3.  RE: Service packaging with precompiled maps/schemas

    Posted Wed March 01, 2023 04:51 AM

    Any info about this issue - is this a bug that there will be a fix for or is there something wrong with our approach?



    ------------------------------
    Vid Romac
    ------------------------------



  • 4.  RE: Service packaging with precompiled maps/schemas

    Posted Wed March 01, 2023 07:40 AM

    Hello

    I just confirmed I was able to successfully run 

     ibmint package --input-path ACE1207_Wrks  --output-bar-file  MyIntServ.bar --project MyIntServ --compile-maps-and-schemas

    With ACE v12.0.7. I also setup a map to reference MyIntServ_InlineSchema1.xsd, and modified that so that it included another schema file. So this certainly works in general.

    The only thing that perhaps looks a little odd to me is you show "X" as both the --input-path and one of your --project. However you say the files do exist in the paths reported, and they do get picked up when doing a package without pre-compile.

    So I guess there must be something specific about your arrangement of schema files referenced by your map. I suggest you open a support ticket to enable diagnostics to be gathered etc.

    Regards

       Martin



    ------------------------------
    Martin Boag
    Software Developer
    IBM
    ------------------------------



  • 5.  RE: Service packaging with precompiled maps/schemas

    Posted Wed March 01, 2023 08:21 AM

    In our example we have multiple projects, all placed in ./X [e.g we have ./X/MyProject, /X/MyProjectJava, /X/CommonSchemas, /X/Common...] that have a linear dependency [MyProject has schemas that import both CommonSchemas and Common; CommonSchemas imports Common].

    When compiling, he seems to start with the first mapping file Inlineschema.xsd, which then points to the first 'separate' xsd [located in the same directory as the inline schema]:

    <xsd:import namespace="blabla/elements/X" schemaLocation="X.xsd"/>

    I've attempted changing both the location and the path in the xsd [to be relative, to be in a diff. directory...] but no dice. Again, if the same command is attmepted without the --compile... flag, everything ends up correctly in the BAR and is able to be deployed and started.

    Can you attempt a similar setup, with multiple projects that are compiled and packaged into the same final BAR?



    ------------------------------
    Vid Romac
    ------------------------------



  • 6.  RE: Service packaging with precompiled maps/schemas

    Posted Wed March 01, 2023 01:49 PM

    Hello

    I assume your "CommonSchemas" and "Common" are static libraries included in the Integration Service project?

    I setup a simple structure with the schema imports as you outlined, and again was able to package and compile the map in this scenario.

    ibmint package --input-path ACE1207_Wrks  --output-bar-file  MyIntServ.bar --project MyIntServ --project CommonMidStaticLib --project CommonBaseStaticLib --compile-maps-and-schemas


    The ibmint command output you provided in the above post shows

    BIP9342I: Created compiled 'XMLNSC' schema file 'X/$mqsiApplication.bir'. 

    This shows that the schema imports can be followed for schema compile. However thing go wrong when compiling the Map, which requires the schema imports from the map to be followed.

    It would be relevant to see how the Map references schemas. If you open the ".map" with a text/xml editor you'll see it's schema imports similar to:

    <input path="/IBMdefined/org/xmlsoap/schemas/soap/envelope/soapenv11.xsd" var="var1"/>



    ------------------------------
    Martin Boag
    Software Developer
    IBM
    ------------------------------



  • 7.  RE: Service packaging with precompiled maps/schemas

    Posted Thu March 02, 2023 04:19 AM

    Yes, the schemas are all static libs referenced in the main project.

    The mapping file it fails on contains:

    <mappingRoot xmlns="http://www.ibm.com/2008/ccl/Mapping"

    domainID="com.ibm.msl.mapping.xml" domainIDExtension="mb" mainMap="true"

    targetNamespace="echo" version="8.0.5.0" xmlns:map="echo">


        <input path="/X_InlineSchema1.xsd"/>

    which seems like the correct path.

    The .bir and .bir_inf contain a lot of encoded information, but the schemas seems to be mentioned in the hashmap inside [bir_inf]:

    X_InlineSchema1.xsdt @8621aa48b94e6a3f0beef6dd5fa573d8e894e67073bdc56d04ac284b54ccb0abt  ... X.xsdt @fc8310edf2b6e579b925b4ee5e826c503382429311f460262cb7129a3ca231d9t



    ------------------------------
    Vid Romac
    ------------------------------



  • 8.  RE: Service packaging with precompiled maps/schemas

    Posted Tue March 07, 2023 09:49 AM
    Edited by Martin Boag Thu March 09, 2023 07:36 AM

    Hi

    Sorry for slow reply, I have been out.

    I'm afraid with the level of detail you can share in the forum I'm unable to spot anything that looks like the cause, or reproduce this issue myself. As above I think you will need to open a support ticket to allow the required level of diagnostics to be gathered.

    Regards

       Martin



    ------------------------------
    Martin Boag
    Software Developer
    IBM
    ------------------------------



  • 9.  RE: Service packaging with precompiled maps/schemas

    Posted Thu March 09, 2023 05:37 AM

    agree with you



    ------------------------------
    Paul Glenn
    ------------------------------