Author |
Message
|
sreekanth.sama |
Posted: Sat Sep 08, 2007 12:49 pm Post subject: Need help on Mq problem... Problem while send RFH values |
|
|
Newbie
Joined: 07 Sep 2007 Posts: 7
|
HI i am trying to send some RFH values through COBOL problem. But initiallu we were getting osme problem like the message is going to dead queue because of the return code 2112. Later on it got solved . So my message is going to my reply queue but when i browe the message using RFHUTILC i am getting error like
12.49.41 **Invalid RFH Length field** Next message (6) read from Queue.1 length=2074575
12.48.19 **Invalid RFH Length field** Next message (5) read from Queue.1 length=2074575
I am seding 100 bytes of MCD folder data and remaining 40 bytes is the header data. So total my RFH length is 140 bytes and my message length is 2074435.
So i feel that the length i am specifying is correct. But not sure why the erro ris coming can anyone help me on this.
In mycoding .. i am puting the rfh values like
My RFH Header
01 MQRFH.
15 MQRFH-STRUCID PIC X(4) VALUE 'RFH '.
15 MQRFH-VERSION PIC S9(9) BINARY VALUE 2.
15 MQRFH-STRUCLENGTH PIC S9(9) BINARY VALUE 140.
15 MQRFH-ENCODING PIC S9(9) BINARY VALUE 785.
15 MQRFH-CODEDCHARSETID PIC S9(9) BINARY VALUE 500.
15 MQRFH-FORMAT PIC X( VALUE 'MQSTR '.
15 MQRFH-FLAGS PIC S9(9) BINARY VALUE 0.
15 MQRFH-NAMEVALUECCSID PIC S9(9) BINARY VALUE 1208.
15 MQRFH-NAMEVALUELENGTH PIC S9(9) BINARY VALUE 100.
15 MQRFH-NAMEVALUEDATA.
15 MQRFH-NAMEVALUEDATA PIC X(100) VALUE
20 FILLER PIC X(100) VALUE
'<mcd><Msd>ABC</Msd><Set>ABCDEFO002001</Set><Type>msg_RESPMESSAGE 'FIRST11</Type><Fmt>ABC1</Fmt></mcd>'.
STRING MQRFH (RFH header and DATA)
Output-Data-1 DELIMITED BY SIZE
INTO Resp-Msg-1
and my MQPUT1 message is
CALL 'MQPUT1' USING W03-CONNECT-HANDLE
MQOD
MQMD
MQPMO
W03-ACTUAL-DATALEN
Resp-Msg-1
W03-COMPCODE
W03-REASON
Please help me on this. It is very urgent for me.
Thanks,
Sreekanth
w.sreek@gmail.com |
|
Back to top |
|
 |
Vitor |
Posted: Sat Sep 08, 2007 1:08 pm Post subject: |
|
|
 Grand High Poobah
Joined: 11 Nov 2005 Posts: 26093 Location: Texas, USA
|
I'd check the Application Programing Reference manual for the rules on the NameValueData and it's length. _________________ Honesty is the best policy.
Insanity is the best defence. |
|
Back to top |
|
 |
jefflowrey |
Posted: Sat Sep 08, 2007 2:34 pm Post subject: |
|
|
Grand Poobah
Joined: 16 Oct 2002 Posts: 19981
|
Also, I would strongly consider using the MQFMT_ constant for the MQRFH2 Header in your MQMD, rather than a hardcoded value. _________________ I am *not* the model of the modern major general. |
|
Back to top |
|
 |
sreekanth.sama |
Posted: Mon Sep 10, 2007 2:45 pm Post subject: HI |
|
|
Newbie
Joined: 07 Sep 2007 Posts: 7
|
Hi
My MQMD_FORMAT is set to MQHRF2. Today i did some more analysis. I manually added the RFH header values in RFHUTIL and write the output msg to mainframe queue. When i look in that file for length values and endcoing values. Every thing seems to be right and i am setting the same values in my pgm also. So I am not able to determine where it is going wrong. Now i am getting error 2119 - MQRC_NOT_CONVERTED.
Thanks,
Sreek... |
|
Back to top |
|
 |
jefflowrey |
Posted: Mon Sep 10, 2007 3:03 pm Post subject: |
|
|
Grand Poobah
Joined: 16 Oct 2002 Posts: 19981
|
The first thing to know about a 2119 is that it's a WARNING, not an ERROR.
Your data may be just fine.
It's hard to see what's going on from what you've posted. It seems like it's okay, but clearly something is wrong with your code somewhere.
It might, for example, be that you're setting the wrong CCSID/Enc on the MQMD or the header that precedes the MQRFH2.
It might, for example, be that the data that follows the MQRFH2 is not actually in the CCSID that you set. Or you might have an invalid CCSID in NameValueCCSID (although it looks like it's a valid value, it might not match the data you're putting into NameValue pairs). _________________ I am *not* the model of the modern major general. |
|
Back to top |
|
 |
sreekanth.sama |
Posted: Mon Sep 10, 2007 5:37 pm Post subject: HI |
|
|
Newbie
Joined: 07 Sep 2007 Posts: 7
|
Hi..
I am getting 2119, But the message is not going to the reply queue instead it is going to mainframe dead letter queue. i am putting MQMD encoding as 785 and MQMD Codedcharset id as zero. But when i browse the message in RFHUTILC i saw the code page is set to 819. it lookslike the ocnversion is happening in channel. So our support people changed the conversion to 500 instead of 819. Then i added my RFH values again and i am able to see the message in the o/p queue. but it is giving error like. INVALID RFH LENGTH VARIABLE. More over when we change the channnel conversion i can able to understand the message wht eve i am seing in the rfhutilc. It looks like some junk values. By looking at HEX values only i am able tofind my data.
So my doubt is if the problem is with channel conversion at least it should acceot the msg with out error after changing the channel conversion to 500. But it is still giving the RFH LENGTH INVALID error. i check the rfh structure and the length. It looks correct to me. Please help m won this.
Thanks,
Sreek... |
|
Back to top |
|
 |
fjb_saper |
Posted: Mon Sep 10, 2007 7:21 pm Post subject: |
|
|
 Grand High Poobah
Joined: 18 Nov 2003 Posts: 20756 Location: LI,NY
|
Well if you had read the manual you would know following facts
For the value pair CCSID a very restricted number of values are legal.
The length of the property value pairs section is always a multiple of 4.(byte allignment)
Enjoy  _________________ MQ & Broker admin |
|
Back to top |
|
 |
sreekanth.sama |
Posted: Mon Sep 10, 2007 9:00 pm Post subject: HI |
|
|
Newbie
Joined: 07 Sep 2007 Posts: 7
|
yeah .. you are correct. But i am using 1208 as my CCSID, which is a valid value, and the length of my RFH is 140, the name value data length is 100 bytes. these are multiples of 4. i pasted my RFH copybook in my first message.
But Still i have the problem.
Thanks,
Sreek..... |
|
Back to top |
|
 |
Nigelg |
Posted: Mon Sep 10, 2007 9:43 pm Post subject: |
|
|
Grand Master
Joined: 02 Aug 2004 Posts: 1046
|
The StrucLength is wrong. You have set it to 140; the actual length in the msg is MQRFH_STRUC_LENGTH_FIXED_2 (36) + the length of the name/value pairs, which you have set to 100, total 136. _________________ MQSeries.net helps those who help themselves.. |
|
Back to top |
|
 |
EddieA |
Posted: Tue Sep 11, 2007 9:50 am Post subject: |
|
|
 Jedi
Joined: 28 Jun 2001 Posts: 2453 Location: Los Angeles
|
Nigelg wrote: |
The StrucLength is wrong. You have set it to 140; the actual length in the msg is MQRFH_STRUC_LENGTH_FIXED_2 (36) + the length of the name/value pairs, which you have set to 100, total 136. |
The manual states:
Quote: |
This is the length in bytes of the MQRFH2 structure, including the NameValueLength and NameValueData fields at the end of the structure. |
The NameValueLength which does NOT include itself, is 4 and the NameValueData is 100, so 36 + 4 + 100 = 140.
Cheers. _________________ Eddie Atherton
IBM Certified Solution Developer - WebSphere Message Broker V6.1
IBM Certified Solution Developer - WebSphere Message Broker V7.0 |
|
Back to top |
|
 |
EddieA |
Posted: Tue Sep 11, 2007 9:52 am Post subject: Re: Need help on Mq problem... Problem while send RFH values |
|
|
 Jedi
Joined: 28 Jun 2001 Posts: 2453 Location: Los Angeles
|
sreekanth.sama wrote: |
20 FILLER PIC X(100) VALUE
'<mcd><Msd>ABC</Msd><Set>ABCDEFO002001</Set><Type>msg_RESPMESSAGE 'FIRST11</Type><Fmt>ABC1</Fmt></mcd>'. |
Shouldn't that field be in UTF-8, not EBCDIC.
Cheers. _________________ Eddie Atherton
IBM Certified Solution Developer - WebSphere Message Broker V6.1
IBM Certified Solution Developer - WebSphere Message Broker V7.0 |
|
Back to top |
|
 |
sreekanth.sama |
Posted: Tue Sep 11, 2007 1:31 pm Post subject: HI |
|
|
Newbie
Joined: 07 Sep 2007 Posts: 7
|
I tried with UTF-8 chars also. But the problem is same. I am giving a sample of my output., this output i got when i send it to my mainframe queue instead of AIX queue.
R F H ð 4 MQSTR ½ À<
D C C 4 4440 4448 4401 000F DDEED444 4444 440B 4446
9 6 8 0 0002 000C 0031 0014 48 239 000 0000 0048 0004
the length is 8C - 140
the encoding is 811
the ccsid is 500 ( actually i set it to -2, but in o/p it is coming as 500)
here when the length is 140 the value should be 0000008C. but my putput is coming as 4040408C. the same is happening to encoding but the CCSID is coreect (000001F4). I am not srure whether this is the problem or not.
Sreek...[/quote] |
|
Back to top |
|
 |
sreekanth.sama |
Posted: Tue Sep 11, 2007 1:32 pm Post subject: |
|
|
Newbie
Joined: 07 Sep 2007 Posts: 7
|
a typo mistake.. the encoding is hex-311 (actual value is 785)
RFH ð 4MQSTR ½ À
DCC4444044484401000FDDEED4444444440B4446
96800002000C0031001448239000000000480004 |
|
Back to top |
|
 |
jefflowrey |
Posted: Tue Sep 11, 2007 1:46 pm Post subject: |
|
|
Grand Poobah
Joined: 16 Oct 2002 Posts: 19981
|
40 is the hex value for spaces.
You need to pad your numeric fields with 0s, not spaces. _________________ I am *not* the model of the modern major general. |
|
Back to top |
|
 |
sreekanth.sama |
Posted: Tue Sep 11, 2007 4:02 pm Post subject: |
|
|
Newbie
Joined: 07 Sep 2007 Posts: 7
|
Jef..
Ur correct it was giving 40 in stead of 00. I found where the problem and i made it as zeros. Now the values are populating.
Thank you very much to every one for your help.
Sreek... |
|
Back to top |
|
 |
|