Author |
Message
|
cicsprog |
Posted: Wed May 09, 2007 1:04 pm Post subject: Setting MQMD_CODEDCHARSETID |
|
|
Partisan
Joined: 27 Jan 2002 Posts: 347
|
First off I did search the forum (wrong bait maybe) and looked at the MQ Manuals. I don't think the API manuals spell my question out too clearly or I'm misinterpreting them. Also, I do little API coding. Only when I really have to .
That said, here's the issue. It's the “[“ and “]” convert issue when a message comes from UNIX MQ to z/OS MQ. Codepage default is CCSID 500 on z/OS MQ. So “[“ and “]” are not interpreted probably on the MQGET with CONVERT. If the application program move 037 into MQMD_CODEDCHARSETID before the MQGET, will the 037 codepage be used instead of the 500?
This clip from the MQ Application Programming Reference leads me to believe it does:
The MQGET call is issued directly by the application. Set the CodedCharSetId and Encoding fields in the MQMD to the character set and encoding required. If your application is using the same character set and encoding as the queue manager, you can set CodedCharSetId to MQCCSI_Q_MGR, and Encoding to MQENC_NATIVE. After the MQGET call completes, these fields have the values appropriate to the message data returned. These may differ from the values required if the conversion was not successful. Your application should reset these fields to the values required prior to each MQGET call. |
|
Back to top |
|
 |
fjb_saper |
Posted: Wed May 09, 2007 2:06 pm Post subject: |
|
|
 Grand High Poobah
Joined: 18 Nov 2003 Posts: 20756 Location: LI,NY
|
Quote: |
If the application program move 037 into MQMD_CODEDCHARSETID before the MQGET, will the 037 codepage be used instead of the 500? |
What you want the application to do is leave the message alone but enter 037 as the CCSID in the qmgr object.
Now if your message format is MQFMT_STRING all you need to do is a GET with Convert.
Enjoy
[edit] added the word "format" in message format for clarification[/edit] _________________ MQ & Broker admin
Last edited by fjb_saper on Wed May 09, 2007 2:35 pm; edited 1 time in total |
|
Back to top |
|
 |
cicsprog |
Posted: Wed May 09, 2007 2:21 pm Post subject: |
|
|
Partisan
Joined: 27 Jan 2002 Posts: 347
|
Could you elaborate just a bit more....tanks! |
|
Back to top |
|
 |
fjb_saper |
Posted: Wed May 09, 2007 2:33 pm Post subject: |
|
|
 Grand High Poobah
Joined: 18 Nov 2003 Posts: 20756 Location: LI,NY
|
cicsprog wrote: |
Could you elaborate just a bit more....tanks! |
not an MF person... Check with your friendly MF support they should be able to point you in the right direction.  _________________ MQ & Broker admin |
|
Back to top |
|
 |
Nigelg |
Posted: Wed May 09, 2007 11:22 pm Post subject: |
|
|
Grand Master
Joined: 02 Aug 2004 Posts: 1046
|
Quote: |
If the application program move 037 into MQMD_CODEDCHARSETID before the MQGET, will the 037 codepage be used instead of the 500? |
Yes. The default value for CodedCharSetId is MQCCSI_Q_MGR, i.e. the code page that the data will be converted to is the CCSID of the qmgr. You can request that conversion be done to any other code page by doing as you propose. _________________ MQSeries.net helps those who help themselves.. |
|
Back to top |
|
 |
cicsprog |
Posted: Thu May 10, 2007 5:57 am Post subject: |
|
|
Partisan
Joined: 27 Jan 2002 Posts: 347
|
fjb_saper said:
“Check with your friendly MF support they should be able to point you in the right direction.”
That would be me - I'm the MQ Admin!
What I think you are telling me fjb_saper is to change the Queue Managers CCSID to 037. Unfortunately I can’t. There are 50+ other applications using that MQM. Some of those apps have compensated for the bracket issue in their code.
Thanks Nigelg, that is what I thought. I’ll do a test of my own today. Now where are my COBOL coding sheets?  |
|
Back to top |
|
 |
fjb_saper |
Posted: Thu May 10, 2007 12:03 pm Post subject: |
|
|
 Grand High Poobah
Joined: 18 Nov 2003 Posts: 20756 Location: LI,NY
|
cicsprog wrote: |
What I think you are telling me fjb_saper is to change the Queue Managers CCSID to 037. |
There seems to be a big confusion here.
What I said was to set CCSID to 037 on the qmgr object i.e. when you declare the qmgr in the program...
This is completely different from changing the CCSID of the qmgr.
Have your programmer take a look at their code and find if there is a way to do that. Then check out the results.
Enjoy  _________________ MQ & Broker admin |
|
Back to top |
|
 |
cicsprog |
Posted: Thu May 10, 2007 12:05 pm Post subject: |
|
|
Partisan
Joined: 27 Jan 2002 Posts: 347
|
GREAT! I'll tell them...thanks for the input! |
|
Back to top |
|
 |
|