I recently completed a BizTalk project that involved transforming a delimited flat file to IFX version 1.4. The transport mechanism used IBM MQSeries between an IBM AS/400, BizTalk, and an IBM Mainframe. We were using the BizTalk MQSeries Adapter and for the most part I am pleased with the speed, transaction support, documentation and ease of use of the adapter.
One issue we ran across using the BizTalk MQSeries adapter was encoding of the message from/to the AS/400. The AS/400 used EBCDIC encoding for the message and of course was expecting EBCIDIC for the return message. If you are not familiar with encoding, I strongly encourage reading the following by Joel on Software
Initially we, the AS/400 team and my team, began to exchange test messages via email while waiting for the MQ queues and channels to be configured. Everything was fine during this “shake down” period. Once I received a delimited text file via email I simply copied the message to a folder on the BizTalk server. I assume the AS/400 developer was using a similar technique to parse messages I sent him but on the AS/400.
Once we began to utilize IBM MQSeries we could no longer parse the message. While we were able to transport messages via MQSeries I was getting a parsing error and so was the AS/400 developer. Obviously we had an encoding issue. The fix for us was to use UTF-8 when receiving the message.
Incidentally, there are several context properties, specific to MQSeries, listed in the BizTalk MQSeries adapter documentation, MQMD_CodedCharSetId and MQMD_Encoding. We didn’t use these properties in our project but we may in future projects.