| Author | Message | 
		
		  | jayZ | 
			  
				|  Posted: Tue Mar 13, 2012 7:26 am    Post subject: Consuming Messages from WCF Client in WMB7 |   |  | 
		
		  | Acolyte
 
 
 Joined: 03 Jun 2008Posts: 71
 
 
 | 
			  
				| I am attempting to write a message flow that would consume a message from a .Net application, using the customer WCF - MQ channel.  Since .Net is using SOAP/JMS under the covers, I am getting a SOAP message to the input node.  In order to process this message, I am attempting to use the SOAPInput node with JMS as the transport, but keep getting: The SOAPJMS_contentType property was not present in the inbound message.  Is this an issue with the client or is WMB 7 even able to parse these messages with the built in SOAP nodes? |  | 
		
		  | Back to top |  | 
		
		  |  | 
		
		  | Vitor | 
			  
				|  Posted: Tue Mar 13, 2012 7:33 am    Post subject: Re: Consuming Messages from WCF Client in WMB7 |   |  | 
		
		  |  Grand High Poobah
 
 
 Joined: 11 Nov 2005Posts: 26093
 Location: Texas, USA
 
 | 
			  
				| 
   
	| jayZ wrote: |  
	| In order to process this message, I am attempting to use the SOAPInput node with JMS as the transport, but keep getting: The SOAPJMS_contentType property was not present in the inbound message. |  
 Getting where? When you're configuring the node or when a message arrives? If the latter, is the message being rolled back onto the queue (backout count increasing)?
 
 
 
   
	| jayZ wrote: |  
	| Is this an issue with the client or is WMB 7 even able to parse these messages with the built in SOAP nodes? |  
 My first move would be to stop the flow, get the app to send a message and manually examine it to see if the contentType property is present or not. That's going to pin down the problem area.
 
 My first thought is that the clients not supplying it because WMBv7 should be able to do this, but not really my comfort area.
 
 As always, a user trace may give you more details on exactly when the wheels fell off.
 _________________
 Honesty is the best policy.
 Insanity is the best defence.
 |  | 
		
		  | Back to top |  | 
		
		  |  | 
		
		  | jayZ | 
			  
				|  Posted: Tue Mar 13, 2012 7:40 am    Post subject: |   |  | 
		
		  | Acolyte
 
 
 Joined: 03 Jun 2008Posts: 71
 
 
 | 
			  
				| Thanks, Vitor! Here is the output from the RFH header: 
 ------Content Type -------
 <contentType>text/xml; charset=utf-8</contentType>
 
 ------RFH Header --------
 StrucId : 'RFH '        Version : 2          StrucLength : 796          Encoding : 546
 CodedCharSetId : 1208        Format : ' '        Flags : 0        NameValueCCSID : 1208
 NameValueLen : 32
 NameValueData : '<mcd><Msd>jms_bytes</Msd></mcd> '
 NameValueLen : 172
 NameValueData : '<jms><Dst>queue://[Queue Manager]/SampleQ?expiry=0&priority=0&persistence=-1</
 Dst><Rto>queue:///SampleReplyQ</Rto><Tms>[Data]</Tms><Pri>0</Pri><Dlv>1</
 Dlv></jms>  '
 NameValueLen : 544
 NameValueData : '<usr><transportVersion>1</transportVersion><soapAction>http://schemas.adesa.com/
 IH/Transmissions/TransmisionRequest/MessageTransferService/ExecuteTransmission</
 soapAction><contentType>text/xml; charset=utf-8</contentType><targetService></ta
 rgetService><endpointURL>jms:/queue?destination=SampleQ@[Queue Manager]&connection
 Factory=binding(client)connectQueueManager([Queue Manager Name])clientConnection(d-corp-int
 mq-01([Port]))clientChannel([CHANNEL])&initialContextFactory=com.ibm.mq.j
 ms.Nojndi&replyDestination=SampleReplyQ</endpointURL></usr> '
 |  | 
		
		  | Back to top |  | 
		
		  |  | 
		
		  | Vitor | 
			  
				|  Posted: Tue Mar 13, 2012 7:49 am    Post subject: |   |  | 
		
		  |  Grand High Poobah
 
 
 Joined: 11 Nov 2005Posts: 26093
 Location: Texas, USA
 
 | 
			  
				| Ok, moving even further outside my area here, but I would have expected contentType to be in the <jms> area rather than the <usr> one; possibly my expectation is wrong. 
 I'm also surprised to see a SOAP message described as jms_Bytes rather than jms_Text. Falling off the edge of my comfort zone and into the dark pit of WCF of which I know next to nothing, I'd enquire with the application if they're certain it's all well their end.
 
 I'd also be inclined to construct a test SOAP/JMS message with SoapUI or similar, feed that to the flow & see what happens.
 
 I'd also run a user trace. More for Pavlovian reasons (see WMB issue, run WMB user trace) but it might throw a clue up.
 _________________
 Honesty is the best policy.
 Insanity is the best defence.
 |  | 
		
		  | Back to top |  | 
		
		  |  | 
		
		  | jayZ | 
			  
				|  Posted: Tue Mar 13, 2012 7:53 am    Post subject: |   |  | 
		
		  | Acolyte
 
 
 Joined: 03 Jun 2008Posts: 71
 
 
 | 
			  
				| We're definitely in the same boat with regards to the WCF side.  I also noticed the jms_bytes type, but the .Net guys seem to think that this is all happening under the covers.  This is definitely a scary middle area, where its not quite .Net, not quite broker.  From their perspective, the message is getting to the queue; so, they don't see an issue on their end. 
 Thanks for your help.
 JZ
 |  | 
		
		  | Back to top |  | 
		
		  |  | 
		
		  | Vitor | 
			  
				|  Posted: Tue Mar 13, 2012 8:16 am    Post subject: |   |  | 
		
		  |  Grand High Poobah
 
 
 Joined: 11 Nov 2005Posts: 26093
 Location: Texas, USA
 
 | 
			  
				| 
   
	| jayZ wrote: |  
	| From their perspective, the message is getting to the queue; so, they don't see an issue on their end. |  
 I can offer only this conversation I had with a .NET developer a few months ago, when I was getting problems due to an XML message not matching the schema I'd been provided with:
 
 "This XML isn't valid; I need the schema you're using or some clue what I'm supposed to do when this integer value contains 'N/A'"
 
 "It's an optional tag; don't process it if it's not an integer"
 
 "If it's optional, why are you sending it when there's no value?"
 
 "There's nothing wrong with the message we're sending. It looks fine in MQExplorer"
 
 "If it was a random stream of bytes would you think it was your problem?"
 
 "Yeah, sure"
 
 "If it wasn't well formed XML would you think it was your problem?"
 
 "Yeah, but..."
 
 "So this is your problem. Send me the schema you're using to form the XML"
 _________________
 Honesty is the best policy.
 Insanity is the best defence.
 |  | 
		
		  | Back to top |  | 
		
		  |  | 
		
		  | mgk | 
			  
				|  Posted: Tue Mar 13, 2012 8:28 am    Post subject: |   |  | 
		
		  |  Padawan
 
 
 Joined: 31 Jul 2003Posts: 1647
 
 
 | 
			  
				| 
   
	| Quote: |  
	| The SOAPJMS_contentType property was not present in the inbound message. |  
 This error occurs because the MQ-WCF channel only supports an older (IBM) version of SOAP/JMS. By default the SOAPInput node requires that the message have the properties expected by the SOAP/JMS standard (on W3C). For example, W3C style expects "SOAPJMS_contentType" but the IBM style expects "contentType" in teh message properties.
 
 Therefore you have to flip the SOAPInput node into "IBM" mode from "W3C" mode. The way to do this is to configure the SOAPInput node with a WSDL that has an IBM style SOAP/JMS binding. Then everything should spring to life
  . 
 This is explained a little in the info center here:
 
 http://publib.boulder.ibm.com/infocenter/wmbhelp/v8r0m0/topic/com.ibm.etools.mft.doc/bc19000_.htm
 
 I hope this helps,
 
 Kind Regards,
 _________________
 MGK
 The postings I make on this site are my own and don't necessarily represent IBM's positions, strategies or opinions.
 |  | 
		
		  | Back to top |  | 
		
		  |  | 
		
		  | Vitor | 
			  
				|  Posted: Tue Mar 13, 2012 8:47 am    Post subject: |   |  | 
		
		  |  Grand High Poobah
 
 
 Joined: 11 Nov 2005Posts: 26093
 Location: Texas, USA
 
 | 
			  
				| 
   
	| mgk wrote: |  
	| I hope this helps, |  
 I'm enlightened and offer you thanks!
      _________________
 Honesty is the best policy.
 Insanity is the best defence.
 |  | 
		
		  | Back to top |  | 
		
		  |  | 
		
		  | lancelotlinc | 
			  
				|  Posted: Tue Mar 13, 2012 8:50 am    Post subject: |   |  | 
		
		  |  Jedi Knight
 
 
 Joined: 22 Mar 2010Posts: 4941
 Location: Bloomington, IL USA
 
 |  | 
		
		  | Back to top |  | 
		
		  |  | 
		
		  | Vitor | 
			  
				|  Posted: Tue Mar 13, 2012 8:54 am    Post subject: |   |  | 
		
		  |  Grand High Poobah
 
 
 Joined: 11 Nov 2005Posts: 26093
 Location: Texas, USA
 
 | 
			  
				| 
   
	| lancelotlinc wrote: |  
	| Thanks also!! Lets go for Fish & Chips and a pint or two. I'm buying.... |  
 You know a Fish & Chip place in Bloomington? Or within 50 miles? With decent beer?
 
 I once found a decent seafood place in Peoria.
 
 Of course if by "I'm buying" you mean to go to the UK, I can offer you any number of suggestions...
 _________________
 Honesty is the best policy.
 Insanity is the best defence.
 |  | 
		
		  | Back to top |  | 
		
		  |  | 
		
		  | mgk | 
			  
				|  Posted: Tue Mar 13, 2012 8:56 am    Post subject: |   |  | 
		
		  |  Padawan
 
 
 Joined: 31 Jul 2003Posts: 1647
 
 
 | 
			  
				| 
   
	| Quote: |  
	| Lets go for Fish & Chips and a pint or two. I'm buying |  
 Sounds good. Maybe I will have the chance to take you up on that kind offer at IMPACT this year
  _________________
 MGK
 The postings I make on this site are my own and don't necessarily represent IBM's positions, strategies or opinions.
 |  | 
		
		  | Back to top |  | 
		
		  |  | 
		
		  | lancelotlinc | 
			  
				|  Posted: Tue Mar 13, 2012 9:01 am    Post subject: |   |  | 
		
		  |  Jedi Knight
 
 
 Joined: 22 Mar 2010Posts: 4941
 Location: Bloomington, IL USA
 
 | 
			  
				| Alas, my Impact opportunity evaporated. The company sent twelve people to the Java One conference and figured out they over-spent the budget. The Impact conference will have to wait for me until next year. 
 This year, I'm going back to Cebu, Philippines for vaca.
 _________________
 http://leanpub.com/IIB_Tips_and_Tricks
 Save $20: Coupon Code: MQSERIES_READER
 |  | 
		
		  | Back to top |  | 
		
		  |  | 
		
		  | Vitor | 
			  
				|  Posted: Tue Mar 13, 2012 9:04 am    Post subject: |   |  | 
		
		  |  Grand High Poobah
 
 
 Joined: 11 Nov 2005Posts: 26093
 Location: Texas, USA
 
 | 
			  
				| 
   
	| mgk wrote: |  
	| Maybe I will have the chance to take you up on that kind offer at IMPACT this year  |  
 If I make it to IMPACT (still 50/50 on the politics) we can try and find good beer at least.
 
 (There are no decent fish & chips in Las Vegas. Harsh thing to say, but true. Doesn't make it a bad place, just a place without fish & chips. Like most of this country....
  ) _________________
 Honesty is the best policy.
 Insanity is the best defence.
 |  | 
		
		  | Back to top |  | 
		
		  |  | 
		
		  | fjb_saper | 
			  
				|  Posted: Tue Mar 13, 2012 9:00 pm    Post subject: |   |  | 
		
		  |  Grand High Poobah
 
 
 Joined: 18 Nov 2003Posts: 20767
 Location: LI,NY
 
 | 
			  
				| 
   
	| jayZ wrote: |  
	| We're definitely in the same boat with regards to the WCF side.  I also noticed the jms_bytes type, but the .Net guys seem to think that this is all happening under the covers.  This is definitely a scary middle area, where its not quite .Net, not quite broker.  From their perspective, the message is getting to the queue; so, they don't see an issue on their end. 
 Thanks for your help.
 JZ
 |  
 And sorry to say rightly so. You will also have to be able to handle non XML stuff like attachments and thus it forces the message to a bytes message...
  _________________
 MQ & Broker admin
 |  | 
		
		  | Back to top |  | 
		
		  |  | 
		
		  | jayZ | 
			  
				|  Posted: Fri Mar 16, 2012 5:48 am    Post subject: |   |  | 
		
		  | Acolyte
 
 
 Joined: 03 Jun 2008Posts: 71
 
 
 | 
			  
				| Thanks for all the great feedback guys.  I think I'm close to getting there, but not quite 100%.  The .Net guys exposed a WSDL, which I then pulled down into a message set; but, there is no JMS binding inside the WSDL.  Instead, I have: 
 <wsdl:port binding="tns:NetNamedPipeBinding_ITransmissionJobService" name="NetNamedPipeBinding_ITransmissionJobService">
 <soap12:address location="net.pipe://[host]/TransmissionJobService"/>
 <wsa10:EndpointReference>
 <wsa10:Address>net.pipe://[host]/TransmissionJobService</wsa10:Address>
 <Identity xmlns="http://schemas.xmlsoap.org/ws/2006/02/addressingidentity">
 <Spn>host/[host]</Spn>
 </Identity>
 </wsa10:EndpointReference>
 </wsdl:port>
 <wsdl:port binding="tns:BasicHttpBinding_ITransmissionJobService" name="BasicHttpBinding_ITransmissionJobService">
 <soap:address location="http://[host:port]/TransmissionJobService"/>
 </wsdl:port>
 
 
 When I create the WSDL using the wizard/provided xsd, messages just hang out in the queue.
 
 How should this work?  Should I be creating a WSDL or do they need to modify their service to include a jms binding?
 |  | 
		
		  | Back to top |  | 
		
		  |  | 
		
		  |  |