| Author | 
		  Message
		 | 
		
		  | rammer | 
		  
		    
			  
				 Posted: Wed Apr 21, 2004 1:49 am    Post subject: MQMD | 
				     | 
			   
			 
		   | 
		
		
		   Partisan
 
 Joined: 02 May 2002 Posts: 359 Location: England 
  | 
		  
		    
			  
				Hi
 
 
I have a general question regarding the size of the MQMD.  Does anybody know if there is a default size of MQMD or does it depend on what context is added.  
 
 
I have tried searching for the answer within this forum and through the MQ Application Programming Reference with out any luck.
 
 
Thank you in advance | 
			   
			 
		   | 
		
		
		  | Back to top | 
		  
		  	
		   | 
		
		
		    | 
		
		
		  | Michael Dag | 
		  
		    
			  
				 Posted: Wed Apr 21, 2004 3:04 am    Post subject:  | 
				     | 
			   
			 
		   | 
		
		
		    Jedi Knight
 
 Joined: 13 Jun 2002 Posts: 2607 Location: The Netherlands (Amsterdam) 
  | 
		  
		    
			  
				it's fixed length, if my memory serves me correctly 758 bytes in total. _________________ Michael
 
 
 
 
 
MQSystems Facebook page | 
			   
			 
		   | 
		
		
		  | Back to top | 
		  
		  	
		   | 
		
		
		    | 
		
		
		  | rammer | 
		  
		    
			  
				 Posted: Tue Apr 27, 2004 12:49 am    Post subject:  | 
				     | 
			   
			 
		   | 
		
		
		   Partisan
 
 Joined: 02 May 2002 Posts: 359 Location: England 
  | 
		  
		    
			  
				| Thanks for the prmpt reply. | 
			   
			 
		   | 
		
		
		  | Back to top | 
		  
		  	
		   | 
		
		
		    | 
		
		
		  | kman | 
		  
		    
			  
				 Posted: Tue Apr 27, 2004 2:29 am    Post subject:  | 
				     | 
			   
			 
		   | 
		
		
		   Partisan
 
 Joined: 21 Jan 2003 Posts: 309 Location: Kuala Lumpur, Malaysia 
  | 
		  
		    
			  
				| mmm is that really? I thought 4k is reserved for MQMD. Or was it 4k reserved for MQ headers.. so it should be MQMD + ? | 
			   
			 
		   | 
		
		
		  | Back to top | 
		  
		  	
		   | 
		
		
		    | 
		
		
		  | Michael Dag | 
		  
		    
			  
				 Posted: Tue Apr 27, 2004 2:53 am    Post subject:  | 
				     | 
			   
			 
		   | 
		
		
		    Jedi Knight
 
 Joined: 13 Jun 2002 Posts: 2607 Location: The Netherlands (Amsterdam) 
  | 
		  
		    
			  
				as far as I know the only part that is fixed and is reserved is the MQMD itself, any other header is 'technically' part of the 'payload' (and thus not reserved). 
 
Whether 758 bytes is still valid or wether my memory is scrambled I wouldn't know   _________________ Michael
 
 
 
 
 
MQSystems Facebook page | 
			   
			 
		   | 
		
		
		  | Back to top | 
		  
		  	
		   | 
		
		
		    | 
		
		
		  | mqonnet | 
		  
		    
			  
				 Posted: Tue Apr 27, 2004 4:45 am    Post subject:  | 
				     | 
			   
			 
		   | 
		
		
		    Grand Master
 
 Joined: 18 Feb 2002 Posts: 1114 Location: Boston, Ma, Usa. 
  | 
		  
		    
			  
				You could add up all the field's sizes in the MQMD structure and you would get the length.  Remember that if you dont include V2 fields, it would be different.
 
 
Just out curiosity though, why do you need it.  I havent come accross a situation where i needed this info, since its an MQ internal structure.
 
 
Cheers
 
Kumar | 
			   
			 
		   | 
		
		
		  | Back to top | 
		  
		  	
		   | 
		
		
		    | 
		
		
		  | rammer | 
		  
		    
			  
				 Posted: Tue Apr 27, 2004 5:43 am    Post subject:  | 
				     | 
			   
			 
		   | 
		
		
		   Partisan
 
 Joined: 02 May 2002 Posts: 359 Location: England 
  | 
		  
		    
			  
				To be honest I am not sure why it is needed but one of our developers was after the figure.   | 
			   
			 
		   | 
		
		
		  | Back to top | 
		  
		  	
		   | 
		
		
		    | 
		
		
		  | mqonnet | 
		  
		    
			  
				 Posted: Tue Apr 27, 2004 5:46 am    Post subject:  | 
				     | 
			   
			 
		   | 
		
		
		    Grand Master
 
 Joined: 18 Feb 2002 Posts: 1114 Location: Boston, Ma, Usa. 
  | 
		  
		    
			  
				The only purpose i could think of is memory management.  But since this is almost a neglegible amuont, its really not worth the time and effort digging into it.  :)
 
 
Cheers
 
Kumar | 
			   
			 
		   | 
		
		
		  | Back to top | 
		  
		  	
		   | 
		
		
		    | 
		
		
		  | Michael Dag | 
		  
		    
			  
				 Posted: Tue Apr 27, 2004 6:09 am    Post subject:  | 
				     | 
			   
			 
		   | 
		
		
		    Jedi Knight
 
 Joined: 13 Jun 2002 Posts: 2607 Location: The Netherlands (Amsterdam) 
  | 
		  
		    
			  
				the reason I know about it is once we got bitten by it where an interface
 
between individual checkout machines in a supermarket was developed and 
 
they were sending line item per line item in an MQ message, 
 
the header / payload overhead turned out to be 5000% ... (sending 15 bytes with a 758 bytes header...) 
 
 
clearly in some cases it is important information for your design ...    _________________ Michael
 
 
 
 
 
MQSystems Facebook page | 
			   
			 
		   | 
		
		
		  | Back to top | 
		  
		  	
		   | 
		
		
		    | 
		
		
		  | PeterPotkay | 
		  
		    
			  
				 Posted: Tue Apr 27, 2004 10:14 am    Post subject:  | 
				     | 
			   
			 
		   | 
		
		
		    Poobah
 
 Joined: 15 May 2001 Posts: 7723
  
  | 
		  
		    
			  
				A Version1 MQMD is 364 bytes. I had to define a hold field in WorkIng Storage in a COBOL copybook to save off the original MQMD, and that was the length it turned out to be.
 
 
A Version2 MQMD would be a little longer. _________________ Peter Potkay
 
Keep Calm and MQ On | 
			   
			 
		   | 
		
		
		  | Back to top | 
		  
		  	
		   | 
		
		
		    | 
		
		
		  | Michael Dag | 
		  
		    
			  
				 Posted: Tue Apr 27, 2004 12:24 pm    Post subject:  | 
				     | 
			   
			 
		   | 
		
		
		    Jedi Knight
 
 Joined: 13 Jun 2002 Posts: 2607 Location: The Netherlands (Amsterdam) 
  | 
		  
		    
			  
				Can anyone verify the length of a Version2 MQMD, 
 
otherwise I need to stop by the shop tomorrow first thing for some new memory blocks ...    _________________ Michael
 
 
 
 
 
MQSystems Facebook page | 
			   
			 
		   | 
		
		
		  | Back to top | 
		  
		  	
		   | 
		
		
		    | 
		
		
		  | PeterPotkay | 
		  
		    
			  
				 Posted: Tue Apr 27, 2004 12:30 pm    Post subject:  | 
				     | 
			   
			 
		   | 
		
		
		    Poobah
 
 Joined: 15 May 2001 Posts: 7723
  
  | 
		  
		    
			  
				Michael, looking at the COBOL declaration of the Version 2 fields, I see an extra 40 bytes:
 
 
GroupID = 24 bytes
 
MsgSeqNumber = 4 bytes
 
OffSet = 4 bytes
 
MsgFlags = 4 bytes
 
OriginalLength = 4 bytes.
 
 
Maybe you were also factoring in the Transmit Queue Header, as well as TCP/IP "stuff" associatted with each MQ message? _________________ Peter Potkay
 
Keep Calm and MQ On | 
			   
			 
		   | 
		
		
		  | Back to top | 
		  
		  	
		   | 
		
		
		    | 
		
		
		  | Michael Dag | 
		  
		    
			  
				 Posted: Tue Apr 27, 2004 12:36 pm    Post subject:  | 
				     | 
			   
			 
		   | 
		
		
		    Jedi Knight
 
 Joined: 13 Jun 2002 Posts: 2607 Location: The Netherlands (Amsterdam) 
  | 
		  
		    
			  
				758 - 364 - 40 = 354... could this indeed be the transmissionQ header? 
 
the data was sent to another Qmgr at the time... _________________ Michael
 
 
 
 
 
MQSystems Facebook page | 
			   
			 
		   | 
		
		
		  | Back to top | 
		  
		  	
		   | 
		
		
		    | 
		
		
		  | kirani | 
		  
		    
			  
				 Posted: Tue Apr 27, 2004 10:28 pm    Post subject:  | 
				     | 
			   
			 
		   | 
		
		
		   Jedi Knight
 
 Joined: 05 Sep 2001 Posts: 3779 Location: Torrance, CA, USA 
  | 
		  
		    
			  
				Now I am getting confused! I believe the MQMD V2 size is 364 bytes.
 
 
   
	| Code: | 
   
  
	
 
 
 struct tagMQMD {
 
   MQCHAR4   StrucId;           /* Structure identifier */
 
   MQLONG    Version;           /* Structure version number */
 
   MQLONG    Report;            /* Options for report messages */
 
   MQLONG    MsgType;           /* Message type */
 
   MQLONG    Expiry;            /* Message lifetime */
 
   MQLONG    Feedback;          /* Feedback or reason code */
 
   MQLONG    Encoding;          /* Numeric encoding of message data */
 
   MQLONG    CodedCharSetId;    /* Character set identifier of message
 
                                   data */
 
   MQCHAR8   Format;            /* Format name of message data */
 
   MQLONG    Priority;          /* Message priority */
 
   MQLONG    Persistence;       /* Message persistence */
 
   MQBYTE24  MsgId;             /* Message identifier */
 
   MQBYTE24  CorrelId;          /* Correlation identifier */
 
   MQLONG    BackoutCount;      /* Backout counter */
 
   MQCHAR48  ReplyToQ;          /* Name of reply queue */
 
   MQCHAR48  ReplyToQMgr;       /* Name of reply queue manager */
 
   MQCHAR12  UserIdentifier;    /* User identifier */
 
   MQBYTE32  AccountingToken;   /* Accounting token */
 
   MQCHAR32  ApplIdentityData;  /* Application data relating to
 
                                   identity */
 
   MQLONG    PutApplType;       /* Type of application that put the
 
                                   message */
 
   MQCHAR28  PutApplName;       /* Name of application that put the
 
                                   message */
 
   MQCHAR8   PutDate;           /* Date when message was put */
 
   MQCHAR8   PutTime;           /* Time when message was put */
 
   MQCHAR4   ApplOriginData;    /* Application data relating to
 
                                   origin */
 
   MQBYTE24  GroupId;           /* Group identifier */
 
   MQLONG    MsgSeqNumber;      /* Sequence number of logical message
 
                                   within group */
 
   MQLONG    Offset;            /* Offset of data in physical message
 
                                   from start of logical message */
 
   MQLONG    MsgFlags;          /* Message flags */
 
   MQLONG    OriginalLength;    /* Length of original message */
 
 };
 
 | 
   
 
 _________________ Kiran
 
 
 
IBM Cert. Solution Designer & System Administrator - WBIMB V5
 
IBM Cert. Solutions Expert - WMQI
 
IBM Cert. Specialist - WMQI, MQSeries
 
IBM Cert. Developer - MQSeries
 
 
 | 
			   
			 
		   | 
		
		
		  | Back to top | 
		  
		  	
		   | 
		
		
		    | 
		
		
		  | Michael Dag | 
		  
		    
			  
				 Posted: Tue Apr 27, 2004 11:25 pm    Post subject:  | 
				     | 
			   
			 
		   | 
		
		
		    Jedi Knight
 
 Joined: 13 Jun 2002 Posts: 2607 Location: The Netherlands (Amsterdam) 
  | 
		  
		    
			  
				well worth finding out what's the truth! (beats answering 2035 error questions    )
 
 
So MQMD V2 = 364
 
 
TransmissinQ Header adds: 
 
   
	| Code: | 
   
  
	   MQCHAR4   StrucId;         /* Structure identifier */
 
   MQLONG    Version;         /* Structure version number */
 
   MQCHAR48  RemoteQName;     /* Name of destination queue */
 
   MQCHAR48  RemoteQMgrName;  /* Name of destination queue manager */ | 
   
 
 
 
4 + ??? + 48 + 48 = 100 + ??? 
 
 
how long is an MQLONG? (I am not a programmer obviously...) _________________ Michael
 
 
 
 
 
MQSystems Facebook page | 
			   
			 
		   | 
		
		
		  | Back to top | 
		  
		  	
		   | 
		
		
		    | 
		
		
		  | 
		    
		   |