Author |
Message
|
visasimbu |
Posted: Tue Jun 15, 2010 10:24 pm Post subject: Msd is not populated in MQRFH2 header for BLOB message. |
|
|
 Disciple
Joined: 06 Nov 2009 Posts: 171
|
My environment is WBI MB6.0, FIxpack -2.
MF1:
MQInput Node --->Compute Node1 ---->MQOutput (Q1)
MF2
MQInput(Q1) ---Compute Node2 --> MQOutput
Here in MF1, MQInput gets a blob message. Compute Node1 will just dynamically set the MQRFH2 header and send that to queue (Q1).
in MF2, I have set the domain 'blob in MQInput node. As I have Ãncorporated MQRFH2 header into the message before, this MQInput should automatically parse the message as per MQRFH2 header. Is this correct? Please clarify me.
However, I am unable to set Msd as 'mrm' in the mcd folder in MF1. It is getting blank after the first compute node although in the debug mode, it is showing set. All other properties are populated as I am expected.
Header contains some fields which denote the target system and the type of msg (MsgBody). There are so many message type. That's why in MF1, I just wanted to pass the MsgBody as blob with MQRFH2 header. In MF2, it will automatically parse the MsgBody as I have set the mcd folder.
Could you give me some light of using mcd folder of MQRFH2 header?
I have added a break point inside ESQL of Compute node1 and a break point after compute node1.
While debugging, I have seen that Msd is populated with mrm' in OutputRoot tree inside the compute node1. However after compute node1 (2nd break point), it is reset by none.
My question is I am unable to set Msd as 'mrm' in MQRFH2 header while output message domain is BLOB.
Thanks in advance.
 |
|
Back to top |
|
 |
Vitor |
Posted: Wed Jun 16, 2010 4:57 am Post subject: |
|
|
 Grand High Poobah
Joined: 11 Nov 2005 Posts: 26093 Location: Texas, USA
|
Isn't this very much the same as your post here? _________________ Honesty is the best policy.
Insanity is the best defence. |
|
Back to top |
|
 |
Vitor |
Posted: Wed Jun 16, 2010 4:59 am Post subject: |
|
|
 Grand High Poobah
Joined: 11 Nov 2005 Posts: 26093 Location: Texas, USA
|
And here?
Reposting the same question in slightly different forms is not going to get you anywhere. Except on our bad side.  _________________ Honesty is the best policy.
Insanity is the best defence. |
|
Back to top |
|
 |
visasimbu |
Posted: Wed Jun 16, 2010 9:00 pm Post subject: |
|
|
 Disciple
Joined: 06 Nov 2009 Posts: 171
|
vitor
Now I am facing the above stated problem. I could not find the solution in old threads. Because of this reason only i started new thread.
If possible guide me to resolve the problem.
 |
|
Back to top |
|
 |
Vitor |
Posted: Thu Jun 17, 2010 5:24 am Post subject: |
|
|
 Grand High Poobah
Joined: 11 Nov 2005 Posts: 26093 Location: Texas, USA
|
visasimbu wrote: |
I could not find the solution in old threads. |
And having failed to find someone in here willing & able to post a solution on your last 2 attempts, what makes you think posting for a third time will help?  _________________ Honesty is the best policy.
Insanity is the best defence. |
|
Back to top |
|
 |
mqjeff |
Posted: Thu Jun 17, 2010 9:20 am Post subject: |
|
|
Grand Master
Joined: 25 Jun 2008 Posts: 17447
|
Vitor wrote: |
visasimbu wrote: |
I could not find the solution in old threads. |
And having failed to find someone in here willing & able to post a solution on your last 2 attempts, |
And, let's be clear, there's as much "willing" as there is "able" needed.
There isn't any particular reason you shouldn't be able to do what you're trying to do, AFAIK.
So you're clearly doing it wrong, somehow. But I am unwilling to spend the time to try and figure out where or how you're going wrong. And you appear to be unwilling to take the necessary steps, like providing clear examples of your ESQL or output of usertrace, to lower the amount of effort I'd have to take to be able to provide meaningful help.
So I'm personally not willing to offer anything more than "you're doing something wrong", and it's unlikely from the evidence so far that anyone else is willing to offer any more than that either. |
|
Back to top |
|
 |
visasimbu |
Posted: Fri Jun 18, 2010 2:15 am Post subject: |
|
|
 Disciple
Joined: 06 Nov 2009 Posts: 171
|
Hi all
I try to explain more specific to my problem.
I have input message with the following following structure.
Input message:
properties
MQMD
MQRFH2
message body(XML)
MF1 : IN1(InputNode1)--ComputeNode1(CN1)---OutputNode1(ON1)
MF2 : IN2(InputNode2)--ComputeNode2(CN2)---OutputNode1(ON2)
IN2 will pick the output of the MF1. IN2 was configured with corresponding message set, message type and message format.
Like MF2 i have so many message flow with different message set,message type, message format. So i can not set those in my MF1.
CN1 code:
CALL CopyEntireMessage();
DECLARE CharDATA CHARACTER CAST(InputRoot.XMLNSC.Data AS CHAR CCSID InputRoot.MQMD.CodedCharSetId ENCODING InputRoot.MQMD.Encoding);
DELETE FIELD OutputRoot.XMLNSC;
SET OutputRoot."BLOB"."BLOB"=cast(CharDATA as BLOB CCSID 1208);
SET OutputRoot.MQRFH2.mcd.Msd='MRM';
The above specified msd was reset to none when control comes out of compute node.
Note : When i execute "DELETE FIELD OutputRoot.MQRFH2;" my code was working fine as i am expected.
I need to pass the message with MQRFH2 in MF1.
Kindly help me in this issue. |
|
Back to top |
|
 |
smdavies99 |
Posted: Fri Jun 18, 2010 2:46 am Post subject: |
|
|
 Jedi Council
Joined: 10 Feb 2003 Posts: 6076 Location: Somewhere over the Rainbow this side of Never-never land.
|
You need to tell WMQ that you have an RFH2 Header. You do this by setting the appropriate value in the MQMD.Format parameter.
The default is not to have a header so at the end of the MQMD (in the case where you have deleted the RFH2 Header), the data starts. That is why it works. _________________ 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 |
|
 |
vmcgloin |
Posted: Fri Jun 18, 2010 3:58 am Post subject: |
|
|
Knight
Joined: 04 Apr 2002 Posts: 560 Location: Scotland
|
Also, why are you using the BLOB domain for output of MRM messages in the first place?
I don't think this will work, as the output Properties will probably overwrite the mcd values and if you set OutputRoot.Properties.MessageDomain = 'MRM'; then there will not be anything in the MRM body to write out.
(I haven't played with this recently so I could be wrong...)
Also, it is trivial, but why copy the entire message then delete the body? |
|
Back to top |
|
 |
visasimbu |
Posted: Fri Jun 18, 2010 4:27 am Post subject: |
|
|
 Disciple
Joined: 06 Nov 2009 Posts: 171
|
hi smdavies99,
under MQMD.Format was set was "MQRFH2" as we expected. There we dont have any problem.
your second statement was correct smdavies99. but i need to pass the message with MQRFH2.
vmcgloin,
I can not set message set, message type and message format in the first message flow. Because i will assign those in second message flow via input node property. Thats why i convert my message into blob.
Any help .. |
|
Back to top |
|
 |
|