| Author | 
		  Message
		 | 
		
		  | BBuff | 
		  
		    
			  
				 Posted: Wed Apr 12, 2006 6:08 am    Post subject:  | 
				     | 
			   
			 
		   | 
		
		
		   Novice
 
 Joined: 11 Apr 2006 Posts: 10
  
  | 
		  
		    
			  
				True.  I've been totally impressed with the response on the forum.  
 
 
I do have a little more information.  If PutApplType = MQAT_IMS_BRIDGE then the message never arrives in the queue.  If it is set to PutApplType = MQAT_WINDOWS_NT the message shows up in the queue just fine.  I know I have some sort of disconnect somewhere, but not sure where it is at this time. | 
			   
			 
		   | 
		
		
		  | Back to top | 
		  
		  	
		   | 
		
		
		    | 
		
		
		  | Vitor | 
		  
		    
			  
				 Posted: Wed Apr 12, 2006 6:14 am    Post subject:  | 
				     | 
			   
			 
		   | 
		
		
		    Grand High Poobah
 
 Joined: 11 Nov 2005 Posts: 26093 Location: Texas, USA 
  | 
		  
		    
			  
				
   
	| BBuff wrote: | 
   
  
	True.  I've been totally impressed with the response on the forum.  
 
 
I do have a little more information.  If PutApplType = MQAT_IMS_BRIDGE then the message never arrives in the queue.  If it is set to PutApplType = MQAT_WINDOWS_NT the message shows up in the queue just fine.  I know I have some sort of disconnect somewhere, but not sure where it is at this time. | 
   
 
 
 
Well this would make sense. If you're claiming that the putting application for a message intended for the bridge is the bridge, it'll disappear up itself in a puff of logic.    
 
 
I never set putting application & let it default. Lazy but seems to work.    _________________ Honesty is the best policy.
 
Insanity is the best defence. | 
			   
			 
		   | 
		
		
		  | Back to top | 
		  
		  	
		   | 
		
		
		    | 
		
		
		  | BBuff | 
		  
		    
			  
				 Posted: Wed Apr 12, 2006 6:45 am    Post subject:  | 
				     | 
			   
			 
		   | 
		
		
		   Novice
 
 Joined: 11 Apr 2006 Posts: 10
  
  | 
		  
		    
			  
				| Well I lied.  If the Message Descriptor Format property that's killing me somehow.  If it's set to MQFMT_IMS the message never goes in the queue, but if it is set to MQFMT_STRING it's fine.  Sorry for any confusion. | 
			   
			 
		   | 
		
		
		  | Back to top | 
		  
		  	
		   | 
		
		
		    | 
		
		
		  | Vitor | 
		  
		    
			  
				 Posted: Wed Apr 12, 2006 6:54 am    Post subject:  | 
				     | 
			   
			 
		   | 
		
		
		    Grand High Poobah
 
 Joined: 11 Nov 2005 Posts: 26093 Location: Texas, USA 
  | 
		  
		    
			  
				
   
	| BBuff wrote: | 
   
  
	| Well I lied.  If the Message Descriptor Format property that's killing me somehow.  If it's set to MQFMT_IMS the message never goes in the queue, but if it is set to MQFMT_STRING it's fine.  Sorry for any confusion. | 
   
 
 
 
Bizarre. Can't think of a reason why the format would cause the put to fail, but clearly your system can. Interested to know what the reason code is when you set MQFMT_IMS, but it's just morbid curiosity.    
 
 
The IT world is full of bizarre things, and I've learned to just let them slide unless they actually stop you getting someplace....    _________________ Honesty is the best policy.
 
Insanity is the best defence. | 
			   
			 
		   | 
		
		
		  | Back to top | 
		  
		  	
		   | 
		
		
		    | 
		
		
		  | BBuff | 
		  
		    
			  
				 Posted: Wed Apr 12, 2006 6:59 am    Post subject:  | 
				     | 
			   
			 
		   | 
		
		
		   Novice
 
 Joined: 11 Apr 2006 Posts: 10
  
  | 
		  
		    
			  
				The weird thing is that when I debug and step over the MQPUT line the reason code is 0.
 
 
Is this correct for building the header:
 
Private Function BuildBridgeHeader() As Variant
 
    Dim header As String
 
 
    header = "IIH "                                     ' MQIIH_STRUCT_ID
 
    header = header & Hex$("1")                               ' MQIIH_VERSION_1
 
    header = header & Hex$("84")                              ' MQIIH_LENGTH_1
 
    header = header & Hex$("0")                               ' 4 byte reserved
 
    header = header & Hex$("0")                               ' 4 byte reserved
 
    header = header & "MQIMSVS "                        ' MQFMT_IMS_VAR_STRING
 
    header = header & Hex$("0")                               ' MQIIH_NONE
 
    header = header & "MASTER  "                        ' 8 byte ltermoverride
 
    header = header & "MODU03  "                        ' 8 byte mfsmapname
 
    header = header & "MQIMSVS "                        ' MQFMT_IMS_VAR_STRING
 
    header = header & Left(g_user_id & Space( ,       ' 8 byte authenticator
 
    header = header & "0000000000000000"                ' 16 byte transid
 
    header = header & " "                               ' MQITS_NOT_IN_CONVERSATION
 
    header = header & "1"                               ' MQICM_SEND_THEN_COMMIT
 
    header = header & "C"                               ' MQIIS_CHECK
 
    header = header & " "                               ' 1 byte reserved
 
 
    BuildBridgeHeader = header
 
End Function
 
 
   
	| Vitor wrote: | 
   
  
	
   
	| BBuff wrote: | 
   
  
	| Well I lied.  If the Message Descriptor Format property that's killing me somehow.  If it's set to MQFMT_IMS the message never goes in the queue, but if it is set to MQFMT_STRING it's fine.  Sorry for any confusion. | 
   
 
 
 
Bizarre. Can't think of a reason why the format would cause the put to fail, but clearly your system can. Interested to know what the reason code is when you set MQFMT_IMS, but it's just morbid curiosity.    
 
 
The IT world is full of bizarre things, and I've learned to just let them slide unless they actually stop you getting someplace....    | 
   
 
 | 
			   
			 
		   | 
		
		
		  | Back to top | 
		  
		  	
		   | 
		
		
		    | 
		
		
		  | Vitor | 
		  
		    
			  
				 Posted: Wed Apr 12, 2006 7:27 am    Post subject: Re: MQIIH In VB6 | 
				     | 
			   
			 
		   | 
		
		
		    Grand High Poobah
 
 Joined: 11 Nov 2005 Posts: 26093 Location: Texas, USA 
  | 
		  
		    
			  
				I would have stuck with
 
 
   
	| BBuff wrote: | 
   
  
	
 
Dim iih As MQIIH
 
 
MQIIH_DEFAULTS iih
 
 | 
   
 
 
 
etc - more maintainable. 
 
 
No message & a reason code of 0? Again, bizarre. Clearly getting itself routed someplace. Hands up anyone who cares.....?    
 
 
Unless of course, as JT points out, the reason it's not there is because IMS has consumed it....?    _________________ Honesty is the best policy.
 
Insanity is the best defence. | 
			   
			 
		   | 
		
		
		  | Back to top | 
		  
		  	
		   | 
		
		
		    | 
		
		
		  | DryHeatDave | 
		  
		    
			  
				 Posted: Wed Apr 12, 2006 8:12 am    Post subject:  | 
				     | 
			   
			 
		   | 
		
		
		    Apprentice
 
 Joined: 21 Mar 2006 Posts: 28 Location: Phoenix, AZ 
  | 
		  
		    
			  
				NOt sure how much it helps (if at all). But here's a captured example - I have sanitised the replyto info & userid. As you can see on the last line, we did explicitly include the LLZZTRANNAME before the payload (we use a SOAP-compliant envelope).    
 
 
[  364 bytes] Message Descriptor (MQMD)
 
StrucId      :'MD  '
 
Version      :2
 
Report       :0
 
Message Type :8
 
Expiry       :-1
 
Feedback     :0
 
MQEncoding   :0x'311'
 
CCSID        :37
 
Format       :'MQIMS   '
 
Priority     :0
 
Persistence  :0 (Not Persistent)
 
Message Id   :. ( . . . . & . . . . . . . . . . . . . . . . . 
 
              414D512053445058585131312020202043DAE1DA208F4402
 
Correl. Id   :. . . . . . . . . . . . . . . . . . . . . . . . 
 
              000000000000000000000000000000000000000000000000
 
Backout Cnt. :0
 
ReplyToQ     :'reply.to.queue.name                             '
 
ReplyToQMgr  :'reply.to.queue.manager.name                     '
 
UserId       :'usersid     '
 
AccountingTkn:. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 
 
              0000000000000000000000000000000000000000000000000000000000000000
 
ApplIndentity:'                                '
 
PutApplType  :28
 
PutApplName  :'                            '
 
Put Date     :'20060214'
 
Put Time     :'10200396'
 
ApplOriginDat:'    '
 
Group Id     :. . . . . . . . . . . . . . . . . . . . . . . . 
 
              000000000000000000000000000000000000000000000000
 
Msg Seq No.  :1
 
Offset       :0
 
MsgFlags     :0
 
Original Len.:-1
 
+00000000 C9C9C840 00000001 00000054 00000000 00000000  IIH ................
 
+00000014 D4D8C9D4 E2404040 00000000 40404040 40404040  MQIMS   ....        
 
+00000028 40404040 40404040 D4D8C9D4 E2E5E240 40404040          MQIMSVS     
 
+0000003C 40404040 00000000 00000000 00000000 00000000      ................
 
+00000050 40F0C340 0AA40000 D3E5D3E2 E3404040 4CC595A5   0C .u..LVLST   <Env _________________ SCJP2
 
IBM Cert. Solutions Designer for Websphere MQ 5.3
 
Not a certified mainframer - just been doing it a real long time. | 
			   
			 
		   | 
		
		
		  | Back to top | 
		  
		  	
		   | 
		
		
		    | 
		
		
		  | DryHeatDave | 
		  
		    
			  
				 Posted: Wed Apr 12, 2006 8:19 am    Post subject:  | 
				     | 
			   
			 
		   | 
		
		
		    Apprentice
 
 Joined: 21 Mar 2006 Posts: 28 Location: Phoenix, AZ 
  | 
		  
		    
			  
				Regarding the Format in the descriptor - I think it has to be MQIMS, to tell MQ to look for (and parse) the IIH. 
 
 
Q. Does anyone know - does this apply when sending a message with RFH2 (or other) headers ? i.e. do you have to set the appropriate MD format, to get MQ to parse the additional header/s ?
 
 
If changing the format to MQIMS in the descriptor causes an error - betting it's a problem in the IIH, which was not being parsed by MQ before (if you don't tell it to expect an IIH, I guess it'll be treated as payload)     _________________ SCJP2
 
IBM Cert. Solutions Designer for Websphere MQ 5.3
 
Not a certified mainframer - just been doing it a real long time. | 
			   
			 
		   | 
		
		
		  | Back to top | 
		  
		  	
		   | 
		
		
		    | 
		
		
		  | jefflowrey | 
		  
		    
			  
				 Posted: Wed Apr 12, 2006 8:41 am    Post subject:  | 
				     | 
			   
			 
		   | 
		
		
		   Grand Poobah
 
 Joined: 16 Oct 2002 Posts: 19981
  
  | 
		  
		    
			  
				The format of the MQMD has to always be set to the format of the next section of the message.
 
 
Sometimes this section is another header, sometimes it is the message body.
 
 
In general, if a particular section of a message has a Format field, then the format field will indicate the format of the NEXT section of the message.
 
 
so if you have a message that is 
 
MQMD
 
MQIIH
 
MQRFH2
 
Body
 
 
Then the MQMD Format will be MQIIH, the MQIIH Format will be MQHRF2 and the format of the MQRFH2 will be, perhaps, MQFMT_STRING. _________________ I am *not* the model of the modern major general. | 
			   
			 
		   | 
		
		
		  | Back to top | 
		  
		  	
		   | 
		
		
		    | 
		
		
		  | 
		    
		   |