ASG
IBM
Zystems
Cressida
Icon
Netflexity
 
  MQSeries.net
Search  Search       Tech Exchange      Education      Certifications      Library      Info Center      SupportPacs      LinkedIn  Search  Search                                                                   FAQ  FAQ   Usergroups  Usergroups
 
Register  ::  Log in Log in to check your private messages
 
RSS Feed - WebSphere MQ Support RSS Feed - Message Broker Support

MQSeries.net Forum Index » WebSphere Message Broker (ACE) Support » Consuming Messages from WCF Client in WMB7

Post new topic  Reply to topic Goto page 1, 2  Next
 Consuming Messages from WCF Client in WMB7 « View previous topic :: View next topic » 
Author Message
jayZ
PostPosted: Tue Mar 13, 2012 7:26 am    Post subject: Consuming Messages from WCF Client in WMB7 Reply with quote

Acolyte

Joined: 03 Jun 2008
Posts: 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
View user's profile Send private message
Vitor
PostPosted: Tue Mar 13, 2012 7:33 am    Post subject: Re: Consuming Messages from WCF Client in WMB7 Reply with quote

Grand High Poobah

Joined: 11 Nov 2005
Posts: 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
View user's profile Send private message
jayZ
PostPosted: Tue Mar 13, 2012 7:40 am    Post subject: Reply with quote

Acolyte

Joined: 03 Jun 2008
Posts: 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
View user's profile Send private message
Vitor
PostPosted: Tue Mar 13, 2012 7:49 am    Post subject: Reply with quote

Grand High Poobah

Joined: 11 Nov 2005
Posts: 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
View user's profile Send private message
jayZ
PostPosted: Tue Mar 13, 2012 7:53 am    Post subject: Reply with quote

Acolyte

Joined: 03 Jun 2008
Posts: 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
View user's profile Send private message
Vitor
PostPosted: Tue Mar 13, 2012 8:16 am    Post subject: Reply with quote

Grand High Poobah

Joined: 11 Nov 2005
Posts: 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
View user's profile Send private message
mgk
PostPosted: Tue Mar 13, 2012 8:28 am    Post subject: Reply with quote

Padawan

Joined: 31 Jul 2003
Posts: 1642

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
View user's profile Send private message
Vitor
PostPosted: Tue Mar 13, 2012 8:47 am    Post subject: Reply with quote

Grand High Poobah

Joined: 11 Nov 2005
Posts: 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
View user's profile Send private message
lancelotlinc
PostPosted: Tue Mar 13, 2012 8:50 am    Post subject: Reply with quote

Jedi Knight

Joined: 22 Mar 2010
Posts: 4941
Location: Bloomington, IL USA

Thanks also!! Lets go for Fish & Chips and a pint or two. I'm buying....
_________________
http://leanpub.com/IIB_Tips_and_Tricks
Save $20: Coupon Code: MQSERIES_READER
Back to top
View user's profile Send private message Send e-mail
Vitor
PostPosted: Tue Mar 13, 2012 8:54 am    Post subject: Reply with quote

Grand High Poobah

Joined: 11 Nov 2005
Posts: 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
View user's profile Send private message
mgk
PostPosted: Tue Mar 13, 2012 8:56 am    Post subject: Reply with quote

Padawan

Joined: 31 Jul 2003
Posts: 1642

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
View user's profile Send private message
lancelotlinc
PostPosted: Tue Mar 13, 2012 9:01 am    Post subject: Reply with quote

Jedi Knight

Joined: 22 Mar 2010
Posts: 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
View user's profile Send private message Send e-mail
Vitor
PostPosted: Tue Mar 13, 2012 9:04 am    Post subject: Reply with quote

Grand High Poobah

Joined: 11 Nov 2005
Posts: 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
View user's profile Send private message
fjb_saper
PostPosted: Tue Mar 13, 2012 9:00 pm    Post subject: Reply with quote

Grand High Poobah

Joined: 18 Nov 2003
Posts: 20756
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
View user's profile Send private message Send e-mail
jayZ
PostPosted: Fri Mar 16, 2012 5:48 am    Post subject: Reply with quote

Acolyte

Joined: 03 Jun 2008
Posts: 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
View user's profile Send private message
Display posts from previous:   
Post new topic  Reply to topic Goto page 1, 2  Next Page 1 of 2

MQSeries.net Forum Index » WebSphere Message Broker (ACE) Support » Consuming Messages from WCF Client in WMB7
Jump to:  



You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
Protected by Anti-Spam ACP
 
 


Theme by Dustin Baccetti
Powered by phpBB © 2001, 2002 phpBB Group

Copyright © MQSeries.net. All rights reserved.