Author |
Message
|
gilc |
Posted: Tue Nov 13, 2012 12:57 am Post subject: Put error when MQRFH2 exists with utf-16 message |
|
|
Apprentice
Joined: 17 Mar 2011 Posts: 32
|
Hi everyone,
Been trying to work out this issue for some time now, searching every post in this subject here.... and something tells me the solution is so obvious and I'm just missing a little something...
So first the details: wmb 7.0.0.4 on AIX
I have a message in utf-16 coding (CCSID 1202 to be exact) that need to be added with MQRFH2 header, adding usr data.
When trying to put the message in a queue I get the error String too long to convert.
Now CCSID property for MQMD, Properties and the MQRFH2 headers are all set to 1202. Furthermore, the NameValueCCSID is also set to that value.
I will add that the code for adding the MQRFH2 header is generic and so other messages are passed ok, ones with different coding (1208 and 424).
Anyone has a suggestion on what's going on?
Many thanks,
~ Gil |
|
Back to top |
|
 |
fjb_saper |
Posted: Tue Nov 13, 2012 5:56 am Post subject: |
|
|
 Grand High Poobah
Joined: 18 Nov 2003 Posts: 20756 Location: LI,NY
|
wrong buffer length?  _________________ MQ & Broker admin |
|
Back to top |
|
 |
gilc |
Posted: Tue Nov 13, 2012 6:23 am Post subject: |
|
|
Apprentice
Joined: 17 Mar 2011 Posts: 32
|
I add the MQRFH2 header using a compute node. It's not a C/Java/other program which builds the new message. And as for my knowledge (correct me if I'm wrong) the broker itself recalculates the new buffer length of the message.... |
|
Back to top |
|
 |
gilc |
Posted: Tue Nov 13, 2012 6:44 am Post subject: |
|
|
Apprentice
Joined: 17 Mar 2011 Posts: 32
|
ugh... I just now realized I posted this question in the wrong forum....
If one of the admins could please move it to Message Broker Support.
Thanks and sorry for the trouble...
EDIT by exerk: Done, and it was no trouble. |
|
Back to top |
|
 |
lancelotlinc |
Posted: Tue Nov 13, 2012 7:24 am Post subject: |
|
|
 Jedi Knight
Joined: 22 Mar 2010 Posts: 4941 Location: Bloomington, IL USA
|
|
Back to top |
|
 |
gilc |
Posted: Tue Nov 13, 2012 8:09 am Post subject: |
|
|
Apprentice
Joined: 17 Mar 2011 Posts: 32
|
Thanks for the reply
Hmmm as you thought, my sysadmin didn't change the borker effective level... So now it's done and... still not working (But still was an important thing to do) |
|
Back to top |
|
 |
lancelotlinc |
Posted: Tue Nov 13, 2012 8:10 am Post subject: |
|
|
 Jedi Knight
Joined: 22 Mar 2010 Posts: 4941 Location: Bloomington, IL USA
|
If you have been trained on the WMB product, you can open a PMR to request step-by-step assistance. There may still be a bug related to the link I posted above. _________________ http://leanpub.com/IIB_Tips_and_Tricks
Save $20: Coupon Code: MQSERIES_READER |
|
Back to top |
|
 |
gilc |
Posted: Tue Nov 13, 2012 8:39 am Post subject: |
|
|
Apprentice
Joined: 17 Mar 2011 Posts: 32
|
yep been working with WMB for several years now... and was afraid you were going to suggest that.
oh well, thanks a lot for the help! |
|
Back to top |
|
 |
rekarm01 |
Posted: Tue Nov 13, 2012 9:09 am Post subject: Re: Put error when MQRFH2 exists with utf-16 message |
|
|
Grand Master
Joined: 25 Jun 2008 Posts: 1415
|
gilc wrote: |
When trying to put the message in a queue I get the error String too long to convert.
Now CCSID property for MQMD, Properties and the MQRFH2 headers are all set to 1202. Furthermore, the NameValueCCSID is also set to that value. |
What is the complete error message (including BIP error number)?
NameValueCCSID must be either 1200, or 1208, (or 13488, or 17584). It shouldn't be 1202. |
|
Back to top |
|
 |
PeterPotkay |
Posted: Tue Nov 13, 2012 9:38 am Post subject: |
|
|
 Poobah
Joined: 15 May 2001 Posts: 7722
|
lancelotlinc wrote: |
If you have been trained on the WMB product, you can open a PMR to request step-by-step assistance. There may still be a bug related to the link I posted above. |
You can open PMRs even if you haven't been trained on the WMB product. _________________ Peter Potkay
Keep Calm and MQ On |
|
Back to top |
|
 |
lancelotlinc |
Posted: Tue Nov 13, 2012 9:44 am Post subject: |
|
|
 Jedi Knight
Joined: 22 Mar 2010 Posts: 4941 Location: Bloomington, IL USA
|
PeterPotkay wrote: |
lancelotlinc wrote: |
If you have been trained on the WMB product, you can open a PMR to request step-by-step assistance. There may still be a bug related to the link I posted above. |
You can open PMRs even if you haven't been trained on the WMB product. |
You can open them, but IBM is not obliged to service them.
IBM is not required to respond to requests for support from a customer who has not attended the requisite training.
Quote: |
After trying to find your answer or solution by using other self-help options such as technotes, you can contact IBM Support. Before contacting IBM Support, your company must have an active IBM maintenance contract, and you must be authorized to submit problems to IBM.
When contacting IBM Software Support it is important to understand what support is available through IBM:
Specific product questions: If you have been trained on the product, you can submit specific questions or concerns.
Requests that are not within the scope of IBM Software Support and require you to contact either your Sales or Professional Services representative:
Support for untrained customers: Requests for step by step IBM help but do not have the required IBM product training. IBM Education offers customer training if additional staff training is needed. Please check the IBM Web site for specific information about available courses.
|
_________________ http://leanpub.com/IIB_Tips_and_Tricks
Save $20: Coupon Code: MQSERIES_READER |
|
Back to top |
|
 |
gilc |
Posted: Wed Nov 14, 2012 12:32 am Post subject: Re: Put error when MQRFH2 exists with utf-16 message |
|
|
Apprentice
Joined: 17 Mar 2011 Posts: 32
|
rekarm01 wrote: |
What is the complete error message (including BIP error number)?
|
There it is:
Code: |
BIP2133E: Source field '0052004600480020' is too long for a target field of length '4' when converting from Unicode to codepage '1202'. |
And I will add that this error doesn't occur if I remove the MQRFH2 header before putting the message.
rekarm01 wrote: |
NameValueCCSID must be either 1200, or 1208, (or 13488, or 17584). It shouldn't be 1202. |
You're totally right... I mislead you, we're not updating the NameValueCCSID in that flow.... |
|
Back to top |
|
 |
mqsiuser |
Posted: Wed Nov 14, 2012 1:15 am Post subject: Re: Put error when MQRFH2 exists with utf-16 message |
|
|
 Yatiri
Joined: 15 Apr 2008 Posts: 637 Location: Germany
|
"0052004600480020" is HEX and with a hex decoder you get "�R�F�H� ".
That are 8 Bytes (and it is the UTF-16 encoding of the string "RFH "). And that is too long for your target-field.
Because it (the target field) expects 4 Bytes: It expects the UTF-8 encoding (or 8 bit american ASCII).
Luckily the 8 bit ASCII encoding of the CHARACTERS (character sequence) "RFH " is "RFH " (which is "52464820" in HEX).
The encoding only applies to the payload/body not the headers (MQMD, RFH) (and/or any of its values) !?!
The headers (MQMD, RFH, RFH2) always use 8 bit american ASCII ?!
(I am not 100% sure with that) _________________ Just use REFERENCEs |
|
Back to top |
|
 |
rekarm01 |
Posted: Wed Nov 14, 2012 2:13 am Post subject: Re: Put error when MQRFH2 exists with utf-16 message |
|
|
Grand Master
Joined: 25 Jun 2008 Posts: 1415
|
The declared fields in an MQ header have fixed byte lengths. The character fields in the MQRFH2 header (other than NameValueData) should consist of single-byte characters. Typically, the character set and encoding of the MQMD is defined by the queue manager, and the character set and encoding of each subsequent portion of the message is defined in the preceding header. So, for:MQMD -> MQRFH2 (+ NameValueData) -> message body
the qmgr ccsid (which describes the MQMD character fields) and the MQMD.ccsid (which describes the declared MQRFH2 character fields) must have "single-byte characters for the characters that are valid in queue names".
The NameValueCCSID (which describes the NameValueData) must be 1200, 1208, (or 13488, or 17584), and the MQRFH2.ccsid (which describes the message body) can use any supported code page. |
|
Back to top |
|
 |
mqsiuser |
Posted: Wed Nov 14, 2012 2:14 am Post subject: Re: Put error when MQRFH2 exists with utf-16 message |
|
|
 Yatiri
Joined: 15 Apr 2008 Posts: 637 Location: Germany
|
gilc wrote: |
when converting from Unicode to codepage '1202'. |
That is UTF-16 LE with IBM PUA _________________ Just use REFERENCEs |
|
Back to top |
|
 |
|