I have only been using the straight forward mapping to all of the individual MQI calls and not the OO part. The library works well for base MQ messaging and successful robust applications have been created and run.
However the MQ header fields need a bit more documentation in the MQPUT section. Also that example code seems to remain outstanding but would be immensely useful to those getting stated.
With the header info I have found the way to put messages with, say, the ReplyToQ populated in the MQ header was to place the references
in the $MsgDesc structure.
Also the MsgId and CorrelId in the $PutMsgOpts were completely ignored unless the 'Version => MQPMO_VERSION_2,' was included (evedintly to be corrected in 1.21). I thank Hildo Biersma for his response telling me about this.
The use of the :
Version => MQPMO_VERSION_2,
in the $putOptions structure seems to make sure the MsgId and CorrelId are taken from the putOptions if provided. It is not good to specify these in the $msgDesc structure as spurious characters get appended.