|
RSS Feed - WebSphere MQ Support
|
RSS Feed - Message Broker Support
|
  |
|
Losing special characters in transmit to mainframe |
View previous topic :: View next topic |
Author |
Message
|
manjo |
Posted: Fri Nov 30, 2001 2:39 pm Post subject: |
|
|
Novice
Joined: 29 Nov 2001 Posts: 15
|
I saw an earlier post about someone losing special characters, but it involved HTML.
I am sending data to a queue from a Perl program via PUTMQ. I can view the data on the queue via MQ explorer and everything is intact.
This data then gets sent (through architecture beyond my knowledge involving channels, etc.) to our mainframe (IBM-OS/390). When I view the data on the queue on the mainframe side (via CICS command MQMM) some special characters are lost or garbled.
Someone said a parameter called CONVERT should be set to YES and it is.
Have you ever heard of this happening and have any idea how to resolve it?
Here is an example of before and after data:
Sent from CS: Expletives --> !@#$%^&*()_+
Received MF: Expletives -- %; ()_+
Any help would be appreciated. Let me know if you need mroe info.
Thanks,
Margaret Andrews
[ This Message was edited by: manjo on 2001-11-30 14:40 ]
[ This Message was edited by: manjo on 2001-11-30 14:40 ]
[ This Message was edited by: manjo on 2001-11-30 14:41 ] |
|
Back to top |
|
 |
StefanSievert |
Posted: Tue Dec 04, 2001 3:27 pm Post subject: |
|
|
 Partisan
Joined: 28 Oct 2001 Posts: 333 Location: San Francisco
|
Margeret,
it looks like a code page problem to me. What is the source platform and programming language?
What code page are you using when putting the message?
Which API do you use (C, COBOL, AMI, JMS ...)?
You have to make sure, that MQ is able to correctly convert from your source code page to the target code page.
Are you using convert on the sender channel to the mainframe or on the MQGET in the receiving application?
Please provide more details.
Thanks,
Stefan
_________________ Stefan Sievert
IBM Certified * WebSphere MQ |
|
Back to top |
|
 |
Cliff |
Posted: Wed Dec 05, 2001 7:55 am Post subject: |
|
|
Centurion
Joined: 27 Jun 2001 Posts: 145 Location: Wiltshire
|
MQSeries will perform character translation according to its translate tables perfectly correctly, which is not necessarily the same as what you actually want! We had a similar issue at the site I am working at a little while ago, when a 'special' character used as a field delimiter wasn't being displayed as expected. I sent a few messages around and this is the result:
Sent from OS/390 QMgr SMQ1, CCSID 500:
ISPF view
ABC123!"£$%^&*()_+{}[]:@~;'#<>?,./¦¬`|
CCCFFF57546B554564CDBB77B5774666466E574
123123AFBACA0CDDDE001BACCEDBCEFBB1A0F9F
SDSF view
ABC123!"£$% &*()_+{} :@ ;'#<>?,./¦¬`|
CCCFFF57546B554564CDBB77B5774666466E574
123123AFBACA0CDDDE001BACCEDBCEFBB1A0F9F
Arrives on Win2K QMgr TMQ002, CCSID 850:
ABC123]"$[%ª&*()_+{}œ|:@î;'#<>?,./Ý^`!
44433352252A222252779734E322333222D5562
123123D24B5A6A89FBBDCCA0EB73CEFCEFDCE01
Interestingly, SDSF does not display tildes!
Sent from Win2K QMgr TMQ002:
ABC123!"£$%^&*()_+{}[]:@~;'#<>?,./¦¬`|
44433322A2252222527755347322333222A5A67
12312312345E6A89FBBDBDA0EB73CEFCEF6CC0C
Arrives on OS/390 QMgr SMQ1:
ABC123|" £%¬&*()_+{}$!:@¯;'#<>?,./ `
CCCFFF47D565554564CD4577A5774666469EB7B
123123FFEBCF0CDDDE00AAAC1EDBCEFBB1A079B
Arrives on AIX from OS/390:
ABC123]"$[%¬&*()_+{}£|:@¯;'#<>?,./¦^`!
Arrives on AIX from Win2K:
ABC123!"ú$%^&*()_+{}[]:@~;'#<>?,./ª¼`|
'Special' characters which translate and display exactly the same are:
" % & * ( ) _ + { } : @ ; ' # < > ? , . / `
Hope this helps...
Cliff
|
|
Back to top |
|
 |
manjo |
Posted: Wed Dec 05, 2001 6:07 pm Post subject: |
|
|
Novice
Joined: 29 Nov 2001 Posts: 15
|
Well, I guess my particular problem is turning into a data conversion issue. We're not exactly "losing" the special characters. The data comes across in ASCII format and the mainframe COBOL program that reads the queue and displays the data wants to read EBCDIC and in the confusion, garbage is displayed.
The question is how do you successfully convert an ASCII message to EBCDIC when sending from a Unix server to IBM OS390?
I think I interpret the MQSeries Manuals to say that in order to convert the data on the client-server side, you must set CONVERT(YES) on the channel and specify Format=MQFMT_STRING when constructing the MQMD (msg descriptor). If this is true, can someone please show me an example of the syntax of how you set this Format in a Perl program?
For example, if $msgDesc is the message descriptor parm of the MQPUT statement, what would be the Perl syntax to set the format to MQFMT_STRING?
Thanks,
Margaret
p.s. sorry to have not answered your questions, but I'm not sure if they are relevant now.
[ This Message was edited by: manjo on 2001-12-05 18:08 ]
[ This Message was edited by: manjo on 2001-12-05 18:09 ] |
|
Back to top |
|
 |
mjung |
Posted: Thu Nov 07, 2002 6:00 pm Post subject: |
|
|
Newbie
Joined: 12 Nov 2001 Posts: 8 Location: Merrill Lynch
|
I believe you can do the convert by specifying the convert option on the MQREAD instead of doing it on the sender channel. |
|
Back to top |
|
 |
PeterPotkay |
Posted: Thu Nov 07, 2002 6:28 pm Post subject: |
|
|
 Poobah
Joined: 15 May 2001 Posts: 7722
|
On the MQPUT, specify the message format as MQSTR.
Forget converting with the channel.
On the MQGET ask, for the MQGMO_CONVERT option.
The GET will convert the message to the CCSID of the local queue manager. The default with MQ is 500 for the mainframe, which is International EBCIDIC. Maybe try 037, which is US EBCIDIC. _________________ Peter Potkay
Keep Calm and MQ On |
|
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
|
|
|
|