My experience with this has been that an application (C COBOL) always has a structure for the MQMD that reflects the highest level that the installed release of MQ supports. Now the fun begins. The default version in the MQMD structure is set to version 1. If you want to support a higher version, the application has to change the default value. I have seen C code that used a Version 2 MQMD structure and somehow had the MsgSeqNumber in the MQMD set to other than the normal default (1 if memory serves me correctly). When the mainframe application which left the default Version on the MQMD received the message, the Qmgr , of course, saw the message sequence number other than 1 and constructed a version 1 MQMD followed by an MQMDE structure. The receiving application didn't parse the message correctly and promptly blew up. I always tell application developers not to take defaults and make intelligent choices (maybe that's the problem) when developing their applications using MQ. It requires a certain level of awareness of the product which they don't seem to want to develop. When they are using class libraries (especially JMS) the problems seem to be worse.
Cheers... Jim Nuckolls Enterprise Systems Integration -----Original Message----- From: MQSeries List [mailto:[EMAIL PROTECTED] On Behalf Of [EMAIL PROTECTED] Sent: Thursday, August 16, 2007 9:13 AM To: MQSERIES@LISTSERV.MEDUNIWIEN.AC.AT Subject: Re: MQMD Version Question Thanks for this useful information. I hadn't read the writeup on the MQGET options for this in detail, but I'll review that now. To be clear though, there's no way to generate a version 1 MD and MDE structure on a PUT unless the application does it, correct? In other words, there's no way for an application to PUT with a V2 format and then see it transformed into a V1 format with MD/MDE on the receiving QM (unless perhaps the receiving QM doesn't support V2). In this case we see the application attach to the V5.3 AIX queue manager and the message arrives on a V5.3.1 z/OS qm in V1 format with MD/MDE. Would I be correct in my presumption that MQ would not do any transformation on this and that the only way it could have a V1 format is if the application generated it that way (since both queue managers clearly support the V2 format)? Phil Willoughby <[EMAIL PROTECTED]> Sent by: MQSeries List <MQSERIES@LISTSERV.MEDUNIWIEN.AC.AT> 08/16/2007 11:41 AM Please respond to MQSeries List <MQSERIES@LISTSERV.MEDUNIWIEN.AC.AT> To MQSERIES@LISTSERV.MEDUNIWIEN.AC.AT cc Subject Re: MQMD Version Question Receiving applications always get an MQMD which is the version they asked for - if they ask for a version 2 MQMD and the message has a version 1 MQMD and a valid MQMDE, the MQMDE fields are copied into the version 2 MQMD and the MQMDE is removed from the message before it is delivered. If they ask for a version 1 MQMD and the original message has a version 2 MQMD with non-default values in the version-2-only fields, those fields are used to construct an MQMDE which is chained into the start of the message. The queue manager will not create an MQMDE when asked for a message with a version 1 MQMD unless it's necessary to do so. All MQMD-version-2-aware queue managers work in this way. Regards, Phil Willoughby -- Software Development Engineer IBM Certified System Administrator - WebSphere MQ V6.0 Certified for IBM WebSphere Software - IBM WebSphere MQ for z/OS IBM Certified Solution Designer - WebSphere MQ V6.0 Senior Inventor IBM Certified SOA Solution Designer [EMAIL PROTECTED] Sent by: MQSeries List <MQSERIES@LISTSERV.MEDUNIWIEN.AC.AT> 16/08/2007 15:56 Please respond to MQSeries List <MQSERIES@LISTSERV.MEDUNIWIEN.AC.AT> To MQSERIES@LISTSERV.MEDUNIWIEN.AC.AT cc Subject MQMD Version Question I've got some developers whose Process Server application appears to be putting a Version 1 MQMD with an MQMDE in the body of the message. I'm out of the office this week so I can't get involved in looking at the details of this issue, but wanted to get a reality check. According to what I read, if an application (Process Server) chooses to put a version 1 MQMD and MQMDE, that decision is made in the Application, and the queue manager (V5.3 on AIX to V5.3.1 on z/OS) doesn't play any role in either constructing the MQMD/MQMDE, or deconstructing it for the application that GETs the message. The Developers claim that attaching directly to the z/OS QM, they get a V2 MQMD, and Connecting to the AIX QM they get a V1 MQMD/MQMDE, and further more they say that the receiving application receives a V2 MQMD in either case. I don't believe this is possible. Am I mis-understanding the MQ Documentation? Can MQ transform MQMD/MQMDE to MQMD V2 without any application involvement? _____ <http://listserv.meduniwien.ac.at/archives/mqser-l.html> List Archive - <http://listserv.meduniwien.ac.at/cgi-bin/wa?SUBED1=mqser-l&A=1> Manage Your List Settings - <mailto:[EMAIL PROTECTED]&BODY=signoff% 20mqseries> Unsubscribe Instructions for managing your mailing list subscription are provided in the Listserv General Users Guide available at <http://www.lsoft.com/resources/manuals.asp> http://www.lsoft.com _____ Unless stated otherwise above: IBM United Kingdom Limited - Registered in England and Wales with number 741598. Registered office: PO Box 41, North Harbour, Portsmouth, Hampshire PO6 3AU To unsubscribe, write to [EMAIL PROTECTED] and, in the message body (not the subject), write: SIGNOFF MQSERIES Instructions for managing your mailing list subscription are provided in the Listserv General Users Guide available at http://www.lsoft.com Archive: http://listserv.meduniwien.ac.at/archives/mqser-l.html
<<image001.gif>>