|
RSS Feed - WebSphere MQ Support
|
RSS Feed - Message Broker Support
|
 |
|
CCSID in the MQIIH header |
« View previous topic :: View next topic » |
Author |
Message
|
Herbert |
Posted: Thu Feb 03, 2011 6:26 am Post subject: CCSID in the MQIIH header |
|
|
 Centurion
Joined: 05 Dec 2006 Posts: 146 Location: Leersum, The Netherlands
|
Hi,
I have a discussion here about the CodedCharSetId field in the last MQ header.
WMB receives below message with 2 MQ headers.
- MQMD with 500 in the CodedCharSetId field
- MQIIH with 0 in the CodedCharSetId field
- DATA
The WMB flow retrieves it as BLOB, later there is a ResetContentDescriptor for the actual message-set/etc needed.
If I look at the message with debug after WMB did get it as BLOB and before the ResetContentDescriptor, then I see that Root.Properties.CodedCharSetId is 0.
In this case where there are 2 MQ headers, I think the situation is:
- The CCSID in the MQMD is telling that the MQIIH is in codepage 500
- The CCISD in the MQIIH must tell what the codepage of the following data is.
So it's correct that WMB places 0 in the Root.Properties.CodedCharSetId field, it just takes the CCSID field from the last MQ header. The CCSID field in the last MQ header tells what codepage the data has.
The problem is that later on when the BLOB is parsed to the message-definition from the ResetContentDescriptor WMB does not know the CCSID of the BLOB anymore, and it goes wrong.
IMHO WMB works correctly and the party that sends this message to WMB must also set the correct CCSID in the MQIIH header.
Is this statement correct ?
Kind Regards, Herbert |
|
Back to top |
|
 |
fjb_saper |
Posted: Thu Feb 03, 2011 7:00 am Post subject: Re: CCSID in the MQIIH header |
|
|
 Grand High Poobah
Joined: 18 Nov 2003 Posts: 20756 Location: LI,NY
|
Herbert wrote: |
Hi,
I have a discussion here about the CodedCharSetId field in the last MQ header.
WMB receives below message with 2 MQ headers.
- MQMD with 500 in the CodedCharSetId field
- MQIIH with 0 in the CodedCharSetId field
- DATA
The WMB flow retrieves it as BLOB, later there is a ResetContentDescriptor for the actual message-set/etc needed.
If I look at the message with debug after WMB did get it as BLOB and before the ResetContentDescriptor, then I see that Root.Properties.CodedCharSetId is 0.
In this case where there are 2 MQ headers, I think the situation is:
- The CCSID in the MQMD is telling that the MQIIH is in codepage 500
- The CCISD in the MQIIH must tell what the codepage of the following data is.
So it's correct that WMB places 0 in the Root.Properties.CodedCharSetId field, it just takes the CCSID field from the last MQ header. The CCSID field in the last MQ header tells what codepage the data has.
The problem is that later on when the BLOB is parsed to the message-definition from the ResetContentDescriptor WMB does not know the CCSID of the BLOB anymore, and it goes wrong.
IMHO WMB works correctly and the party that sends this message to WMB must also set the correct CCSID in the MQIIH header.
Is this statement correct ?
Kind Regards, Herbert |
A CCSID code of 0 usually means the qmgr's CCSID. That works fine and dandy when you don't have and additional header. Now as you've seen with the additional header (MQIIH) things are a little bit different and you will need to have the sending app change to put the correct CCSID in the MQIIH header.
From your example I would try to see if CCSID 500 will work... but be advised that the MF in question might be running a different CCSID than MQ...(like 37)
Have fun  _________________ MQ & Broker admin |
|
Back to top |
|
 |
Herbert |
Posted: Thu Feb 03, 2011 11:58 pm Post subject: Re: CCSID in the MQIIH header |
|
|
 Centurion
Joined: 05 Dec 2006 Posts: 146 Location: Leersum, The Netherlands
|
fjb_saper wrote: |
Herbert wrote: |
...
WMB receives below message with 2 MQ headers.
- MQMD with 500 in the CodedCharSetId field
- MQIIH with 0 in the CodedCharSetId field
- DATA
... |
...
you will need to have the sending app change to put the correct CCSID in the MQIIH header.
... |
Thanks for your response. The MF developer claims it is standaard IMS Bridge Software and he can not change this.
I have now fixed it with a small compute node, where I fill OutputRoot.Properties.CodedCharSetId from InputRoot.MQMD.CodedCharSetId |
|
Back to top |
|
 |
rekarm01 |
Posted: Fri Feb 04, 2011 1:13 am Post subject: Re: CCSID in the MQIIH header |
|
|
Grand Master
Joined: 25 Jun 2008 Posts: 1415
|
MQPUT normally replaces ccsids like MQCCSI_Q_MGR and MQCCSI_INHERIT with the actual ccsid during the put, but the CodedCharSetID for MQIIH is defined differently from the other MQ headers:
Quote: |
This is a reserved field; its value is not significant. The initial value of this field is 0 |
It looks like the WMB MQIIH parser and Properties parser doesn't handle this properly.
The InfoCenter contains some sample code which illustrates how to handle messages with MQIIH headers. |
|
Back to top |
|
 |
Herbert |
Posted: Fri Feb 04, 2011 4:56 am Post subject: Re: CCSID in the MQIIH header |
|
|
 Centurion
Joined: 05 Dec 2006 Posts: 146 Location: Leersum, The Netherlands
|
rekarm01 wrote: |
...
but the CodedCharSetID for MQIIH is defined differently from the other MQ headers:
Quote: |
This is a reserved field; its value is not significant. The initial value of this field is 0 |
It looks like the WMB MQIIH parser and Properties parser doesn't handle this properly. |
wow, indeed a big exception, from the same page
Quote: |
The Character Set Id for supported structures which follow a MQIIH structure is the same as that of the MQIIH structure itself and taken from any preceding MQ header. |
Then WMB is wrong by taking the CCSID field from the MQIIH header for its Properties.CodedCharSetId, and it should also not set this field when generating a MQIIH header, so below example code is also wrong.
Code: |
SET OutputRoot.MQIIH.Encoding = 785;
SET OutputRoot.MQIIH.CodedCharSetId = 500; |
Its also done on below url:
http://www.ibm.com/developerworks/websphere/library/techarticles/0709_suarez/0709_suarez.html |
|
Back to top |
|
 |
|
|
 |
|
Page 1 of 1 |
|
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
|
|
|
|