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 » Empty Envirnment tree in TimeOut terminal of HTTP input node

Post new topic  Reply to topic
 Empty Envirnment tree in TimeOut terminal of HTTP input node « View previous topic :: View next topic » 
Author Message
gappodi
PostPosted: Fri Sep 05, 2014 2:59 am    Post subject: Empty Envirnment tree in TimeOut terminal of HTTP input node Reply with quote

Voyager

Joined: 05 Sep 2014
Posts: 76

I am having a serious problem while running a message flow that includes
(1) An HTTP input node
(2) followed by a few Java, Compute and filter nodes
(3) followed by an HTTP header and HTTP request nodes
(4) finally an HTTP reply node.

In my HTTP input node, I have the timeout terminal that is connected to few other nodes. Here again I make use of few Java, Compute and HTTP reply nodes to handle the request timeout condition.
As mentioned in no. (2), I set a lot of Environment variables to be used further downstream the flow.
When the timeout condition is met, the flow gets routed to the TimeOut terminal of the HTTP input node as mentioned in no. (1). However, to my surprise, I find that the Environment tree is completely empty and does not have any variable that I set earlier. I need those variables to use in the TimeOut terminal flow.

I tried writing a java compute node just before the flow enters into the timeout terminal. But Still I do not find it there.

In my Java compute node, following is what I wrote and expected it to be available in the message tree.

outMessage.getRootElement().getLastChild().createElementAsFirstChild(MbElement.TYPE_NAME_VALUE, "State3", "Failed");

What wrong am I doing here ? How can I do it via writing an ESQL compute code ?

Can please anyone help me in resolving this. Thanks in advance.
Back to top
View user's profile Send private message
fjb_saper
PostPosted: Fri Sep 05, 2014 4:35 am    Post subject: Reply with quote

Grand High Poobah

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

If the time out terminal is triggered the only message available to you is the input message to the node that triggered the timeout...
_________________
MQ & Broker admin
Back to top
View user's profile Send private message Send e-mail
gappodi
PostPosted: Fri Sep 05, 2014 5:24 am    Post subject: Reply with quote

Voyager

Joined: 05 Sep 2014
Posts: 76

Yes. So is there no way I can make the environment variables set earlier available to the HTTP input node ?
Back to top
View user's profile Send private message
mqjeff
PostPosted: Fri Sep 05, 2014 5:33 am    Post subject: Reply with quote

Grand Master

Joined: 25 Jun 2008
Posts: 17447

gappodi wrote:
Yes. So is there no way I can make the environment variables set earlier available to the HTTP input node ?


Not to the timeout terminal, no. The timeout terminal will fire regardless of what happens with the rest of your flow, and it will do it asynchronously.
Back to top
View user's profile Send private message
gappodi
PostPosted: Fri Sep 05, 2014 8:35 am    Post subject: Reply with quote

Voyager

Joined: 05 Sep 2014
Posts: 76

Alright. I noticed while debugging in eclipse that when the flow starts AND also when it enters into the TimeOut terminal, there is an HTTPInputHeader element available to the Message tree. So is there a way I could set the desired variable here and could use it later when the flow enters to the TimeOut terminal ?

I might be sounding senseless here but all I am trying is to achieve what I want to and get through it.

Thanks.
Back to top
View user's profile Send private message
kimbert
PostPosted: Mon Sep 08, 2014 1:07 am    Post subject: Reply with quote

Jedi Council

Joined: 29 Jul 2003
Posts: 5542
Location: Southampton

The timeout thread in the HTTPInput node is a separate thread from the main flow. It's rather like a separate message flow that runs in parallel with the main flow. That's why the Environment tree is not available at the timeout terminal.

Modifying the HTTPInputHeader is not the way to go.
You may be able to use a shared row variable in ESQL. That would apply to all instances of the flow, so you would need to use the replyId as a corrrelator to retrieve the information for the current flow instance.
You would also need some way to purge old values from the shared variable - maybe with a timeout flow that purges all values older than X seconds.
_________________
Before you criticize someone, walk a mile in their shoes. That way you're a mile away, and you have their shoes too.
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 » Empty Envirnment tree in TimeOut terminal of HTTP input node
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.