|
RSS Feed - WebSphere MQ Support
|
RSS Feed - Message Broker Support
|
 |
|
OS/390 to Windows 2000 (Data Conversion) |
« View previous topic :: View next topic » |
Author |
Message
|
kirani |
Posted: Thu Jan 31, 2002 7:47 pm Post subject: |
|
|
Jedi Knight
Joined: 05 Sep 2001 Posts: 3779 Location: Torrance, CA, USA
|
Hi,
I have an application running on Mainframe (OS/390), which is putting text messages (MQSTR) on remote queue. This remote queue is defined on NT queue manager. MQSI is running on Windows 2000. MQSI will process these message and do the transformation. I would like to know following,
1. What are the values I should set in MQMD header while making MQPUT call in COBOL program.
(Currently I am setting MQMD.CorrelSetId to MQCCSI_Q_MGR).
2. In MQInput node what are the values I should set in 'Convert', 'Convert Encoding' and 'Convert CCS ID'?
(I have set 'Convert' to yes, 'Convert Encoding' to 546, and 'Convert CCS ID' to 437)
3. What HEX values should I be getting for CorrelId (EBCDIC or ASCII)?
(I see currently I am getting HEX values for EBCDIC characters).
4. I will be sending back the transformed data to queue on MF. What are the values in MQMD header should I modify in MQSI?
Thanks in advance.
Regards,
Kiran
|
|
Back to top |
|
 |
NickB |
Posted: Fri Feb 01, 2002 2:17 am Post subject: |
|
|
Centurion
Joined: 20 May 2001 Posts: 107 Location: Zurich Financial Services
|
Kiran
MQ will be doing all the conversion for you so you shouldn't need to mess about with CCSID and suchlike, especially as you are sending base character data (format = MQSTR).
You shouldn't need to check any of these boxes on your input node.
It depends what you intend to do with your message once it arrives on MQSI.
If you don't set the convert option on then if your run a message through the flow and manually look at the message which appears on the output queue of your flow it will appear still to be in EBCDIC. If you manually look at the message with your application and that application does a GET_WITH_CONVERT then MQ will do all the necessary code page conversion for you. |
|
Back to top |
|
 |
kwelch |
Posted: Fri Feb 01, 2002 8:48 am Post subject: |
|
|
 Master
Joined: 16 May 2001 Posts: 255
|
Kiran and Nick,
This isn't really an answer to your prior question. It brings to mind some questions that we have been discussing at my company about ASCII and EBCIDIC data coming into the same messageflow. We are all relatively new to MQSI. We weren't using the convert option on the input node and for data coming in as EBCDIC it was going out as EBCIDIC as you would expect and the receiving app would GET specifying the convert option. What we were wondering though is in our ESQL, if we do queries on data will they work? One of my co-workers tested this and said that it works, but I don't fully understand why. If I do a check for space for example, in EBCIDIC that's x'40' and in ASCII x'20' I believe. Does MQSI do some kind of conversion for us behind the scenes? Would it be wise to use the convert option on the input node is cases where we have both kinds of data coming through? It seems like we should. Any clarification on this would be greatly appreciated.
Karen |
|
Back to top |
|
 |
EddieA |
Posted: Fri Feb 01, 2002 12:56 pm Post subject: |
|
|
 Jedi
Joined: 28 Jun 2001 Posts: 2453 Location: Los Angeles
|
Karen,
Here's my understanding of what happens 'behind the scenes'. If anyone wishes to correct me, then please feel free.
When a message arrives in MQSI, the first time the message has to be parsed into the 'tree', MQSI will convert the message into UNICODE based on the CCSID/Encoding in the Properies (MQMD ??). This means that if an EBCDIC message comes in to an ASCII box, you don't have to do anything 'special' to be able to read the data.
Now, when the outgoing message is built, it's converted back from UNICODE to the CCSID/Encoding in the Properties (MQMD ??). So, if you haven't changed these, the outgoing message will be in the same form as the incoming.
This also means you can 'alter' the 'normal' flow by using Compute nodes that change the values of CCSID/Encoding.
Cheers,
_________________ Eddie Atherton
IBM Certified Solution Developer - WebSphere Message Broker V6.1
IBM Certified Solution Developer - WebSphere Message Broker V7.0 |
|
Back to top |
|
 |
kwelch |
Posted: Fri Feb 01, 2002 3:13 pm Post subject: |
|
|
 Master
Joined: 16 May 2001 Posts: 255
|
Eddie,
I thought something had to be going on behind the scenes or my code wouldn't work, but I wasn't sure. Thanks for clarifying this.
Karen |
|
Back to top |
|
 |
cheungwsj |
Posted: Sun Feb 03, 2002 1:37 am Post subject: |
|
|
Newbie
Joined: 02 Feb 2002 Posts: 4
|
Hi,
This is my experience and would like to share with you.
To perform the data conversion between EBCDIC and ASCII, we have at least two options,
i. MQGET conversion, I think MQSI input node use this;
ii. Channel conversion, you need to turn on 'Convert' option in your MQ channel;
To use MQSI convert features, you need to make sure the following,
i. Correct CCSID in the inbound message is correctly set, please don't overlook this one, most problem come from this. When other teams tell you that they are using World EBCDIC 500 or US EBCDIC 37, eventually, they may not. In order to double check or prove their correctness, I suggest to ask them what is the hex. value in MF to represent several special character, such as pipe | and caret ^, then go to IBM data conversion web site and find out the exact CCSID. For example, if | is 0x4F and ^ is 0x5F, then they are using 1047, i.e. Latin EBCDIC. All EBCDIC are similar except for a few characters;
ii. MQMD.Format is set to MQSTR
If the above two is set correctly in MF system, then you need to do the following in MQSI Input Node.
i. Turn on the 'Convert' option in advance tab of your input node;
ii. Specify your required CCSID. ASCII is 819;
Hopes this help,
Autorun
|
|
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
|
|
|
|