Author |
Message
|
ruchir |
Posted: Tue Oct 18, 2011 4:06 am Post subject: Dynamic assigning of Binding operation of Soap Request Node |
|
|
Guest
|
Hi All,
I having a scenario in which i have two flows :
First Flow : main flow is as
Soap Input NOde --> Extract Node --> Compute Node --> Soap Rquest Node --> Extract Node --> Compute Node --> Soap Reply
Second FLow : test flow i created and in that flow i m using as
Soap Input NOde --> Extract Node --> Compute Node --> Soap Reply Node
I m calling the test flow from main flow. Suppose i have 3 different operations in Soap Request node operation binding property , lets say as Operation 1, Operation 2 n Operation 3.
I m using soap ui for running the flow.
If i put soap message according to operation 1 and also setting the Soap Request node operation binding property as Operation 1. Then my flow is working fine. It is going to test flow n coming back normally.
But if i m putting soap message according to operation 1 and setting the Soap Request node operation binding property as Operation 2. Then my flow is not forming the message after compute node of test flow.
I have set
Code: |
SET OutputLocalEnvironment.Destination.SOAP.Request.WSA.Action = 'Operation 2'; |
in the compute node of main flow and
Code: |
SET OutputLocalEnvironment.Destination.SOAP.Reply.WSA.Action = 'Operation 2'; |
in the compute node of test flow.
I have also set the WS-Addressing in the input and request node.
Please help me where i m going wrong .  |
|
Back to top |
|
 |
mqjeff |
Posted: Tue Oct 18, 2011 4:15 am Post subject: |
|
|
Grand Master
Joined: 25 Jun 2008 Posts: 17447
|
Maybe I misunderstand you.
Are you asking why it fails when you send a message that requests operation 1, but specifies operation 2?
That is, are you asking why it fails when you send a bad message?
The operation is necessary to match the message.
SOAP defines a strict interface. The consumer MUST match the provider. |
|
Back to top |
|
 |
ruchir |
Posted: Tue Oct 18, 2011 4:24 am Post subject: |
|
|
Guest
|
Thanks for the reply.
I m asking if i am dynamically changing the binding operation of soap request node it is only working from main flow ro test flow. But when i m sending it from test flow to main flow it is not changing the binding operation but only taking the operation that i defined in soap request node, it is not changing the operation to, as i defined in compute node of test flow using the code :
Code: |
SET OutputLocalEnvironment.Destination.SOAP.Reply.WSA.Action = 'Operation 2'; |
Please suggest me how to achieve it . |
|
Back to top |
|
 |
lancelotlinc |
Posted: Tue Oct 18, 2011 4:27 am Post subject: |
|
|
 Jedi Knight
Joined: 22 Mar 2010 Posts: 4941 Location: Bloomington, IL USA
|
ruchir wrote: |
Thanks for the reply.
I m asking if i am dynamically changing the binding operation of soap request node it is only working from main flow ro test flow. But when i m sending it from test flow to main flow it is not changing the binding operation but only taking the operation that i defined in soap request node, it is not changing the operation to, as i defined in compute node of test flow using the code :
Code: |
SET OutputLocalEnvironment.Destination.SOAP.Reply.WSA.Action = 'Operation 2'; |
Please suggest me how to achieve it . |
Here is how to accomplish your intent: you can create multiple message flows, each flow starts with a SOAPInput node, each SOAPInput node has a different Action assigned to it. Deploy all message flows to the same execution group, and that port assigned to that execution group will automatically and dynamically choose the right Operation to go with the right Message Flow. _________________ http://leanpub.com/IIB_Tips_and_Tricks
Save $20: Coupon Code: MQSERIES_READER |
|
Back to top |
|
 |
mqjeff |
Posted: Tue Oct 18, 2011 4:32 am Post subject: |
|
|
Grand Master
Joined: 25 Jun 2008 Posts: 17447
|
lancelotlinc wrote: |
Here is how to accomplish your intent: you can create multiple message flows, each flow starts with a SOAPInput node, each SOAPInput node has a different Action assigned to it. Deploy all message flows to the same execution group, and that port assigned to that execution group will automatically and dynamically choose the right Operation to go with the right Message Flow. |
You did not read the message that you replied to at all.
Ruchir - you have probably failed to instruct the compute node to pass the LocalEnvironment. |
|
Back to top |
|
 |
ruchir |
Posted: Tue Oct 18, 2011 5:49 am Post subject: |
|
|
Guest
|
mqjeff wrote: |
Ruchir - you have probably failed to instruct the compute node to pass the LocalEnvironment. |
Thanks for your reply. I tried the way i wrote in the below message.
Please suggest me how to instruct compute node to pass the LocalEnvironment.
I think setting
Code: |
SET OutputLocalEnvironment.Destination.SOAP.Reply.WSA.Action = 'Operation 2'; |
will do the job. I tried setting compute mode property to Localenvironemt and message too. |
|
Back to top |
|
 |
mqjeff |
Posted: Tue Oct 18, 2011 6:17 am Post subject: |
|
|
Grand Master
Joined: 25 Jun 2008 Posts: 17447
|
|
Back to top |
|
 |
mgk |
Posted: Tue Oct 18, 2011 8:31 am Post subject: |
|
|
 Padawan
Joined: 31 Jul 2003 Posts: 1642
|
To change the Operation from the WSDL on the SOAPRequest node you use the override:
Code: |
SET OutputLocalEnvironment.Destination.SOAP.Request.Operation = 'myOperation'; |
which is documented in the infocenter...
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 |
|
 |
ruchir |
Posted: Tue Oct 18, 2011 10:40 am Post subject: |
|
|
Guest
|
mgk wrote: |
To change the Operation from the WSDL on the SOAPRequest node you use the override:
Code: |
SET OutputLocalEnvironment.Destination.SOAP.Request.Operation = 'myOperation'; |
|
I tried that too, but it is also not doing the job. Hoping to have some other way around to do this.
mqjeff wrote: |
Take a user trace |
user trace for which part. The part where i m getting exception or for the main and test flow nodes reuqest and reply node respectively. |
|
Back to top |
|
 |
ruchir |
Posted: Thu Oct 20, 2011 3:01 am Post subject: |
|
|
Guest
|
Hi All,
I m still stuck there. Please suggest how to solve this issue.  |
|
Back to top |
|
 |
mgk |
Posted: Thu Oct 20, 2011 3:14 am Post subject: |
|
|
 Padawan
Joined: 31 Jul 2003 Posts: 1642
|
Quote: |
I tried that too, but it is also not doing the job |
Then I suggest you make sure the "Compute Mode" setting on the Compute Node contains at least "LocalEnvironment" or "All", as they way I suggested above is the correct way to change the Operation dynamically for the SOAPRequest node.
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 |
|
 |
simon.starkie |
Posted: Fri Jan 27, 2012 4:09 pm Post subject: |
|
|
Disciple
Joined: 24 Mar 2002 Posts: 180
|
...
Last edited by simon.starkie on Sat Jan 28, 2012 11:41 am; edited 2 times in total |
|
Back to top |
|
 |
smdavies99 |
Posted: Fri Jan 27, 2012 10:35 pm Post subject: |
|
|
 Jedi Council
Joined: 10 Feb 2003 Posts: 6076 Location: Somewhere over the Rainbow this side of Never-never land.
|
editing your post and using CODE tags would make your post a lot easier to read
I do hope you are moving off of V6.0 It went out of support last year. You should be looking at V7.0.0.3 as a minimum. I'd fully expect that V6.1 will go out of support by the end of the year. _________________ WMQ User since 1999
MQSI/WBI/WMB/'Thingy' User since 2002
Linux user since 1995
Every time you reinvent the wheel the more square it gets (anon). If in doubt think and investigate before you ask silly questions. |
|
Back to top |
|
 |
simon.starkie |
Posted: Fri Jan 27, 2012 10:51 pm Post subject: |
|
|
Disciple
Joined: 24 Mar 2002 Posts: 180
|
...
Last edited by simon.starkie on Sat Jan 28, 2012 11:41 am; edited 1 time in total |
|
Back to top |
|
 |
smdavies99 |
Posted: Sat Jan 28, 2012 12:03 am Post subject: |
|
|
 Jedi Council
Joined: 10 Feb 2003 Posts: 6076 Location: Somewhere over the Rainbow this side of Never-never land.
|
simon.starkie wrote: |
But without a C-runtime, the custom HL7 V2 parser that is used extensively here will not work. |
There is a C++ runtime in all versions of Broker. Broker wouldn't be able to work as fast as it does without the highly optimised C++ code used in many of the core nodes.
Can't your 'C' code be compiled under C++?
Perhaps it might be time to move to a more standard method of parsing HL7 messages? I know of a number of sites where they use HL7 and don't use a custom parser. I guess from the time that you have been registered here that you come from the V2.0.1/2.0.2 era. Back in those days, it was not uncommon to write your own parser. It was even part of the IBM training (optional though).
These days? I can't recall a custom parser question here for an awfully long time. _________________ WMQ User since 1999
MQSI/WBI/WMB/'Thingy' User since 2002
Linux user since 1995
Every time you reinvent the wheel the more square it gets (anon). If in doubt think and investigate before you ask silly questions. |
|
Back to top |
|
 |
|