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 » Message tree manipulation

Post new topic  Reply to topic
 Message tree manipulation « View previous topic :: View next topic » 
Author Message
sjaganna
PostPosted: Sat Jun 06, 2009 2:24 pm    Post subject: Message tree manipulation Reply with quote

Novice

Joined: 20 Feb 2009
Posts: 16

I see that the broker message tree has LocalEnvironment and GlobalEnvironment in addition to the payload and the headers. What is the difference between between the two environment variables in terms of performance. I understand the usage difference ie GlobalEnvironment to be used to store data that is used throughout the message flow life cycle and LocalEnvironment for temporary data.

But many IBM guys have been telling that using these environment variables is very expensive in terms of performance and Global Environment has more performance impact. I am trying to understand what are the implications of using them?

Thanks
Srikanth
Back to top
View user's profile Send private message
smdavies99
PostPosted: Sat Jun 06, 2009 11:23 pm    Post subject: Reply with quote

Jedi Council

Joined: 10 Feb 2003
Posts: 6076
Location: Somewhere over the Rainbow this side of Never-never land.

The 'Environment' Tree is a very efficient way of holding things between nodes as there is no copying of folders as there is with the inputRoot/OutputRoot. This might be different for very large messages but as a general case, I think
this is the case.

I tend to use the environment folder for holding things like a copy of the unparsed original message (for error handling) and other variables. AFAIK, this is the MOST efficient way of holding this data.

I use the LocalEnvironment as temporary storage where following nodes need the data to be in this folder.(eg a destinationlist for an MQOutputNode.

From my experience I think the IBMers who are telling you that the Environment is an expensive way are incorrect and perhaps they should back up their assertions with facts so the the Hursley people who monitor this forum can comment. I'm sure that this also would be of great interest to many experienced Broker perople in this forum.
_________________
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
View user's profile Send private message
rekarm01
PostPosted: Tue Jun 09, 2009 9:39 pm    Post subject: Re: Message tree manipulation Reply with quote

Grand Master

Joined: 25 Jun 2008
Posts: 1415

sjaganna wrote:
I see that the broker message tree has LocalEnvironment and GlobalEnvironment in addition to the payload and the headers.

For each input message, a message flow creates a logical tree structure with four separate trees:
  • Root (or 'Message')
  • Environment (or 'GlobalEnvironment')
  • LocalEnvironment
  • ExceptionList
Each tree consists of one or more elements.

sjaganna wrote:
What is the difference between between the two environment variables in terms of performance.

For each input message, a message flow creates exactly one Environment tree, but may create many LocalEnvironment trees; every time a compute node propagates an output tree instead of an input tree, it has to first build the output tree.

In most cases, using Environment instead of LocalEnvironment generates less elements, but not enough to really matter.

sjaganna wrote:
I understand the usage difference ie GlobalEnvironment to be used to store data that is used throughout the message flow life cycle and LocalEnvironment for temporary data.

No. Each input message has its own logical tree structure; trees do not survive from one input message to the next.

When a message flows backwards through the message flow, LocalEnvironment reverts to its previous state, while Environment does not. Message flows should store data in whichever tree exhibits the desired behavior.

sjaganna wrote:
But many IBM guys have been telling that using these environment variables is very expensive ...

Compared to ... what? How else would a message flow pass data from node to node, (including the message itself, by the way)?

Perhaps the many IBM guys were misquoted.
Back to top
View user's profile Send private message
Vitor
PostPosted: Tue Jun 09, 2009 11:55 pm    Post subject: Re: Message tree manipulation Reply with quote

Grand High Poobah

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

sjaganna wrote:
What is the difference between between the two environment variables in terms of performance.


See also this thread (indirectly relevant and possibly useful)

http://mqseries.net/phpBB2/viewtopic.php?t=49395
_________________
Honesty is the best policy.
Insanity is the best defence.
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 » Message tree manipulation
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.