Author |
Message
|
KIT_INC |
Posted: Thu Oct 20, 2011 8:40 am Post subject: propagate the environment |
|
|
Knight
Joined: 25 Aug 2006 Posts: 589
|
The environment is WMB V6.1 CSD 8
In a compute node I have
SET OutputRoot = InputRoot;
SET OutputLocalEnvironment.TIME = 'T1';
propagate to TERMINAL 'out1' ENVIRONMENT OutputLocalEnvironment;
The compute node terminal 'out1' is wired to a MQOUTPUT node
However only see the Input message in the MQ output queue
Is "propagate to TERMINAL 'out1' ENVIRONMENT OutputLocalEnvironment; " suppose to propagate what is stated in ENVIRONMENT only ?
" |
|
Back to top |
|
 |
Vitor |
Posted: Thu Oct 20, 2011 8:51 am Post subject: Re: propagate the environment |
|
|
 Grand High Poobah
Joined: 11 Nov 2005 Posts: 26093 Location: Texas, USA
|
KIT_INC wrote: |
Is "propagate to TERMINAL 'out1' ENVIRONMENT OutputLocalEnvironment; " suppose to propagate what is stated in ENVIRONMENT only ? |
What does the documentation say about that clause?
KIT_INC wrote: |
However only see the Input message in the MQ output queue |
Where in the documentation does it say that the MQOuput node uses the LocalEnvironment tree as any part of the WMQ message body? _________________ Honesty is the best policy.
Insanity is the best defence. |
|
Back to top |
|
 |
lancelotlinc |
Posted: Thu Oct 20, 2011 9:09 am Post subject: |
|
|
 Jedi Knight
Joined: 22 Mar 2010 Posts: 4941 Location: Bloomington, IL USA
|
|
Back to top |
|
 |
Vitor |
Posted: Thu Oct 20, 2011 9:58 am Post subject: |
|
|
 Grand High Poobah
Joined: 11 Nov 2005 Posts: 26093 Location: Texas, USA
|
lancelotlinc wrote: |
You should use 'Environment' rather than 'LocalEnvironment' to maintain your timings. |
Would that help with the OP's problem? That the TIME variable (which appears to be a character constant rather than a timestamp) is not appearing in the output message?  _________________ Honesty is the best policy.
Insanity is the best defence. |
|
Back to top |
|
 |
KIT_INC |
Posted: Thu Oct 20, 2011 10:06 am Post subject: |
|
|
Knight
Joined: 25 Aug 2006 Posts: 589
|
Sorry Vitor, I did not actually let the flow run to completion. I use debug to stop the flow at the out1 terminal. I saw the output root which is a copy of the Input root as the result of the SET OutputRoot = InputRoot;. So I said the output message on the queue is only my input message.
I am not sure if my understand is correct, I think propagate should only propagate what is specified in MessageSources clauses. So I did not expect to see outputroot there. It almost looks like that the broker did not recognise the MessageSources clauses specified and go ahead to propagate the outputRoot as default. unfortunately there is no example in the Info center on how to code the statement.
I need to propage a special value instead of the outputroot at a point within the compute node. That's why I am testing this.
Hi lancelotlinc, the info center says
The values that you can specify in MessageSources clauses are:
ENVIRONMENT :
InputLocalEnvironment
OutputLocalEnvironment
I tried with
propagate to TERMINAL 'out1' ENVIRONMENT Environment.Variables
But this failed on deplyment. That why I follow the info center and do
ENVIRONMENT OutputLocalEnvironment
Since I just want to propagate a value, not the entire OutputLocalEnvironment , I tried
SET OutputLocalEnvironment.TIME = 'T1';
propagate to TERMINAL 'out1' ENVIRONMENT OutputLocalEnvironment.T1;
It failed to deploy also. |
|
Back to top |
|
 |
lancelotlinc |
Posted: Thu Oct 20, 2011 10:12 am Post subject: |
|
|
 Jedi Knight
Joined: 22 Mar 2010 Posts: 4941 Location: Bloomington, IL USA
|
Being Minnesotan Nice,
A guy could if a guy wanted to
COMPUTE node 1:
Code: |
CREATE LASTCHILD OF Environment.Variables.ProjectData DOMAIN('XMLNSC') NAME 'XMLNSC';
Set Environment.Variables.ProjectData.XMLNSC.<TaskId>.StartTime = CURRENT_GMTTIMESTAMP;
|
Compute node 2:
Code: |
Set Environment.Variables.ProjectData.XMLNSC.<TaskId>.EndTime = CURRENT_GMTTIMESTAMP;
Set Environment.Variables.ProjectData.XMLNSC.<TaskId>.ElapsedTime = ( CAST ( Environment.Variables.ProjectData.XMLNSC.<TaskId>.EndTime AS TIME ) - CAST ( Environment.Variables.ProjectData.XMLNSC.<TaskId>.StartTime AS TIME )) SECOND;
|
And to directly address the OP's request, call out to Java jar to get time values rather than use ESQL's time values. _________________ http://leanpub.com/IIB_Tips_and_Tricks
Save $20: Coupon Code: MQSERIES_READER |
|
Back to top |
|
 |
Vitor |
Posted: Thu Oct 20, 2011 10:42 am Post subject: |
|
|
 Grand High Poobah
Joined: 11 Nov 2005 Posts: 26093 Location: Texas, USA
|
KIT_INC wrote: |
It almost looks like that the broker did not recognise the MessageSources clauses specified and go ahead to propagate the outputRoot as default. unfortunately there is no example in the Info center on how to code the statement. |
No it probably doesn't recognise that clause because while there isn't an example, there is a syntax diagram & your code doesn't match it. It also doesn't propagate OutputRoot as default:
Quote: |
If there is no MessageSources clause, the node's Compute mode property is used to determine which messages are propagated |
I imagine you have the property set to message.
KIT_INC wrote: |
I need to propage a special value instead of the outputroot at a point within the compute node. That's why I am testing this. |
Which is all very well and this will do that once you get it working. It doesn't alter the fact that if you propagate the LocalEnvironment tree (or anything other than the Message tree) to an MQOutput node, that node will not use it as the body of a WMQ message. _________________ Honesty is the best policy.
Insanity is the best defence. |
|
Back to top |
|
 |
Vitor |
Posted: Thu Oct 20, 2011 10:46 am Post subject: |
|
|
 Grand High Poobah
Joined: 11 Nov 2005 Posts: 26093 Location: Texas, USA
|
lancelotlinc wrote: |
A guy could if a guy wanted to |
He could, but how would this help the OP? Again you seem to be answering the question you think is being asked.
lancelotlinc wrote: |
And to directly address the OP's request, call out to Java jar to get time values rather than use ESQL's time values. |
The OP's request is about propagating non-message trees; nothing to do with values (which are a character constant).
As to calling out to Java for time values, that's all very well if you really want the actual times (as the earlier poster today who wanted to timestamp trace). The ESQL time values are perfectly usable and deliberately return consistent (and therefore not always the exact time) values through the life of a node for good & sufficent reason.
Each has their place based on requirement. _________________ Honesty is the best policy.
Insanity is the best defence. |
|
Back to top |
|
 |
rekarm01 |
Posted: Thu Oct 20, 2011 3:11 pm Post subject: Re: propagate the environment |
|
|
Grand Master
Joined: 25 Jun 2008 Posts: 1415
|
KIT_INC wrote: |
I am not sure if my understand is correct, I think propagate should only propagate what is specified in MessageSources clauses. |
No. When a Compute node propagates a message, it always propagates four trees:- either InputRoot or OutputRoot
- either InputLocalEnvironment or OutputLocalEnvironment
- either InputExceptionList or OutputExceptionList
- Environment
For each of the Input or Output trees, if the MessageSources clause does not specify which one to propagate, then the 'Compute Mode' property does. |
|
Back to top |
|
 |
mqjeff |
Posted: Thu Oct 20, 2011 4:36 pm Post subject: Re: propagate the environment |
|
|
Grand Master
Joined: 25 Jun 2008 Posts: 17447
|
rekarm01 wrote: |
KIT_INC wrote: |
I am not sure if my understand is correct, I think propagate should only propagate what is specified in MessageSources clauses. |
No. When a Compute node propagates a message, it always propagates four trees:- either InputRoot or OutputRoot
- either InputLocalEnvironment or OutputLocalEnvironment
- either InputExceptionList or OutputExceptionList
- Environment
|
The distinction between an unpropagated tree and a tree that is NULL is left as an exercise. |
|
Back to top |
|
 |
KIT_INC |
Posted: Fri Oct 21, 2011 7:45 am Post subject: |
|
|
Knight
Joined: 25 Aug 2006 Posts: 589
|
Hi mqjeff, you said
No. When a Compute node propagates a message, it always propagates four trees:
either InputRoot or OutputRoot
either InputLocalEnvironment or OutputLocalEnvironment
either InputExceptionList or OutputExceptionList
Environment
This is what I have observed. Thanks for the confirmation.
But now I am confused on what's the use of the MessageSources clauses on a propagate. Can anyone help ? |
|
Back to top |
|
 |
fjb_saper |
Posted: Fri Oct 21, 2011 7:52 am Post subject: |
|
|
 Grand High Poobah
Joined: 18 Nov 2003 Posts: 20756 Location: LI,NY
|
KIT_INC wrote: |
Hi mqjeff, you said
No. When a Compute node propagates a message, it always propagates four trees:
either InputRoot or OutputRoot
either InputLocalEnvironment or OutputLocalEnvironment
either InputExceptionList or OutputExceptionList
Environment
This is what I have observed. Thanks for the confirmation.
But now I am confused on what's the use of the MessageSources clauses on a propagate. Can anyone help ? |
Possibly to override the node's default settings?
I don't think it's asking for a location of said tree part.
So what you were trying to do will not work.
The whole specified tree is getting propagated  _________________ MQ & Broker admin |
|
Back to top |
|
 |
rekarm01 |
Posted: Fri Oct 21, 2011 8:08 am Post subject: Re: propagate the environment |
|
|
Grand Master
Joined: 25 Jun 2008 Posts: 1415
|
fjb_saper wrote: |
Possibly to override the node's default settings? |
The purpose of the MessageSources clause is to override the node's default settings, as specified by its Compute Mode property:
rekarm01 wrote: |
For each of the Input or Output trees, if the MessageSources clause does not specify which one to propagate, then the 'Compute Mode' property does. |
|
|
Back to top |
|
 |
mqjeff |
Posted: Fri Oct 21, 2011 8:45 am Post subject: |
|
|
Grand Master
Joined: 25 Jun 2008 Posts: 17447
|
KIT_INC wrote: |
Hi mqjeff, you said |
No, that wasn't me. |
|
Back to top |
|
 |
KIT_INC |
Posted: Fri Oct 21, 2011 11:06 am Post subject: |
|
|
Knight
Joined: 25 Aug 2006 Posts: 589
|
Thanks a lot for all the help. |
|
Back to top |
|
 |
|