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 » Environment tree lost between pair of SoapAsynchronous nodes

Post new topic  Reply to topic
 Environment tree lost between pair of SoapAsynchronous nodes « View previous topic :: View next topic » 
Author Message
sunny_30
PostPosted: Wed Mar 11, 2015 1:52 pm    Post subject: Environment tree lost between pair of SoapAsynchronous nodes Reply with quote

Master

Joined: 03 Oct 2005
Posts: 258

Have a pair of SOAP Asynchronous Request and Response configured in the same flow. By the time response is processed out of Response node the Environment, Local Environment trees are lost. Its IBv9002. Is this an expected behavior or is there some setting required so as to preserve the data?

In a single flow I have it this way:
HttpInput -> soapAsynchRequest
soapAsynchResponse-> HttpReply

The correlation between soap nodes seem to be happening using: MessageCorrelId field sent in WSA. Same is copied into a new LocalEnv tree/field after the response node.
However the ReplyIdentifier that seems to be necessary for HttpReply node is lost as the whole local-env tree is gone. Getting a context not found error. The LocalEnv tree/fields that were present prior to soapAsynchreq node are lost after the response node processing kicks in.

How do I solve this issue? Do I need to save the context to queue & MQget ? Can I save into a shared variable as a key-value pair of MessageCorrelId,ReplyIdentifier ? Thanks for your help
Back to top
View user's profile Send private message
Esa
PostPosted: Wed Mar 11, 2015 10:32 pm    Post subject: Reply with quote

Grand Master

Joined: 22 May 2008
Posts: 1387
Location: Finland

SOAP asych nodes do not run on the same thread, that is why everything is lost. Only the connection handle is passed to the response thread (when using http).

If you need to preserve something, you need to explicitly put it in OutputLocalEnvironment.Destination.SOAP.Request.UserContext. Then you can retrieve it from LocalEnvironment.SOAP.Response.UserContext.

This is explained in the Knowledge Center.
Back to top
View user's profile Send private message
sunny_30
PostPosted: Thu Mar 12, 2015 8:07 am    Post subject: Reply with quote

Master

Joined: 03 Oct 2005
Posts: 258

Thanks a lot !
I populated the SOAP.Response.UserContext but it wasnt returned back. May be thats coz the WebServer doesnt supprt WS-A.
on soap AsynchReq node i checked "use http asynch req-response" property

I copied the httpInput created Destination.HTTP.ReplyIdentifier into localenv.Destination.SOAP.Reply.ReplyIdentifier prior to req node and it came back. Thanks again
Back to top
View user's profile Send private message
Esa
PostPosted: Thu Mar 12, 2015 8:57 am    Post subject: Reply with quote

Grand Master

Joined: 22 May 2008
Posts: 1387
Location: Finland

sunny_30 wrote:
Thanks a lot !
I populated the SOAP.Response.UserContext but it wasnt returned back. May be thats coz the WebServer doesnt supprt WS-A.
on soap AsynchReq node i checked "use http asynch req-response" property

You should populate ...Request.UserContext and get it back in ...Response.UserContext.
Back to top
View user's profile Send private message
sunny_30
PostPosted: Thu Mar 12, 2015 10:08 am    Post subject: Reply with quote

Master

Joined: 03 Oct 2005
Posts: 258

Ahh. I guess I had a typo. That worked. Thanks !!
Back to top
View user's profile Send private message
sunny_30
PostPosted: Thu Mar 12, 2015 4:10 pm    Post subject: Reply with quote

Master

Joined: 03 Oct 2005
Posts: 258

Hi
Is it possible to pass a tree with multiple elements in UserContext.
I can think of concatenating into a single string using a delimiter
Back to top
View user's profile Send private message
fjb_saper
PostPosted: Thu Mar 12, 2015 6:31 pm    Post subject: Reply with quote

Grand High Poobah

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

sunny_30 wrote:
Hi
Is it possible to pass a tree with multiple elements in UserContext.
I can think of concatenating into a single string using a delimiter

Why? Just serialize the tree before passing it. On retrieval you will have to parse the element you retrieve. Have fun
_________________
MQ & Broker admin
Back to top
View user's profile Send private message Send e-mail
sunny_30
PostPosted: Fri Mar 13, 2015 8:09 am    Post subject: Reply with quote

Master

Joined: 03 Oct 2005
Posts: 258

Good idea. Thank you !
Looks UserContext has to be BLOB only so I placed the bitstream there
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 » Environment tree lost between pair of SoapAsynchronous nodes
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.