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 » Why is SOAPAction being populated differently ?

Post new topic  Reply to topic
 Why is SOAPAction being populated differently ? « View previous topic :: View next topic » 
Author Message
Hugh_Everett
PostPosted: Fri Nov 28, 2014 2:28 pm    Post subject: Why is SOAPAction being populated differently ? Reply with quote

Novice

Joined: 08 Jul 2001
Posts: 19
Location: Manchester, UK

IIB V9.0.0.2.

When my message flow calls an external WebService using a SOAPRequest node (thus synchronous), all works fine.

I then replace the SOAPRequest node with a SOAPAsynchRequest node. The properties of the SOAPAsynchRequest duplicate the settings of the SOAPRequest node wherever possible. This includes the "Operation mode", which in both cases is set to "Invoke a specific web service defined by a WSDL interface". (That's also known as "WSDL mode", I believe.)

I also ensure that on the SOAPAsyncRequest node I tick the box "Use HTTP asynchronous request-response". This follows advice in the Knowledge Center here: http://www-01.ibm.com/support/knowledgecenter/SSMKHH_9.0.0/com.ibm.etools.mft.doc/bc19322_.htm .

But when using the SOAPAsynchRequest node, that does not work. The target WebService provider throws an error complaining that the SOAPAction is missing.

Tests using a network sniffer show me that, indeed:
- When I use the SOAPRequest node, the SOAPAction field inside the HTTPRequestHeader that's sent to the target WebService contains the fully-qualified name of the SOAP Service + Operation that the msg flow is trying to call.
- When I use the SOAPAsyncRequest node, the SOAPAction field inside the HTTPRequestHeader contains null.

So the behaviour I've sniffed confirms the error message being thrown by the target WebService.

The Knowledge Center here: http://www-01.ibm.com/support/knowledgecenter/SSMKHH_9.0.0/com.ibm.etools.mft.doc/bc19040_.htm says that when Gateway mode is being used, SOAPAction does indeed contain null. I infer that if WSDL mode is used, SOAPAction should contain something.

But in my example, in both cases, I am using WSDL mode, and yet the two cases differ: SOAPRequest sets SOAPAction to a value; SOAPAsyncRequest sets SOAPAction to null.

My questions are:
1. Is it expected IIB behaviour, that sending a WebService call over HTTP using the SOAPAsynchRequest node in WSDL mode will result in a null SOAPAction field in the HTTPRequestHeader ?
2. If that is so, why ?
3. What is a recommended way of "fixing" this ? Currently my thought is: bung some ESQL or a mapping node before the SOAPAsynchRequest node, to explicitly SET OutputRoot.HTTPRequestHeader.SOAPAction = '<fully-qualified SOAP Service + Operation>', as discussed in http://www-01.ibm.com/support/knowledgecenter/SSMKHH_9.0.0/com.ibm.etools.mft.doc/bc19040_.htm .

Any thoughts/comments ?
_________________
Hugh Everett
Manchester, UK
Back to top
View user's profile Send private message
mgk
PostPosted: Fri Nov 28, 2014 3:09 pm    Post subject: Reply with quote

Padawan

Joined: 31 Jul 2003
Posts: 1638

Hello Hugh.

If you are using a WSDL I would expect this to populate the SOAPAction with the same value in both cases (Async and Sync) so this sounds like a defect. Can you open a PMR for this?


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
fjb_saper
PostPosted: Fri Nov 28, 2014 10:07 pm    Post subject: Reply with quote

Grand High Poobah

Joined: 18 Nov 2003
Posts: 20697
Location: LI,NY

hugh_everett wrote:
I also ensure that on the SOAPAsyncRequest node I tick the box "Use HTTP asynchronous request-response". This follows advice in the Knowledge Center here: http://www-01.ibm.com/support/knowledgecenter/SSMKHH_9.0.0/com.ibm.etools.mft.doc/bc19322_.htm .

But when using the SOAPAsynchRequest node, that does not work. The target WebService provider throws an error complaining that the SOAPAction is missing.

Did you try using ws-addressing? Do you see the same behavior when using ws-addressing? (note if the target is a SOAPInput node make sure ws-addressing capability is checked on the SOAPInput node.)
_________________
MQ & Broker admin
Back to top
View user's profile Send private message Send e-mail
Hugh_Everett
PostPosted: Sun Nov 30, 2014 12:35 am    Post subject: Reply with quote

Novice

Joined: 08 Jul 2001
Posts: 19
Location: Manchester, UK

In answer to fjb_saper:

My target WebService is not on IIB, and I have no control over it. The requirement is that whether or not IIB calls it in synch or asynch mode, the target WebService should see no difference. So I believe that using WS-Addressing is not appropriate.

When I untick the box "Use HTTP asynchronous request-response", that sets "Gateway mode". The result of this is that the SOAPAction is still set to NULL.
_________________
Hugh Everett
Manchester, UK
Back to top
View user's profile Send private message
fjb_saper
PostPosted: Sun Nov 30, 2014 1:06 am    Post subject: Reply with quote

Grand High Poobah

Joined: 18 Nov 2003
Posts: 20697
Location: LI,NY

clearly a defect as mgk said.
However did you also try to set the SOAPAction in the local environment override?
_________________
MQ & Broker admin
Back to top
View user's profile Send private message Send e-mail
Hugh_Everett
PostPosted: Sun Nov 30, 2014 11:05 am    Post subject: Reply with quote

Novice

Joined: 08 Jul 2001
Posts: 19
Location: Manchester, UK

I have found that when I SET OutputRoot.HTTPRequestHeader.SOAPAction = 'XYZ', then the SOAPAsynchRequest node honours that when it sends the request, and SOAPAction is properly sent. Haven't yet checked that the target WebService is happy with that, but it should be OK. (NB This isn't a LocalEnvironment thing.)

So the workaround works, but I think - unless someone in IIB Design/Devt disagrees - that there is a bug. Because I would expect it to be possible to configure SOAPAsynchRequest and SOAPAsnycResponse together to mimic the functions of SOAPRequest - without the need to manually SET OutputRoot.HTTPRequestHeader.SOAPAction.
_________________
Hugh Everett
Manchester, UK
Back to top
View user's profile Send private message
Vitor
PostPosted: Mon Dec 01, 2014 5:54 am    Post subject: Reply with quote

Grand High Poobah

Joined: 11 Nov 2005
Posts: 26093
Location: Texas, USA

Hugh_Everett wrote:
I think - unless someone in IIB Design/Devt disagrees - that there is a bug.


I think someone in that area has already agreed with you, and asked for a PMR; observe where @mgk gives as his location......

(I can never remember the exact title @mgk has - it should be "Awesome Integration Person" but is something more IBM. I know @kmbert is "God Of Parsing" ...)

It would I think be valuable to add a link to this thread in the PMR you should be raising if you've not already done so; save you a lot of explaination of your problem which you've already done here in a manner that deserves congratulation.

Please keep us posted on the outcome of your PMR.
_________________
Honesty is the best policy.
Insanity is the best defence.
Back to top
View user's profile Send private message
Hugh_Everett
PostPosted: Wed Dec 10, 2014 4:27 am    Post subject: Reply with quote

Novice

Joined: 08 Jul 2001
Posts: 19
Location: Manchester, UK

Progress info - at the time/date of this post, my PMR (only a Low Priority !) is being processed.
_________________
Hugh Everett
Manchester, UK
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic  Reply to topic Page 1 of 1

MQSeries.net Forum Index » WebSphere Message Broker (ACE) Support » Why is SOAPAction being populated differently ?
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.