Author |
Message
|
wmqiadmin |
Posted: Thu Mar 29, 2007 5:43 am Post subject: MQ Message failing at input node |
|
|
 Disciple
Joined: 19 Jun 2005 Posts: 163 Location: epping UK
|
Hi All,
I have 2 message flows Main and Error message flows in V6 MB:
1.Main flow:
mq i/p>compute> mq output
\catach Exception Handler flow (sub flow)
2. error hadler flow
mq i/p>compute>mq output
Error handler flow extracts the original message from the exception message and puts on the message back on the main flow i/p node.
This flow works fine with out RFH2 header, if i add RFH2 header to pass aditional information, it fails on the Main message flow i/p node. The message recieved on the i/p node from error message flow is not MRM format but BLOB format.
Am i missing some thing here? As per my understanding we don't need to set any RFH2 setting on mq queue....
Thanks
wmqiadmin |
|
Back to top |
|
 |
PieterV |
Posted: Thu Mar 29, 2007 6:12 am Post subject: |
|
|
Disciple
Joined: 04 Jan 2006 Posts: 164 Location: Belgium
|
what is the specific error you receive (eg. in your syslog)
or perhaps set up tracing to see where the broker stumbles upon? |
|
Back to top |
|
 |
wmqiadmin |
Posted: Thu Mar 29, 2007 6:14 am Post subject: |
|
|
 Disciple
Joined: 19 Jun 2005 Posts: 163 Location: epping UK
|
PieterV wrote: |
what is the specific error you receive (eg. in your syslog)
or perhaps set up tracing to see where the broker stumbles upon? |
Message fails because of unknown parser error. it takes the message as Blob not as MRM parser and fails at validation. |
|
Back to top |
|
 |
PieterV |
Posted: Thu Mar 29, 2007 6:41 am Post subject: |
|
|
Disciple
Joined: 04 Jan 2006 Posts: 164 Location: Belgium
|
just to check, i don't know if this can cause the problem, but do you use a MQRFH2 header, or a RFH2 header? |
|
Back to top |
|
 |
wmqiadmin |
Posted: Thu Mar 29, 2007 6:44 am Post subject: |
|
|
 Disciple
Joined: 19 Jun 2005 Posts: 163 Location: epping UK
|
MQRFH2 header,
I am setting
SET OutputRoot.MQRFH2 = InputRoot.MQRFH2; |
|
Back to top |
|
 |
kimbert |
Posted: Thu Mar 29, 2007 11:51 am Post subject: |
|
|
 Jedi Council
Joined: 29 Jul 2003 Posts: 5542 Location: Southampton
|
Quote: |
Message fails because of unknown parser error |
You cannot diagnose this problem without better information. Switch on user trace, submit a message, and look at the resulting output. You should get a much more helpful set of errors. |
|
Back to top |
|
 |
wmqiadmin |
Posted: Fri Mar 30, 2007 7:04 am Post subject: |
|
|
 Disciple
Joined: 19 Jun 2005 Posts: 163 Location: epping UK
|
I could trace the problem,
Whats happening is when i set the outputRoot.MQRFH2 header is sets the mcd.msd property to 'None', because of this property the message on the other (main flow) fails.
If i try this with RFHUTIL by setting message domain = none, message fails and if i remove that and keep it empty message makes to the out put queue.
Any suggestions how to resolve this through esql??
thanks
wmqiadmin |
|
Back to top |
|
 |
fjb_saper |
Posted: Fri Mar 30, 2007 2:04 pm Post subject: |
|
|
 Grand High Poobah
Joined: 18 Nov 2003 Posts: 20756 Location: LI,NY
|
Have you tried setting the OutputRoot.Properties correctly. Some of this will govern what gets serialized into the RFH header...
Enjoy  _________________ MQ & Broker admin |
|
Back to top |
|
 |
smdavies99 |
Posted: Sat Mar 31, 2007 7:24 am Post subject: Slightly Off Topic but nearly relevant |
|
|
 Jedi Council
Joined: 10 Feb 2003 Posts: 6076 Location: Somewhere over the Rainbow this side of Never-never land.
|
One of the most frustrating things about an MQInput nn throughode is that you can't really force it just to read a message it it has an RFH2 Header that normally overrides the settings on the input node.
I have a flow that process several differet message types. Depending upon the data in the MQRFH2 header it routes the message to the appropriate part of the flow for processing.
However, one message type needs to be reformatted with an XSLT in an XML Transform node not just parsed/reformatted with a message set.
The RFH2 Header would normally contain the Message set details. In the case of the type needing the XSLT processing the flow it is not easy.
If the MQInput Node had a "Do Nothing" option it would be much easier to process the data downstream. _________________ 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 |
|
 |
jefflowrey |
Posted: Sun Apr 01, 2007 2:20 am Post subject: |
|
|
Grand Poobah
Joined: 16 Oct 2002 Posts: 19981
|
The BLOB domain does nothing, as far as I know.
That is, if you send a message to an MQInput node set to BLOB domain, and the message has an MQRFH2, then the MQRFH2 will be ignored for purposes of assigning Properties and parsers. _________________ I am *not* the model of the modern major general. |
|
Back to top |
|
 |
fjb_saper |
Posted: Sun Apr 01, 2007 3:09 am Post subject: |
|
|
 Grand High Poobah
Joined: 18 Nov 2003 Posts: 20756 Location: LI,NY
|
jefflowrey wrote: |
The BLOB domain does nothing, as far as I know.
That is, if you send a message to an MQInput node set to BLOB domain, and the message has an MQRFH2, then the MQRFH2 will be ignored for purposes of assigning Properties and parsers. |
You mean to say that the RFH2 settings will not overwrite the BLOB domain and force the parsing as say XMLNS? (mcd=xmlns). Now I'm confused...  _________________ MQ & Broker admin |
|
Back to top |
|
 |
jefflowrey |
Posted: Sun Apr 01, 2007 4:17 am Post subject: |
|
|
Grand Poobah
Joined: 16 Oct 2002 Posts: 19981
|
fjb_saper wrote: |
You mean to say that the RFH2 settings will not overwrite the BLOB domain and force the parsing as say XMLNS? (mcd=xmlns). Now I'm confused...  |
Yes, that's what I mean to say. I might be wrong, but that's what I mean to say. _________________ I am *not* the model of the modern major general. |
|
Back to top |
|
 |
smdavies99 |
Posted: Sun Apr 01, 2007 9:58 am Post subject: Here is what I see |
|
|
 Jedi Council
Joined: 10 Feb 2003 Posts: 6076 Location: Somewhere over the Rainbow this side of Never-never land.
|
When I send a message with a valid set of data in the RFH2 header that describes the messae set, domain and message type to a flow with an MQInput Node with its domain set to BLOB and follow the node with a trace node.
:- Input message
domain = mrm
set = NIHREC.... ( Message set id)
type = z_buyer
The trace node ($Root) shows the message content as being in the MRM domain.
In this particular example, the message originates from the Websphere SAP Adapter. The XML is pretty obfuscated hence the need for it to be run through an XML Transform node later in the flow after it has routed its path depending upon the value of the set in the RFH2 Header.
So, I think the MQInput Node does what it says on the tin and the contents of the MQRFH2 Header override any settings in the node itself.
Hence, my original post asking for a setting to stop the MQRFH2 override.
Yes, I could make a suggestion for this through the UK MQ Users Group but my experience of this process is not overly enthusiastic. I got one accepted a couple of years ago and so far nowt. Sigh
If any of the IBMer's who peruse this site could tell us how to acheive what I am asking about then I would be very happy and I'll gladly buy them a beer when I'm in Hursley later this month. _________________ 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 |
|
 |
fjb_saper |
Posted: Sun Apr 01, 2007 11:08 am Post subject: |
|
|
 Grand High Poobah
Joined: 18 Nov 2003 Posts: 20756 Location: LI,NY
|
So if you want to override the RFH setting there is no magical wand...
What you can do is make sure that the input node does not parse and verify the message (timing issue) and set a content redescriptor node right after it....
This should do the trick.
Enjoy  _________________ MQ & Broker admin |
|
Back to top |
|
 |
wmqiadmin |
Posted: Wed Apr 04, 2007 12:01 pm Post subject: |
|
|
 Disciple
Joined: 19 Jun 2005 Posts: 163 Location: epping UK
|
fjb_saper wrote: |
So if you want to override the RFH setting there is no magical wand...
What you can do is make sure that the input node does not parse and verify the message (timing issue) and set a content redescriptor node right after it....
This should do the trick.
Enjoy  |
Thanks fjb_saper
i am setting these values after RCD node
SET OutputRoot.MQRFH2.mcd.Msd = 'MRM';
SET OutputRoot.MQRFH2.mcd.Set = 'Msg_SET';
SET OutputRoot.MQRFH2.mcd.Fmt = 'Message';
SET OutputRoot.MQRFH2.mcd.Type = 'CWF1';
When i check the message in the next node i get only Msd value, I don't see any other values.
Is there any hidden secret to it???
Thanks
wmqiadmin
Last edited by wmqiadmin on Wed Apr 04, 2007 5:27 pm; edited 1 time in total |
|
Back to top |
|
 |
|