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 » MQRC_RFH_ERROR

Post new topic  Reply to topic
 MQRC_RFH_ERROR « View previous topic :: View next topic » 
Author Message
George Carey
PostPosted: Mon Sep 28, 2009 11:02 am    Post subject: MQRC_RFH_ERROR Reply with quote

Knight

Joined: 29 Jan 2007
Posts: 500
Location: DC

Problem:
Messages landing on DLQ with DLQ Header showing MQRC_RFH_ERROR

Scenario:
JMS messages being sent, XML SOAP payloads
Messages coming across a comm link from/source a DataPower box to a target queue on a Linux box.

Environments:
Source QMGR windows XP, MQ v 6.0.2.2+
_____Intermediate GW QMGRs (sending)Windows XP, MQ 6.0.2.3?
_________________________(receiving) Solaris MQ v 6.0.2.2
Target QMGR Linux MQv 7.0.0.2

Questions:
1.) Messages landing on target qmgr DLQ ... does the message have to be attempted to be read by target application to land on the target DLQ? Or is MQ placing it on DLQ before application even sees it?

2.)What is a likely format error coming from the DataPower ... The sender says they do not get a format error when sending to local queue on their end. Does data have to have CCSID of target platform, namely Linux??

3.) If message does not have to be read by application code before message format error is noticed by MQ, why would the message not be put on DLQ of intermediate qmgrs or even source qmgr??

4.) Is there a way to get more specific info on the MQRC_RFH_ERROR, like is it the CCSID, or Correlation ID, etc. ???
Looking at DLQ Header with MQExplorer at this time.


TIA
_________________
"Truth is ... grasping the virtually unconditioned",
Bernard F. Lonergan S.J.
(from book titled "Insight" subtitled "A Study of Human Understanding")
Back to top
View user's profile Send private message Visit poster's website AIM Address
fjb_saper
PostPosted: Mon Sep 28, 2009 1:27 pm    Post subject: Re: MQRC_RFH_ERROR Reply with quote

Grand High Poobah

Joined: 18 Nov 2003
Posts: 20756
Location: LI,NY

George Carey wrote:
Problem:
Messages landing on DLQ with DLQ Header showing MQRC_RFH_ERROR

Scenario:
JMS messages being sent, XML SOAP payloads
Messages coming across a comm link from/source a DataPower box to a target queue on a Linux box.

Environments:
Source QMGR windows XP, MQ v 6.0.2.2+
_____Intermediate GW QMGRs (sending)Windows XP, MQ 6.0.2.3?
_________________________(receiving) Solaris MQ v 6.0.2.2
Target QMGR Linux MQv 7.0.0.2

Questions:
1.) Messages landing on target qmgr DLQ ... does the message have to be attempted to be read by target application to land on the target DLQ? Or is MQ placing it on DLQ before application even sees it?

Quite possible. If the channel agent determines a badly formatted RFH2 it may put the message to the DLQ before even the application has a chance to read it.
George Carey wrote:

2.)What is a likely format error coming from the DataPower ... The sender says they do not get a format error when sending to local queue on their end. Does data have to have CCSID of target platform, namely Linux??

The number of acceptable CCSIDs for the property value pairs on the RFH is quite limited. Go with 1208 or 1200 and you should be safe.

George Carey wrote:
3.) If message does not have to be read by application code before message format error is noticed by MQ, why would the message not be put on DLQ of intermediate qmgrs or even source qmgr??

Good question. My attempt at an answer would be because the header that is being examined is the XMIT header while in transit and for speed and expediency purpose that is all that is needed to be looked at for routing.
George Carey wrote:
4.) Is there a way to get more specific info on the MQRC_RFH_ERROR, like is it the CCSID, or Correlation ID, etc. ???
Looking at DLQ Header with MQExplorer at this time.
TIA

You might want to use a more sophisticated tool like RFHUtil(c) (sp IH03) or mqmon (sp MO71) unless it allows you now to display the full message? (txt, xml, hex ...).

Have fun
_________________
MQ & Broker admin
Back to top
View user's profile Send private message Send e-mail
George Carey
PostPosted: Tue Sep 29, 2009 12:28 pm    Post subject: DLQ info Reply with quote

Knight

Joined: 29 Jan 2007
Posts: 500
Location: DC

Using the DLQ Header info from MQ Explorer

I see the following:

Original CCSID: 1208 (as you noted ... so should be good)
Original Encoding: 546 (don't know about this coming from win box going to linux box but I think is OK)
Original Format: MQHRF2 (I think this is good for JMS message SOAP message?)

Any suggestions on where and how to determine what the bad header structure error might be ?

I will see about getting other utilities (RFHUTIL) but not sure at this point how I would use it to determine the cause of error.

Sure would be nice if MQRC_RFH_ERROR gave indication of attribute in error (e.g. bad correlation id byte length ... or the like... perhaps it does but I don't know where !)
---------------------------------------------
Noted some other stange behavior on amqsbcg.

I could not read some messages with amqsbcg ... I got truncated message error !!! Message length was ~77K.

I did not think/know amqsbcg had a message limit on what it could read !!! Apparently I just never hit the limit !!
_________________
"Truth is ... grasping the virtually unconditioned",
Bernard F. Lonergan S.J.
(from book titled "Insight" subtitled "A Study of Human Understanding")
Back to top
View user's profile Send private message Visit poster's website AIM Address
fjb_saper
PostPosted: Tue Sep 29, 2009 1:46 pm    Post subject: Re: DLQ info Reply with quote

Grand High Poobah

Joined: 18 Nov 2003
Posts: 20756
Location: LI,NY

George Carey wrote:
Using the DLQ Header info from MQ Explorer

I see the following:

Original CCSID: 1208 (as you noted ... so should be good)
Original Encoding: 546 (don't know about this coming from win box going to linux box but I think is OK)
Original Format: MQHRF2 (I think this is good for JMS message SOAP message?)

Any suggestions on where and how to determine what the bad header structure error might be ?

This only tells you that the RFH header is in CCSID 1208.
It tells you nothing about the CCSID of the property/value pairs (this is on the RFH). You need to get a tool like RFHUtil to fully appreciate the complexity of the RFH. (support pack IH03 IIRC).

George Carey wrote:
I will see about getting other utilities (RFHUTIL) but not sure at this point how I would use it to determine the cause of error.

Sure would be nice if MQRC_RFH_ERROR gave indication of attribute in error (e.g. bad correlation id byte length ... or the like... perhaps it does but I don't know where !)
---------------------------------------------
Noted some other strange behavior on amqsbcg.

I could not read some messages with amqsbcg ... I got truncated message error !!! Message length was ~77K.

I did not think/know amqsbcg had a message limit on what it could read !!! Apparently I just never hit the limit !!


Like all samples you can copy and modify to remove the limitation.
Could be that the size of your RFH is sufficient to not allow any display of the message. IIRC the sample is limited to 100 bytes?

Enjoy
_________________
MQ & Broker admin
Back to top
View user's profile Send private message Send e-mail
George Carey
PostPosted: Wed Sep 30, 2009 8:11 am    Post subject: amqsbcg Reply with quote

Knight

Joined: 29 Jan 2007
Posts: 500
Location: DC

Quote:
"IIRC the sample is limited to 100 bytes? "
,

That is the limit with amqsget but NOT amqsbcg, as I say could read any size message off the queue I tried ... till now !!

Surprised is all.

Quote:
This only tells you that the RFH header is in CCSID 1208.
It tells you nothing about the CCSID of the property/value pairs (this is on the RFH)
,

I will have to look at a DLQ header format to see where DLQ header ends and original message headers begin. Not jumping out at me.
_________________
"Truth is ... grasping the virtually unconditioned",
Bernard F. Lonergan S.J.
(from book titled "Insight" subtitled "A Study of Human Understanding")


Last edited by George Carey on Wed Sep 30, 2009 4:30 pm; edited 1 time in total
Back to top
View user's profile Send private message Visit poster's website AIM Address
smdavies99
PostPosted: Wed Sep 30, 2009 8:19 am    Post subject: Reply with quote

Jedi Council

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

Quote:

That is the limit with amqsget but amqsbcg, as I say could read any size message off the queue I tried ... till now !!

Surprised is all.


The 100 byte limit surprises many of us at first. But IBM have given you the sources of the sample apps so you can modify them and recompile them as you see fit. You could change the buffer size or make the read truncated messages(required reading the MQ Programming Manual)

However in this case, I'd really look into using RFHUTIL. It does show the relevant fields (optional or not) in the RFH2 Header. It is much easier to understand if there is some underlying issue with your message using this tool.
I'd go so far as to say that RFHUTIL is an essential tool for anyone using Message Broker (or WAS with WMQ As the JMS transport)
_________________
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
George Carey
PostPosted: Wed Sep 30, 2009 12:58 pm    Post subject: ok mqhrf2 Reply with quote

Knight

Joined: 29 Jan 2007
Posts: 500
Location: DC

Ok here is a snippet of DLQ (past the DLH info): This is starting with the CCSID value of 0333 = 819[3303 transposed] and Format = MQHRF2 , next would be PutAppltype, then PutApplName=amqrmppa, PutDate, Put time

Then the actual payload message starts which is an XML soap message.

This message lands on a queue OK with a V6 QMGR but when hopped to a v7 QMQR it gets sent to DLQ with "MQRC_RFH_ERROR" so where is the format error ??

Quote:
...
00000070: 3303 0000 4D51 4852 4632 2020 0600 0000 '3...MQHRF2 ....'
00000080: 616D 7172 6D70 7061 2020 2020 2020 2020 'amqrmppa '
00000090: 2020 2020 2020 2020 2020 2020 3230 3039 ' 2009'
000000A0: 3039 3239 3135 3236 3437 3731 3C3F 786D '092915264771<?xm'
000000B0: 6C20 7665 7273 696F 6E3D 2231 2E30 2220 'l version="1.0" '
000000C0: 656E 636F 6469 6E67 3D22 5554 462D 3822 'encoding="UTF-8"'
000000D0: 3F3E 0A3C 736F 6170 3A45 6E76 656C 6F70 '?>.<soap:Envelop'
000000E0: 6520 786D 6C6E 733A 786C 696E 6B3D 2268 'e xmlns:xlink="h'
000000F0: 7474 703A 2F2F 7777 772E 7733 2E6F 7267 'ttp://www.w3.org'
00000100: 2F54 522F 786C 696E 6B22 2078 6D6C 6E73 '/TR/xlink" xmlns'
...

_________________
"Truth is ... grasping the virtually unconditioned",
Bernard F. Lonergan S.J.
(from book titled "Insight" subtitled "A Study of Human Understanding")
Back to top
View user's profile Send private message Visit poster's website AIM Address
George Carey
PostPosted: Wed Sep 30, 2009 4:32 pm    Post subject: Forgot NOT Reply with quote

Knight

Joined: 29 Jan 2007
Posts: 500
Location: DC

sorry forgot the word NOT in my previous post !! I post facto edited it.

As in amqsbcg is NOT limited to 100 bytes.
_________________
"Truth is ... grasping the virtually unconditioned",
Bernard F. Lonergan S.J.
(from book titled "Insight" subtitled "A Study of Human Understanding")
Back to top
View user's profile Send private message Visit poster's website AIM Address
fjb_saper
PostPosted: Wed Sep 30, 2009 7:14 pm    Post subject: Reply with quote

Grand High Poobah

Joined: 18 Nov 2003
Posts: 20756
Location: LI,NY

smdavies99 wrote:

However in this case, I'd really look into using RFHUTIL. It does show the relevant fields (optional or not) in the RFH2 Header. It is much easier to understand if there is some underlying issue with your message using this tool.
I'd go so far as to say that RFHUTIL is an essential tool for anyone using Message Broker (or WAS with WMQ As the JMS transport)


with smdavies99 and strongly suggest you download and use it. Oh the things I learned by looking at the multiple options and inspecting messages... with RFHUtil(c) .... A must have in the MQ Admin's arsenal when dealing with JMS headers...
_________________
MQ & Broker admin
Back to top
View user's profile Send private message Send e-mail
rekarm01
PostPosted: Wed Sep 30, 2009 9:45 pm    Post subject: Re: ok mqhrf2 Reply with quote

Grand Master

Joined: 25 Jun 2008
Posts: 1415

George Carey wrote:
Ok here is a snippet of DLQ (past the DLH info): This is starting with the CCSID value of 0333 = 819[3303 transposed] and Format = MQHRF2 , next would be PutAppltype, then PutApplName=amqrmppa, PutDate, Put time
Code:
...
00000070:  3303 0000 4D51 4852 4632 2020 0600 0000    '3...MQHRF2  ....'
00000080:  616D 7172 6D70 7061 2020 2020 2020 2020    'amqrmppa        '
00000090:  2020 2020 2020 2020 2020 2020 3230 3039    '            2009'
000000A0:  3039 3239 3135 3236 3437 3731              '092915264771'
...

That's not past the DLH info; that is still part of the DLH info. And the Format indicates that an MQRFH2 header should follow.

George Carey wrote:
Then the actual payload message starts which is an XML soap message.
Code:
...
000000A0:                                3C3F 786D                '<?xm'
000000B0:  6C20 7665 7273 696F 6E3D 2231 2E30 2220    'l version="1.0" '
000000C0:  656E 636F 6469 6E67 3D22 5554 462D 3822    'encoding="UTF-8"'
000000D0:  3F3E 0A3C 736F 6170 3A45 6E76 656C 6F70    '?>.<soap:Envelop'
000000E0:  6520 786D 6C6E 733A 786C 696E 6B3D 2268    'e xmlns:xlink="h'
000000F0:  7474 703A 2F2F 7777 772E 7733 2E6F 7267    'ttp://www.w3.org'
00000100:  2F54 522F 786C 696E 6B22 2078 6D6C 6E73    '/TR/xlink" xmlns'
...

That doesn't look like an MQRFH2 header. Where's the MQRFH2 header?

George Carey wrote:
This message lands on a queue OK with a V6 QMGR but when hopped to a v7 QMQR it gets sent to DLQ with "MQRC_RFH_ERROR" so where is the format error??

There's no MQRFH2 header. There ought to be one. That's an error.

The DLH should indicate the qmgr and queue name where the MQPUT failed; try to determine what the message looks like just before that point.
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 » MQRC_RFH_ERROR
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.