The current Delphi bindings for WebSphere MQ (formerly known as MQSeries) are very old.
The MA7Q: WebSphere MQ – MQI for Delphi formal binding from IBM is incomplete. Even though it is from 2005, it doesn’t contain the MQCD definition that was there at least since WebSphere MQ 5.2 (released in 2000). And by now it should be gone, since MQSeries 5.x is not supported any more.
A newer one by Dinko Miljak which is mentioned on Delphi 3000 and mentioned on MQSeries.net, has some errors and is from the WebSphere MQ 5.2 era.
It is available via this posting on MQSeries.net (direct download link), and this author reference on Torry.net (direct download link). Both files are identical.
Since it is much more extensive than the IBM version, I am using it to update it for newer WebSphere versions.
Great help while updating are the Gefira MQ bindings for Python: readable, indexed on nullege, and helpful (for instance on the usage of MQHO_UNUSABLE_HOBJ - which is assigned when calling MQCLOSE, I found out later that it is also explained here). The latest Gefira change was in 2008, but still way better than the Delphi bindings.
Also the Perl bindings for MQSeries together with their ASCII/EBCDIC client demo helped a lot.
A big issue when translating is that the i5/OS API in large part uses different names than the regular API.
For instance MQMD (i5/OS) contains MDENC, MDCSI and MDFMT fields where MQMD (regular) contains and Encoding, CodedCharSetId and Format fields.
As soon as I have done proper translation and upgrading to WebSphere MQ 7.x, I will upload source code.
Source code will be on the BeSharp.net CodePlex repository.
–jeroen
Filed under: Delphi, Development, MQ Message Queueing/Queuing, Software Development, WebSphere MQ