Original Message:
Sent: Thu March 02, 2023 04:18 AM
From: Vid Romac
Subject: Service packaging with precompiled maps/schemas
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
Original Message:
Sent: Wed March 01, 2023 01:49 PM
From: Martin Boag
Subject: Service packaging with precompiled maps/schemas
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
Original Message:
Sent: Wed March 01, 2023 08:21 AM
From: Vid Romac
Subject: Service packaging with precompiled maps/schemas
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
Original Message:
Sent: Wed March 01, 2023 07:39 AM
From: Martin Boag
Subject: Service packaging with precompiled maps/schemas
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
Original Message:
Sent: Wed March 01, 2023 04:51 AM
From: Vid Romac
Subject: Service packaging with precompiled maps/schemas
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
Original Message:
Sent: Thu February 23, 2023 09:32 AM
From: Vid Romac
Subject: Service packaging with precompiled maps/schemas
attempted with ACE v12.0.6.0 and v12.0.7.0
------------------------------
Vid Romac
Original Message:
Sent: Thu February 23, 2023 09:10 AM
From: Vid Romac
Subject: Service packaging with precompiled maps/schemas
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
------------------------------