ASG
IBM
Zystems
Cressida
Icon
Netflexity
 
  MQSeries.net
Search  Search       Tech Exchange      Education      Certifications      Library      Info Center      SupportPacs      LinkedIn  Search  Search                                                                   FAQ  FAQ   Usergroups  Usergroups
 
Register  ::  Log in Log in to check your private messages
 
RSS Feed - WebSphere MQ Support RSS Feed - Message Broker Support

MQSeries.net Forum IndexGeneral DiscussionLosing special characters in transmit to mainframe

Post new topicReply to topic
Losing special characters in transmit to mainframe View previous topic :: View next topic
Author Message
manjo
PostPosted: Fri Nov 30, 2001 2:39 pm Post subject: Reply with quote

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
View user's profile Send private message
StefanSievert
PostPosted: Tue Dec 04, 2001 3:27 pm Post subject: Reply with quote

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
View user's profile Send private message
Cliff
PostPosted: Wed Dec 05, 2001 7:55 am Post subject: Reply with quote

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
View user's profile Send private message Send e-mail
manjo
PostPosted: Wed Dec 05, 2001 6:07 pm Post subject: Reply with quote

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
View user's profile Send private message
mjung
PostPosted: Thu Nov 07, 2002 6:00 pm Post subject: Reply with quote

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
View user's profile Send private message Send e-mail
PeterPotkay
PostPosted: Thu Nov 07, 2002 6:28 pm Post subject: Reply with quote

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
View user's profile Send private message
Display posts from previous:
Post new topicReply to topic Page 1 of 1

MQSeries.net Forum IndexGeneral DiscussionLosing special characters in transmit to mainframe
Jump to:



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
Protected by Anti-Spam ACP


Theme by Dustin Baccetti
Powered by phpBB 2001, 2002 phpBB Group

Copyright MQSeries.net. All rights reserved.