Originally posted by: paul.brett
Using the IBM Integration Broker (IIB) with the IBM Transformation Extender (ITX), you may occasionally get XML validation errors, which cannot be replicated in a standalone ITX environment.
This is because one of the products is using a different set of XML4C libraries.
An example scenario:
IIB installed at /opt/IBM/mqsi/8.0.0.0
ITX installed at /opt/IBM/dtx841
In the IIB product's XML4C library directory (/opt/IBM/mqsi/8.0.0.0/xml4c/lib) you'll find the XML4C libraries:
0 lrwxrwxrwx 1 root system 22 Jun 19 2013 libXML4CMessages.a -> libXML4CMessages58.0.a
96 -rwxr-xr-x 1 root system 95073 Dec 14 2011 libXML4CMessages58.0.a
0 lrwxrwxrwx 1 root system 22 Jun 19 2013 libXML4CMessages58.a -> libXML4CMessages58.0.a
0 lrwxrwxrwx 1 root system 14 Jun 19 2013 libxml4c.a -> libxml4c58.0.a
8460 -rwxr-xr-x 1 root system 8662824 Dec 14 2011 libxml4c58.0.a
0 lrwxrwxrwx 1 root system 14 Jun 19 2013 libxml4c58.a -> libxml4c58.0.a
And in the ITX product's XML4C library directory (/opt/IBM/dtx841/libs) you'll find the XML4C libraries:
0 lrwxrwxrwx 1 brett1pa aim 60 Jun 10 2015 libXML4CMessages.a -> /opt/IBM/dtx841/libs/libXML4CMessages58.5.a
100 -rwxrwxrwx 4 brett1pa aim 95421 Jun 12 2013 libXML4CMessages58.5.a
0 lrwxrwxrwx 1 brett1pa aim 60 Jun 10 2015 libXML4CMessages58.a -> /opt/IBM/dtx841/libs/libXML4CMessages58.5.a
0 lrwxrwxrwx 1 brett1pa aim 52 Jun 10 2015 libxml4c.a -> /opt/IBM/dtx841/libs/libxml4c58.5.a
8776 -rwxrwxrwx 4 brett1pa aim 8942388 Jun 12 2013 libxml4c58.5.a
0 lrwxrwxrwx 1 brett1pa aim 52 Jun 10 2015 libxml4c58.a -> /opt/IBM/dtx841/libs/libxml4c58.5.a
You can see that ITX is using the 58.5 version of XML4c and IIB is using 58.0, and this is the primary cause of the XML validation failures in ITX when run under the control of IIB.
To resolve this situation, you can create/modify some softlinks, so that IIB picks-up the XML4C libraries directly from the ITX installation instead:
cd /opt/IBM/mqsi/8.0.0.0/xml4c/lib
ln -sf /opt/IBM/dtx841/libs/libXML4CMessages58.5.a libXML4CMessages.a
ln -sf /opt/IBM/dtx841/libs/libXML4CMessages58.5.a libXML4CMessages58.a
ln -sf /opt/IBM/dtx841/libs/libXML4CMessages58.5.a libXML4CMessages58.5.a
ln -sf /opt/IBM/dtx841/libs/libxml4c58.5.a ibxml4c.a
ln -sf /opt/IBM/dtx841/libs/libxml4c58.5.a ibxml4c.58.a
ln -sf /opt/IBM/dtx841/libs/libxml4c58.5.a ibxml4c.58.5.a
After the links have been created/modified, you should then have these libraires in the IIB XML4C library directory:
0 lrwxrwxrwx 1 root system 22 Jun 19 2013 libXML4CMessages.a -> /opt/IBM/dtx841/libs/libXML4CMessages58.5.a
96 -rwxr-xr-x 1 root system 95073 Dec 14 2011 libXML4CMessages58.0.a
96 -rwxr-xr-x 1 root system 22 Jun 19 2013 libXML4CMessages58.5.a -> /opt/IBM/dtx841/libs/libXML4CMessages58.5.a
0 lrwxrwxrwx 1 root system 22 Jun 19 2013 libXML4CMessages58.a -> /opt/IBM/dtx841/libs/libXML4CMessages58.5.a
0 lrwxrwxrwx 1 root system 14 Jun 19 2013 libxml4c.a -> /opt/IBM/dtx841/libs/libxml4c58.5.a
8460 -rwxr-xr-x 1 root system 8662824 Dec 14 2011 libxml4c58.0.a
8736 -rwxr-xr-x 1 root system 22 Jun 19 2013 libxml4c58.5.a -> /opt/IBM/dtx841/libs/libxml4c58.5.a
0 lrwxrwxrwx 1 root system 14 Jun 19 2013 libxml4c58.a -> /opt/IBM/dtx841/libs/libxml4c58.5.a
...and a re-start of the Broker should then correctly validate the XML in the ITX map, under the control of IIB.
Thank-you.
Paul
Follow me on Twitter
#IBMSterlingTransformationExtender#IBM-Websphere-Transformation-Extender#DataExchange