Author |
Message
|
Tanesh |
Posted: Mon Jun 29, 2009 2:24 am Post subject: Finalize clause in PROPAGATE Statement |
|
|
Newbie
Joined: 29 Jun 2009 Posts: 8
|
Hi All,
I got below information from IBM Information Center for Finalize clause which can be used in PROPAGATE statement.
FINALIZE clause
Finalization is a process that fixes header chains and makes the Properties folder match the headers. If present, the FINALIZE clause allows finalization to be controlled.
This clause is only applicable to the Compute node (it has no effect in a Database node).
The Compute node allows its output message to be changed by other nodes (by the other nodes changing their input message). However, a message created by a Compute node cannot be changed by another node after:
It has been finalized
It has reached any output or other node which generates a bit-stream.
I did not get exactly how it affects the output message and what is exactly meant by fixing the header chains and finalization process ?
Can you please help me to understand this stuff ? |
|
Back to top |
|
 |
rekarm01 |
Posted: Sun Jul 05, 2009 3:13 pm Post subject: Re: Finalize clause in PROPAGATE Statement |
|
|
Grand Master
Joined: 25 Jun 2008 Posts: 1415
|
The main point is that once a node finalizes a message tree, the message flow can no longer modify the message tree.
A secondary point is that during finalization, the contents of the Root.Properties sub-tree are synchronized with related fields in the other Root header sub-trees.
The default behavior is to finalize OutputRoot when propagating it. So, a modifiable OutputRoot tree in one node becomes an unmodifiable InputRoot tree in the next node. The next node is still free, though, to make a copy (e.g. "SET OutputRoot = InputRoot;"), and modify the copy.
The FINALIZE clause allows a node to propagate its OutputRoot without finalizing it. However, the circumstances where this might be preferable are somewhat unusual. Don't use the FINALIZE clause without good reason, nor without understanding how it affects the message flow behavior, particularly during partial roll-backs. |
|
Back to top |
|
 |
Tanesh |
Posted: Mon Jul 06, 2009 12:21 am Post subject: |
|
|
Newbie
Joined: 29 Jun 2009 Posts: 8
|
Thank you for your reply.
To check the theory, I tried to modify InputRoot in Compute node in two ways.
1. I put statement something like -
SET InputRoot.XMLNSC.Test.Item = NULL ;
I got compilation error which was expected.
2. Then I tried like this -
DECLARE inRef REFERENCE TO InputRoot.XMLNSC;
SET inRef.Test.Item = NULL;
And it worked.. No Compilation Error.. No Deployment Error..
And I verified, the field actually got deleted from InputRoot.
So whether message tree is finalized or not, I was able to modify it using reference. So is there any practical use of this clause other than fixing / synchronizing Properties tree ? |
|
Back to top |
|
 |
fjb_saper |
Posted: Mon Jul 06, 2009 1:22 am Post subject: |
|
|
 Grand High Poobah
Joined: 18 Nov 2003 Posts: 20756 Location: LI,NY
|
You might want to open a PMR with IBM. I don't think they intended to let you modify the InputRoot tree even if referenced...  _________________ MQ & Broker admin |
|
Back to top |
|
 |
mqjeff |
Posted: Mon Jul 06, 2009 5:00 am Post subject: |
|
|
Grand Master
Joined: 25 Jun 2008 Posts: 17447
|
There are two possible interpretations here.
1) That you exploited a bug in how references are handled.
2) That you did not actually delete anything in InputRoot - your verification steps did not show what you thought they showed.
Secondly, I believe that a finalized tree is more locked down than rekarm01 thinks it is. But I'll also repeat the advice that rekarm01 gave - don't use FINALIZE unless you know exactly why you are doing it. |
|
Back to top |
|
 |
rekarm01 |
Posted: Mon Jul 06, 2009 8:06 pm Post subject: Re: Finalize clause in PROPAGATE Statement |
|
|
Grand Master
Joined: 25 Jun 2008 Posts: 1415
|
rekarm01 wrote: |
The main point is that once a node finalizes a message tree, the message flow can no longer modify the message tree. |
mqjeff wrote: |
I believe that a finalized tree is more locked down than rekarm01 thinks it is. |
Please explain. The message flow cannot modify a finalized message tree. What's more "locked down" than that?  |
|
Back to top |
|
 |
mqjeff |
Posted: Tue Jul 07, 2009 3:59 am Post subject: Re: Finalize clause in PROPAGATE Statement |
|
|
Grand Master
Joined: 25 Jun 2008 Posts: 17447
|
rekarm01 wrote: |
rekarm01 wrote: |
The main point is that once a node finalizes a message tree, the message flow can no longer modify the message tree. |
mqjeff wrote: |
I believe that a finalized tree is more locked down than rekarm01 thinks it is. |
Please explain. The message flow cannot modify a finalized message tree. What's more "locked down" than that?  |
Well, what I was thinking was that it was not possible to copy a finalized tree, somehow.
But I am informed that I am generally entirely off base in this thread, so please ignore what I've said and carry on. |
|
Back to top |
|
 |
dip |
Posted: Sun May 29, 2016 11:30 pm Post subject: |
|
|
Novice
Joined: 27 May 2016 Posts: 13
|
cmon somebody please solve this problem , i tried modifying the message , mqmd and properties folder after using this clause in a compute node. But all got changed .
then i used to propagate statements in th same compute node:
SET OutputRoot.XMLNSC.message.msg1 = 'number one';
PROPAGATE TO TERMINAL 'out' FINALIZE DEFAULT DELETE NONE ;
SET OutputRoot.XMLNSC.message.msg1 = 'reassigned';
PROPAGATE TO TERMINAL 'out1' ;
even after this msg1 got changed in the second statement |
|
Back to top |
|
 |
maurito |
Posted: Sun May 29, 2016 11:40 pm Post subject: Re: Finalize clause in PROPAGATE Statement |
|
|
Partisan
Joined: 17 Apr 2014 Posts: 358
|
rekarm01 wrote: |
So, a modifiable OutputRoot tree in one node becomes an unmodifiable InputRoot tree in the next node. |
This used to be true in mqsi 2.1 but as from V5 input message trees are modifiable, including InputRoot. |
|
Back to top |
|
 |
rekarm01 |
Posted: Tue May 31, 2016 10:29 am Post subject: Re: Finalize clause in PROPAGATE Statement |
|
|
Grand Master
Joined: 25 Jun 2008 Posts: 1415
|
maurito wrote: |
This used to be true in mqsi 2.1 but as from V5 input message trees are modifiable, including InputRoot. |
dip reopened an old thread, rather than creating a new one, so the quote you're responding to is from 2009.
Based on my fuzzy recollection, finalized trees are not modifiable; unfinalized InputRoot trees are modifiable, but not through the InputRoot correlation id.
However, I have not had a reason to more thoroughly test either of these claims lately, so don't rely on them without further verification.
dip wrote: |
cmon somebody please solve this problem |
Please describe more clearly what you are trying to do, what you have done, and the difference between your expected and actual results. Posting the relevant portions of Trace node output or usertrace may also help. |
|
Back to top |
|
 |
maurito |
Posted: Tue May 31, 2016 10:37 am Post subject: Re: Finalize clause in PROPAGATE Statement |
|
|
Partisan
Joined: 17 Apr 2014 Posts: 358
|
rekarm01 wrote: |
maurito wrote: |
This used to be true in mqsi 2.1 but as from V5 input message trees are modifiable, including InputRoot. |
dip reopened an old thread, rather than creating a new one, so the quote you're responding to is from 2009.
Based on my fuzzy recollection, finalized trees are not modifiable; unfinalized InputRoot trees are modifiable, but not through the InputRoot correlation id.
However, I have not had a reason to more thoroughly test either of these claims lately, so don't rely on them without further verification.
dip wrote: |
cmon somebody please solve this problem |
Please describe more clearly what you are trying to do, what you have done, and the difference between your expected and actual results. Posting the relevant portions of Trace node output or usertrace may also help. |
I stand by my quote: Input trees are modifiable since v5 regardless of finalized or not.
I may be responding to a quote of 2009, but it is still true ! |
|
Back to top |
|
 |
Vitor |
Posted: Tue May 31, 2016 10:52 am Post subject: |
|
|
 Grand High Poobah
Joined: 11 Nov 2005 Posts: 26093 Location: Texas, USA
|
dip wrote: |
cmon somebody please solve this problem |
What problem?
dip wrote: |
even after this msg1 got changed in the second statement |
So you create (and finalized) a message and sent it through the Out terminal. You then updated the OutputRoot.XMLNSC.message (retaining all the other details through the use of DELETE NONE) and sent that through the Out1 terminal. Why are you surprised (and apparently alarmed) that you got 2 different messages downstream? _________________ Honesty is the best policy.
Insanity is the best defence. |
|
Back to top |
|
 |
rekarm01 |
Posted: Tue May 31, 2016 3:40 pm Post subject: Re: Finalize clause in PROPAGATE Statement |
|
|
Grand Master
Joined: 25 Jun 2008 Posts: 1415
|
maurito wrote: |
I stand by my quote: Input trees are modifiable since v5 regardless of finalized or not. |
Okay. Please explain why the Knowledge Center seems to contradict that:
Quote: |
... a message created by a Compute node cannot be changed by another node after it has been finalized, ... |
|
|
Back to top |
|
 |
maurito |
Posted: Tue May 31, 2016 8:55 pm Post subject: Re: Finalize clause in PROPAGATE Statement |
|
|
Partisan
Joined: 17 Apr 2014 Posts: 358
|
rekarm01 wrote: |
maurito wrote: |
I stand by my quote: Input trees are modifiable since v5 regardless of finalized or not. |
Okay. Please explain why the Knowledge Center seems to contradict that:
Quote: |
... a message created by a Compute node cannot be changed by another node after it has been finalized, ... |
|
You can ask that to IBM.
Here is proof of what I am saying:
Code: |
2016-06-01 05:52:56.309424 8924 UserTrace BIP11501I: Received data from input node ''MQ Input''.
The input node ''MQ Input'' has received data and has propagated it to the message flow ''test''.
2016-06-01 05:52:56.309576 8924 UserTrace BIP6060I: Node 'test.MQ Input' used parser type ''Properties'' to process a portion of the incoming message of length '0' bytes beginning at offset '0'.
2016-06-01 05:52:56.309664 8924 UserTrace BIP6061I: Node 'test.MQ Input' used parser type ''MQMD'' to process a portion of the incoming message of length '364' bytes beginning at offset '0'. The parser type was selected based on value ''MQHMD'' from the previous parser.
2016-06-01 05:52:56.310504 8924 UserTrace BIP6061I: Node 'test.MQ Input' used parser type ''XMLNSC'' to process a portion of the incoming message of length '34' bytes beginning at offset '364'. The parser type was selected based on value ''XMLNSC'' from the previous parser.
2016-06-01 05:52:56.310544 8924 UserTrace BIP2632I: Message received and propagated to 'out' terminal of MQ input node 'test.MQ Input'.
2016-06-01 05:52:56.310740 8924 UserTrace BIP2539I: Node 'test.Trace1': Evaluating expression ''Root'' at ('', '1.3'). This resolved to ''Root''. The result was ''ROW... Root Element Type=16777216 NameSpace='' Name='Root' Value=NULL''.
2016-06-01 05:52:56.311156 8924 UserTrace BIP4060I: Data ''( ['MQROOT' : 0x2cd35010]
(0x01000000:Name ):Properties = ( ['MQPROPERTYPARSER' : 0x2f972ba0]
(0x03000000:NameValue):MessageSet = '' (CHARACTER)
(0x03000000:NameValue):MessageType = '' (CHARACTER)
(0x03000000:NameValue):MessageFormat = '' (CHARACTER)
(0x03000000:NameValue):Encoding = 546 (INTEGER)
(0x03000000:NameValue):CodedCharSetId = 850 (INTEGER)
(0x03000000:NameValue):Transactional = TRUE (BOOLEAN)
(0x03000000:NameValue):Persistence = FALSE (BOOLEAN)
(0x03000000:NameValue):CreationTime = GMTTIMESTAMP '2016-06-01 04:52:56.280' (GMTTIMESTAMP)
(0x03000000:NameValue):ExpirationTime = -1 (INTEGER)
(0x03000000:NameValue):Priority = 0 (INTEGER)
(0x03000000:NameValue):ReplyIdentifier = X'000000000000000000000000000000000000000000000000' (BLOB)
(0x03000000:NameValue):ReplyProtocol = 'MQ' (CHARACTER)
(0x03000000:NameValue):Topic = NULL
(0x03000000:NameValue):ContentType = '' (CHARACTER)
(0x03000000:NameValue):IdentitySourceType = '' (CHARACTER)
(0x03000000:NameValue):IdentitySourceToken = '' (CHARACTER)
(0x03000000:NameValue):IdentitySourcePassword = '' (CHARACTER)
(0x03000000:NameValue):IdentitySourceIssuedBy = '' (CHARACTER)
(0x03000000:NameValue):IdentityMappedType = '' (CHARACTER)
(0x03000000:NameValue):IdentityMappedToken = '' (CHARACTER)
(0x03000000:NameValue):IdentityMappedPassword = '' (CHARACTER)
(0x03000000:NameValue):IdentityMappedIssuedBy = '' (CHARACTER)
)
(0x01000000:Name ):MQMD = ( ['MQHMD' : 0x7496bd0]
(0x03000000:NameValue):SourceQueue = 'IN' (CHARACTER)
(0x03000000:NameValue):Transactional = TRUE (BOOLEAN)
(0x03000000:NameValue):Encoding = 546 (INTEGER)
(0x03000000:NameValue):CodedCharSetId = 850 (INTEGER)
(0x03000000:NameValue):Format = ' ' (CHARACTER)
(0x03000000:NameValue):Version = 2 (INTEGER)
(0x03000000:NameValue):Report = 0 (INTEGER)
(0x03000000:NameValue):MsgType = 8 (INTEGER)
(0x03000000:NameValue):Expiry = -1 (INTEGER)
(0x03000000:NameValue):Feedback = 0 (INTEGER)
(0x03000000:NameValue):Priority = 0 (INTEGER)
(0x03000000:NameValue):Persistence = 0 (INTEGER)
(0x03000000:NameValue):MsgId = X'414d5120424b3031202020202020202015674e5720003b06' (BLOB)
(0x03000000:NameValue):CorrelId = X'000000000000000000000000000000000000000000000000' (BLOB)
(0x03000000:NameValue):BackoutCount = 0 (INTEGER)
(0x03000000:NameValue):ReplyToQ = ' ' (CHARACTER)
(0x03000000:NameValue):ReplyToQMgr = 'BK01 ' (CHARACTER)
(0x03000000:NameValue):UserIdentifier = 'ggbrenner ' (CHARACTER)
(0x03000000:NameValue):AccountingToken = X'16010515000000bd4a0d79bbe8dbad79f59aba9bd5020000000000000000000b' (BLOB)
(0x03000000:NameValue):ApplIdentityData = ' ' (CHARACTER)
(0x03000000:NameValue):PutApplType = 11 (INTEGER)
(0x03000000:NameValue):PutApplName = ':\downloads\ih03\rfhutil.exe' (CHARACTER)
(0x03000000:NameValue):PutDate = DATE '2016-06-01' (DATE)
(0x03000000:NameValue):PutTime = GMTTIME '04:52:56.280' (GMTTIME)
(0x03000000:NameValue):ApplOriginData = ' ' (CHARACTER)
(0x03000000:NameValue):GroupId = X'000000000000000000000000000000000000000000000000' (BLOB)
(0x03000000:NameValue):MsgSeqNumber = 1 (INTEGER)
(0x03000000:NameValue):Offset = 0 (INTEGER)
(0x03000000:NameValue):MsgFlags = 0 (INTEGER)
(0x03000000:NameValue):OriginalLength = -1 (INTEGER)
)
(0x01000000:Folder):XMLNSC = ( ['xmlnsc' : 0x258495c0]
(0x01000000:Folder):Test = (
(0x03000000:PCDataField):value = '123456' (CHARACTER)
)
)
)
'' from trace node 'test.Trace1'.
The trace node 'test.Trace1' has output the specified trace data.
This is an information message provided by the message flow designer. The user response will be determined by the local environment.
2016-06-01 05:52:56.311328 8924 UserTrace BIP4067I: Message propagated to output terminal for trace node 'test.Trace1'.
The trace node 'test.Trace1' has received a message and is propagating it to any nodes connected to its output terminal.
No user action required.
2016-06-01 05:52:56.311512 8924 UserTrace BIP2537I: Node 'test.Compute': Executing statement ''BEGIN ... END;'' at ('.test_Compute.Main', '2.2').
2016-06-01 05:52:56.311556 8924 UserTrace BIP2537I: Node 'test.Compute': Executing statement ''SET OutputRoot = InputRoot;'' at ('.test_Compute.Main', '3.3').
2016-06-01 05:52:56.313920 8924 UserTrace BIP2539I: Node '': Evaluating expression ''InputRoot'' at ('.test_Compute.Main', '3.20'). This resolved to ''InputRoot''. The result was ''ROW... Root Element Type=16777216 NameSpace='' Name='Root' Value=NULL''.
2016-06-01 05:52:56.313984 8924 UserTrace BIP2568I: Node 'test.Compute': Copying sub-tree from ''InputRoot'' to ''OutputRoot''.
2016-06-01 05:52:56.314852 8924 UserTrace BIP2537I: Node 'test.Compute': Executing statement ''PROPAGATE FINALIZE DEFAULT DELETE DEFAULT;'' at ('.test_Compute.Main', '4.3').
2016-06-01 05:52:56.314940 8924 UserTrace BIP4015I: Message propagated to the 'out' terminal of node 'test.Compute' with the following message trees: 'InputLocalEnvironment, OutputRoot, InputExceptionList'.
2016-06-01 05:52:56.315144 8924 UserTrace BIP2537I: Node 'test.Compute1': Executing statement ''BEGIN ... END;'' at ('.test_Compute1.Main', '2.2').
2016-06-01 05:52:56.315192 8924 UserTrace BIP2537I: Node 'test.Compute1': Executing statement ''DECLARE inRef REFERENCE TO InputRoot.XMLNSC.Test;'' at ('.test_Compute1.Main', '3.3').
2016-06-01 05:52:56.315244 8924 UserTrace BIP2537I: Node 'test.Compute1': Executing statement ''SET inRef.value = 99999;'' at ('.test_Compute1.Main', '4.3').
2016-06-01 05:52:56.315280 8924 UserTrace BIP2566I: Node 'test.Compute1': Assigning value ''99999'' to field / variable ''inRef.value''.
2016-06-01 05:52:56.315316 8924 UserTrace BIP2537I: Node 'test.Compute1': Executing statement ''PROPAGATE MESSAGE InputRoot FINALIZE DEFAULT DELETE DEFAULT;'' at ('.test_Compute1.Main', '5.3').
2016-06-01 05:52:56.315340 8924 UserTrace BIP4015I: Message propagated to the 'out' terminal of node 'test.Compute1' with the following message trees: 'InputLocalEnvironment, InputRoot, InputExceptionList'.
2016-06-01 05:52:56.315436 8924 UserTrace BIP2539I: Node 'test.Trace': Evaluating expression ''Root'' at ('', '1.3'). This resolved to ''Root''. The result was ''ROW... Root Element Type=16777216 NameSpace='' Name='Root' Value=NULL''.
2016-06-01 05:52:56.315928 8924 UserTrace BIP4060I: Data ''( ['MQROOT' : 0x2cd35cd0]
(0x01000000:Name ):Properties = ( ['MQPROPERTYPARSER' : 0x75d6f10]
(0x03000000:NameValue):MessageSet = '' (CHARACTER)
(0x03000000:NameValue):MessageType = '' (CHARACTER)
(0x03000000:NameValue):MessageFormat = '' (CHARACTER)
(0x03000000:NameValue):Encoding = 546 (INTEGER)
(0x03000000:NameValue):CodedCharSetId = 850 (INTEGER)
(0x03000000:NameValue):Transactional = TRUE (BOOLEAN)
(0x03000000:NameValue):Persistence = FALSE (BOOLEAN)
(0x03000000:NameValue):CreationTime = GMTTIMESTAMP '2016-06-01 04:52:56.280' (GMTTIMESTAMP)
(0x03000000:NameValue):ExpirationTime = -1 (INTEGER)
(0x03000000:NameValue):Priority = 0 (INTEGER)
(0x03000000:NameValue):ReplyIdentifier = X'000000000000000000000000000000000000000000000000' (BLOB)
(0x03000000:NameValue):ReplyProtocol = 'MQ' (CHARACTER)
(0x03000000:NameValue):Topic = NULL
(0x03000000:NameValue):ContentType = '' (CHARACTER)
(0x03000000:NameValue):IdentitySourceType = '' (CHARACTER)
(0x03000000:NameValue):IdentitySourceToken = '' (CHARACTER)
(0x03000000:NameValue):IdentitySourcePassword = '' (CHARACTER)
(0x03000000:NameValue):IdentitySourceIssuedBy = '' (CHARACTER)
(0x03000000:NameValue):IdentityMappedType = '' (CHARACTER)
(0x03000000:NameValue):IdentityMappedToken = '' (CHARACTER)
(0x03000000:NameValue):IdentityMappedPassword = '' (CHARACTER)
(0x03000000:NameValue):IdentityMappedIssuedBy = '' (CHARACTER)
)
(0x01000000:Name ):MQMD = ( ['MQHMD' : 0x2ed9ec60]
(0x03000000:NameValue):SourceQueue = 'IN' (CHARACTER)
(0x03000000:NameValue):Transactional = TRUE (BOOLEAN)
(0x03000000:NameValue):Encoding = 546 (INTEGER)
(0x03000000:NameValue):CodedCharSetId = 850 (INTEGER)
(0x03000000:NameValue):Format = ' ' (CHARACTER)
(0x03000000:NameValue):Version = 2 (INTEGER)
(0x03000000:NameValue):Report = 0 (INTEGER)
(0x03000000:NameValue):MsgType = 8 (INTEGER)
(0x03000000:NameValue):Expiry = -1 (INTEGER)
(0x03000000:NameValue):Feedback = 0 (INTEGER)
(0x03000000:NameValue):Priority = 0 (INTEGER)
(0x03000000:NameValue):Persistence = 0 (INTEGER)
(0x03000000:NameValue):MsgId = X'414d5120424b3031202020202020202015674e5720003b06' (BLOB)
(0x03000000:NameValue):CorrelId = X'000000000000000000000000000000000000000000000000' (BLOB)
(0x03000000:NameValue):BackoutCount = 0 (INTEGER)
(0x03000000:NameValue):ReplyToQ = ' ' (CHARACTER)
(0x03000000:NameValue):ReplyToQMgr = 'BK01 ' (CHARACTER)
(0x03000000:NameValue):UserIdentifier = 'ggbrenner ' (CHARACTER)
(0x03000000:NameValue):AccountingToken = X'16010515000000bd4a0d79bbe8dbad79f59aba9bd5020000000000000000000b' (BLOB)
(0x03000000:NameValue):ApplIdentityData = ' ' (CHARACTER)
(0x03000000:NameValue):PutApplType = 11 (INTEGER)
(0x03000000:NameValue):PutApplName = ':\downloads\ih03\rfhutil.exe' (CHARACTER)
(0x03000000:NameValue):PutDate = DATE '2016-06-01' (DATE)
(0x03000000:NameValue):PutTime = GMTTIME '04:52:56.280' (GMTTIME)
(0x03000000:NameValue):ApplOriginData = ' ' (CHARACTER)
(0x03000000:NameValue):GroupId = X'000000000000000000000000000000000000000000000000' (BLOB)
(0x03000000:NameValue):MsgSeqNumber = 1 (INTEGER)
(0x03000000:NameValue):Offset = 0 (INTEGER)
(0x03000000:NameValue):MsgFlags = 0 (INTEGER)
(0x03000000:NameValue):OriginalLength = -1 (INTEGER)
)
(0x01000000:Folder):XMLNSC = ( ['xmlnsc' : 0x25848ee0]
(0x01000000:Folder):Test = (
(0x03000000:PCDataField):value = 99999 (INTEGER)
)
)
)
'' from trace node 'test.Trace'.
The trace node 'test.Trace' has output the specified trace data.
This is an information message provided by the message flow designer. The user response will be determined by the local environment.
2016-06-01 05:52:56.315976 8924 UserTrace BIP4067I: Message propagated to output terminal for trace node 'test.Trace'.
The trace node 'test.Trace' has received a message and is propagating it to any nodes connected to its output terminal.
No user action required.
|
You will see that the first compute node receives an xml message with value = '123456' and propagates with FINALIZE.
The second compute nodes changes the value to 99999. |
|
Back to top |
|
 |
dip |
Posted: Wed Jun 01, 2016 3:43 am Post subject: |
|
|
Novice
Joined: 27 May 2016 Posts: 13
|
sorry for opening an old one..... "newbie"
case 1:
i tried
mqip -> cn1 -> cn2 -> mqop
in cn1 : SET OutputRoot.XMLNSC.message.msg1 = 'number one';
PROPAGATE TO TERMINAL 'out' FINALIZE DEFAULT DELETE NONE ;
in cn2 : SET OutputRoot.XMLNSC.message.msg1 = 'reassigned';
the message got changed in cn2. I tried the same with mqmd fields too but they also changed. Anyways , why this is happening I understood, but....
case 2:
mqip -> cn -> mqop
in cn :
SET OutputRoot.XMLNSC.message.msg1 = 'number one';
PROPAGATE TO TERMINAL 'out' FINALIZE DEFAULT DELETE NONE ;
SET OutputRoot.MQMD.Transactional = FALSE;
SET OutputRoot.XMLNSC.message.msg1 = 'reassigned';
PROPAGATE TO TERMINAL 'out1' ;
RETURN FALSE;
Now according to knwldge cntre, finalize should make the msg constant. So, after the first propagate statement, so how is it modifying the same message and even the header got changed??? |
|
Back to top |
|
 |
|