We have an existing J2EE application that uses WebSphere MQ to retrieve data from IMS.
The J2EE application sends the IMS transaction name to MQ, which retrieves IMS data. The returned data is then parsed for further processing.
Recently we migrated the application to WebSphere 7. The application worked fine on a windows box. However, when we ported the application to a zLinux (Linux on System z) box – we were able to talk to IMS and data was getting returned from IMS to J2EE application. The parsing process however raises an ArrayIndexOutofBoundsException.
The inputs are the same in both environments and with the operational code being the same(same java build) there is a significant difference observed in the behaviour. Is this anything to do with CharacterCodeSet not being accepted by zLinux environment ? We use a hard-coded value for CCSID from within the J2EE application.
Is it that zLinux environment does not support the existing CCSID requires a different CCSID?
Incidentally the answer to the above question lies in the BIG ENDIAN / LITTLE ENDIAN problem. Linux being little endian stores byte information differently compared to AIX / windows boxes. This was causing a parsing failure - i.e. the piece of code that was parsing the message returned from MQ successfully was not able to parse it in Linux when the format is different.