In my thread on mqseries.net on this same topic, someone suggested converting the message to 037 before sending it to the mainframe, and leaving the MQIIH.Format field as its default value of MQFMT_NONE. This should cause the OTMA bridge to skip a conversion attempt and the message will be handed to the IMS application in CCSID 037, with the ! represented as x5A. It would involve a detour thru WMB or Datapower before going to the mainframe QM so that the conversion from 437 to 037 can be done by one of them, but if the business case insists on sending an exclamation point, this might be the best option all things considered.
Peter Potkay
From: MQSeries List [mailto:***@LISTSERV.MEDUNIWIEN.AC.AT] On Behalf Of Edenfield, Lee
Sent: Thursday, August 22, 2013 1:21 PM
To: ***@LISTSERV.MEDUNIWIEN.AC.AT
Subject: Re: Here we go again - ! on the mainframe
If the only thing we can modify here is the receiving application, then a technically correct solution using MQ would be to have the receiving application get the message from the bridge in CCSID 500, put it to a queue as CCSID 500 and format MQSTR, then get it back again with Convert specifying CCSID 37 in the MQMD.
If the only thing we can modify is the sending application, then we are out of luck without some sort of âhackâ.
The issue remains that OTMA uses the queue manager default (CCSID 500) but the application is expecting data encoded as CCSID 037.
The only technically sound solutions are:
1-change the queue manager default to 037
2-modify the receiving application to properly handle CCSID 500.
Lee Edenfield, HagemeyerNA (843.745.2477)
From: MQSeries List [mailto:***@LISTSERV.MEDUNIWIEN.AC.AT] On Behalf Of Potkay, Peter M (CTO Architecture + Engineering)
Sent: Thursday, August 22, 2013 12:41 PM
To: ***@LISTSERV.MEDUNIWIEN.AC.AT<mailto:***@LISTSERV.MEDUNIWIEN.AC.AT>
Subject: Re: Here we go again - ! on the mainframe
Art,
Good olâ OTMA ;-)
Do you think setting up a dedicated SNDR/RCVR channel with Convert yes would help here? I suspect not.
The sending QM (Windows 437) would convert the message to the destination QM (z/OS 500) if the channel had convert on. All that would do is move the conversion from 437 to 500 up in the flow. The message would still be handed to the bridge, but now the bridge would skip conversion because it saw the MQMD CCSID is already in its native 500, so it would pass the message to IMS and weâre back where we started â the app running as 037 would see the x4F as a | and not what we intended, the !
Leeâs devious hack of converting the message to 037 ahead of time in the mid tier (to get an ! represented as x5A) but labeling it as 500 (to trick the OTMA to skip conversion) seems to be the only way to get the ! into the mainframe if we are stuck with a 037 mainframe hosting a QM running as 500.
Other options include getting the app to not send an !.
Or, try to figure out what does convert to x5A in 500 from 437 and place that in the message. Another particularly ugly hack.
Peter Potkay
From: MQSeries List [mailto:***@LISTSERV.MEDUNIWIEN.AC.AT] On Behalf Of Schanz, Arthur
Sent: Thursday, August 22, 2013 11:34 AM
To: ***@LISTSERV.MEDUNIWIEN.AC.AT<mailto:***@LISTSERV.MEDUNIWIEN.AC.AT>
Subject: Re: Here we go again - ! on the mainframe
Peter â
Another OTMA-related âchallengeâ? ;-)
As you know, the receiving âapplicationâ for msgs destined for IMS via OTMA is the Bridge. You correctly state that there is no place to configure a different CCSID (or even MQGET w/ Convert) in this flow, as the WMQ MF subsystem is acting as the OTMA client.
What we do (and have done for quite some time) is to have the MCA (channel) handle the conversion for us. While this is not a popular choice for other msg flows where âreceiver makes goodâ is possible, it is a very viable option for msgs destined for IMS via OTMA.
I know we have discussed this previously, although in a slightly different context; however, the conversion choices for msgs headed to IMS are limited. The conversion will cause the chars to ultimately be displayed in the MF defined CCSID, so you need to âset-upâ the data on the sending side to allow for that.
As always, Good Luck!
Art
________________________________
[National IT Services]Arthur Schanz
Distributed Computing Spec
Messaging and File Transfer
701 East Byrd Street
Richmond, VA 23219
Phone: 804.697.3889
Cell: 804.640.3132
Email: ***@frit.frb.org<mailto:***@frit.frb.org>
[National IT Green Logo]
[CertWS_color]
From: MQSeries List [mailto:***@LISTSERV.MEDUNIWIEN.AC.AT] On Behalf Of Potkay, Peter M (CTO Architecture + Engineering)
Sent: Thursday, August 22, 2013 11:15 AM
To: ***@LISTSERV.MEDUNIWIEN.AC.AT<mailto:***@LISTSERV.MEDUNIWIEN.AC.AT>
Subject: Re: Here we go again - ! on the mainframe
Bah, I knew it was too easy to be true.
I double checked the queue the app is using - there is an MQ IMS OTMA Bridge involved. Doubt there is a way to have it selectively use 037 on its MQGETs.
Maybe we need to detour the message into WMB or DataPower XI50 and have them convert the message into 037 before forwarding to the mainframe bridge queue?
Peter Potkay
From: MQSeries List [mailto:***@LISTSERV.MEDUNIWIEN.AC.AT] On Behalf Of Meekin, Paul
Sent: Thursday, August 22, 2013 11:07 AM
To: ***@LISTSERV.MEDUNIWIEN.AC.AT<mailto:***@LISTSERV.MEDUNIWIEN.AC.AT>
Subject: Re: Here we go again - ! on the mainframe
If the application expects its data to be represented by EBCDIC 37 which sound likely then that is exactly the right thing to do. Only the application knows (or should know) what format it wants the data in so it has to tell the QMgr.
From: MQSeries List [mailto:***@LISTSERV.MEDUNIWIEN.AC.AT] On Behalf Of Potkay, Peter M (CTO Architecture + Engineering)
Sent: 22 August 2013 16:02
To: ***@LISTSERV.MEDUNIWIEN.AC.AT<mailto:***@LISTSERV.MEDUNIWIEN.AC.AT>
Subject: Re: Here we go again - ! on the mainframe
If I look at the message on the local queue on the mainframe QM with any of my MQ tools, all is well. I see the exclamation point. Itâs the app area that is saying they see the vertical bar. I donât know yet how they are looking at the message.
Changing the mainframe QMs CCSID to 037, while probably technically the correct solution, is not gonna happen. Right or wrong they were set up with CCSID 500 in the 90s and its just to risky to change it now. Who knows how many apps have coded around this issue over the years, perhaps sending the wrong character on purpose to end up with a ! or a ] relying on the âwrongâ conversion.
Is a potential solution to just have the mainframe app specify MQMD.CCSID=037 on its MQGET with Convert? Seems too easyâŠ..
I remember years ago we ran into this - back then the solution was the sending app decided it really didnât need to send an ! after all, and they just put in some front end edits to prevent that char from being entered.
Peter Potkay
From: MQSeries List [mailto:***@LISTSERV.MEDUNIWIEN.AC.AT] On Behalf Of Paul S Dennis
Sent: Thursday, August 22, 2013 10:55 AM
To: ***@LISTSERV.MEDUNIWIEN.AC.AT<mailto:***@LISTSERV.MEDUNIWIEN.AC.AT>
Subject: Re: Here we go again - ! on the mainframe
Sounds very plausible (and quite likely) to me, based on what you have said... How are the you seeing the data? In a 3270 emulator? If so, what CP is that set to?
Thanks
Paul
Paul Dennis
WebSphere MQ for z/OS Development
From: "Potkay, Peter M (CTO Architecture + Engineering)" <***@THEHARTFORD.COM<mailto:***@THEHARTFORD.COM>>
To: ***@listserv.meduniwien.ac.at<mailto:***@listserv.meduniwien.ac.at>,
Date: 22/08/2013 15:49
Subject: Re: Here we go again - ! on the mainframe
Sent by: MQSeries List <***@listserv.meduniwien.ac.at<mailto:***@listserv.meduniwien.ac.at>>
________________________________
Sending app puts a !, represented as x21, labeled as MQMD.CCSID 500. 100% correct.
Mainframe QM running as CCSID 500 gets an MQGET with convert call, and the mainframe QM converts the x21 to a x4F, knowing that x4F does represent the explanation point in CCSID 500. Still 100% correct.
The QM gives the message to the app with a x4F. But the app on the mainframe is actually executing in another CCSID, perhaps 037. So that app ingests that x4F character and âseesâ it as the vertical bar, because in its code page x4F is a vertical bar.
Is this a plausible (likely?) scenario?
Peter Potkay
From: MQSeries List [mailto:***@LISTSERV.MEDUNIWIEN.AC.AT] On Behalf Of Paul S Dennis
Sent: Thursday, August 22, 2013 10:42 AM
To: ***@LISTSERV.MEDUNIWIEN.AC.AT<mailto:***@LISTSERV.MEDUNIWIEN.AC.AT>
Subject: Re: Here we go again - ! on the mainframe
I think you are probably right there Paul... If it is MQ doing the data conversion from 437 to 500, then it would be converting the x21 into x4F (which is the correct hex of ! in 500), however, it would then appear that the converted data is being displayed with CP 37, which has x4F as |.
See ftp://ftp.software.ibm.com/software/globalization/gcoc/attachments/CP00437.pdf and ftp://ftp.software.ibm.com/software/globalization/gcoc/attachments/CP00500.pdf .
Thanks
Paul
Paul Dennis
WebSphere MQ for z/OS Development
From: "Meekin, Paul" <***@CITI.COM<mailto:***@CITI.COM>>
To: ***@listserv.meduniwien.ac.at<mailto:***@listserv.meduniwien.ac.at>,
Date: 22/08/2013 15:28
Subject: Re: Here we go again - ! on the mainframe
Sent by: MQSeries List <***@listserv.meduniwien.ac.at<mailto:***@listserv.meduniwien.ac.at>>
________________________________
0x4F is ! for CCSID 500 and | for 037. Must be using the wrong code page somewhere.
_______________________________________
Paul Meekin
CATE CitiCloud & CitiApp Platform Engineering | Messaging Middleware
33 Canada Square, Canary Wharf, London E14 5LB
⢠+44 207 500 6318 | ⢠***@citi.com<mailto:***@citi.com>
Find out more about our Services<https://catecollaboration.citigroup.net/domains/deveng/Pages/default.aspx>
From: MQSeries List [mailto:***@LISTSERV.MEDUNIWIEN.AC.AT] On Behalf Of Potkay, Peter M (CTO Architecture + Engineering)
Sent: 22 August 2013 15:12
To: ***@LISTSERV.MEDUNIWIEN.AC.AT<mailto:***@LISTSERV.MEDUNIWIEN.AC.AT>
Subject: Here we go again - ! on the mainframe
The exclamation point is one of those well known characters that does not get converted correctly in some cases when going from ASCII to EBCIDIC
Sending system is Windows, puts a message with CCSID 437, the ! character is represented in hex in this message as 21.
Receiving system is z/OS, QM CCSID on z/OS is set to 500, and the mainframe app sees not an ! but a |.
Why? Why did hexadecimal 21 get converted to a vertical bar? The vertical bar in CCSID 500 is hexadecimal BB, not 21.
I've been Googling trying to find what CCSID 500 thinks hexadecimal 21 is, but to no avail. None of the charts for CCSID 500 go that low. So why does hexadecimal 21 labeled as MQMD.CCSID 437 get seen as a vertical bar after conversion and not some other random character?
Adding to the confusion: When I do the reverse test, using our QPASA Agent on the mainframe to put a message directly to a local queue on the mainframe, the message sits with an MQMD CCSID of 500, and the ! is represented by hexadecimal 4F. If I then browse this message, MQExplorer, QPASA, and rfhutilc all display that 4F as an !, but MO71 displays that 4F as |. Why is MO71 showing a vertical bar for hexadecimal 4F labeled as MQMD.CCSID 500, but those other tools see 4F labeled as MQMD.CCSID 500 as the exclamation point?
Peter Potkay
************************************************************
This communication, including attachments, is for the exclusive use of addressee and may contain proprietary, confidential and/or privileged information. If you are not the intended recipient, any use, copying, disclosure, dissemination or distribution is strictly prohibited. If you are not the intended recipient, please notify the sender immediately by return e-mail, delete this communication and destroy all copies.
************************************************************
________________________________
List Archive<http://listserv.meduniwien.ac.at/archives/mqser-l.html> - Manage Your List Settings<http://listserv.meduniwien.ac.at/cgi-bin/wa?SUBED1=mqser-l&A=1> - Unsubscribe<mailto:***@LISTSERV.MEDUNIWIEN.AC.AT?subject=Unsubscribe&BODY=signoff%20mqseries>
Instructions for managing your mailing list subscription are provided in the Listserv General Users Guide available at http://www.lsoft.com<http://www.lsoft.com/resources/manuals.asp>
________________________________
List Archive<http://listserv.meduniwien.ac.at/archives/mqser-l.html> - Manage Your List Settings<http://listserv.meduniwien.ac.at/cgi-bin/wa?SUBED1=mqser-l&A=1> - Unsubscribe<mailto:***@LISTSERV.MEDUNIWIEN.AC.AT?subject=Unsubscribe&BODY=signoff%20mqseries>
Instructions for managing your mailing list subscription are provided in the Listserv General Users Guide available at http://www.lsoft.com<http://www.lsoft.com/resources/manuals.asp>
Unless stated otherwise above:
IBM United Kingdom Limited - Registered in England and Wales with number 741598.
Registered office: PO Box 41, North Harbour, Portsmouth, Hampshire PO6 3AU
________________________________
List Archive<http://listserv.meduniwien.ac.at/archives/mqser-l.html> - Manage Your List Settings<http://listserv.meduniwien.ac.at/cgi-bin/wa?SUBED1=mqser-l&A=1> - Unsubscribe<mailto:***@LISTSERV.MEDUNIWIEN.AC.AT?subject=Unsubscribe&BODY=signoff%20mqseries>
Instructions for managing your mailing list subscription are provided in the Listserv General Users Guide available at http://www.lsoft.com<http://www.lsoft.com/resources/manuals.asp>
************************************************************
This communication, including attachments, is for the exclusive use of addressee and may contain proprietary, confidential and/or privileged information. If you are not the intended recipient, any use, copying, disclosure, dissemination or distribution is strictly prohibited. If you are not the intended recipient, please notify the sender immediately by return e-mail, delete this communication and destroy all copies.
************************************************************
________________________________
List Archive<http://listserv.meduniwien.ac.at/archives/mqser-l.html> - Manage Your List Settings<http://listserv.meduniwien.ac.at/cgi-bin/wa?SUBED1=mqser-l&A=1> - Unsubscribe<mailto:***@LISTSERV.MEDUNIWIEN.AC.AT?subject=Unsubscribe&BODY=signoff%20mqseries>
Instructions for managing your mailing list subscription are provided in the Listserv General Users Guide available at http://www.lsoft.com<http://www.lsoft.com/resources/manuals.asp>
Unless stated otherwise above:
IBM United Kingdom Limited - Registered in England and Wales with number 741598.
Registered office: PO Box 41, North Harbour, Portsmouth, Hampshire PO6 3AU
************************************************************
This communication, including attachments, is for the exclusive use of addressee and may contain proprietary, confidential and/or privileged information. If you are not the intended recipient, any use, copying, disclosure, dissemination or distribution is strictly prohibited. If you are not the intended recipient, please notify the sender immediately by return e-mail, delete this communication and destroy all copies.
************************************************************
************************************************************
This communication, including attachments, is for the exclusive use of addressee and may contain proprietary, confidential and/or privileged information. If you are not the intended recipient, any use, copying, disclosure, dissemination or distribution is strictly prohibited. If you are not the intended recipient, please notify the sender immediately by return e-mail, delete this communication and destroy all copies.
************************************************************
************************************************************
This communication, including attachments, is for the exclusive use of addressee and may contain proprietary, confidential and/or privileged information. If you are not the intended recipient, any use, copying, disclosure, dissemination or distribution is strictly prohibited. If you are not the intended recipient, please notify the sender immediately by return e-mail, delete this communication and destroy all copies.
************************************************************
______________________________________________________________________
CONFIDENTIALITY WARNING: This email may contain confidential or proprietary business information and is for the sole use of the intended recipient(s). Any unauthorized use or disclosure of this communication, including attachments, is strictly prohibited. If you believe that you have received this email in error, please notify the sender immediately and delete it from your system.
______________________________________________________________________
************************************************************
This communication, including attachments, is for the exclusive use of addressee and may contain proprietary, confidential and/or privileged information. If you are not the intended recipient, any use, copying, disclosure, dissemination or distribution is strictly prohibited. If you are not the intended recipient, please notify the sender immediately by return e-mail, delete this communication and destroy all copies.
************************************************************