Author |
Message
|
ramki |
Posted: Wed Sep 26, 2001 12:17 pm Post subject: |
|
|
Apprentice
Joined: 25 Sep 2001 Posts: 28
|
My question involves packed binary decimals.
We are going to be interfacing to the Centers which run AS/400s. The interfaces will be from UNIX(Retek) to MQSI (on NT) to Exeter (on AS/400) and vice versa.
Because these Centers are so crucial, the AS/400 team would like NOT to change their file layout at all when they implement MQSeries (typical) -- in the past they've used CICS rovers to communicate to the MF -- no MQSeries at all.
Their current file layout is packed-EBCDIC. Obviously the Retek layout is ASCII, unpacked. Thus, we are going to have to unpack and pack data in MQSI as well convert the code page in Queue-to-File.
I thought that the above can be done Unpacking the data in MQSI and convert it while doing a Qto file and vice-versa.
But unable to create the sample message sets. Please help us in this regards.
I was just trying to create a message flow that packed just one field and we are having a hard time doing that. Do have any sample message flows that do this? Maybe we can start from there.
Thanks for all your help in advance!
|
|
Back to top |
|
 |
EddieA |
Posted: Wed Sep 26, 2001 3:06 pm Post subject: |
|
|
 Jedi
Joined: 28 Jun 2001 Posts: 2453 Location: Los Angeles
|
If these messages are defined in the MRM, then as long as those fields are correctly defined as either packed or integer, MQSI will take care of the conversion between one format and the other.
Cheers.
_________________ Eddie Atherton
IBM Certified Solution Developer - WebSphere Message Broker V6.1
IBM Certified Solution Developer - WebSphere Message Broker V7.0 |
|
Back to top |
|
 |
ramki |
Posted: Thu Sep 27, 2001 11:21 am Post subject: |
|
|
Apprentice
Joined: 25 Sep 2001 Posts: 28
|
*How do we know that the packed decimal takes 10 bytes for the input of 19bytes of float.Is there any formula to convert and do vice versa to decide on the lengths of the fields.
*When doing the conversion from Unix to Mframe and viceversa What steps do we need to take to takecare of LittleEndian and Big Indian formats.
Thanks in advance for all your help!
|
|
Back to top |
|
 |
EddieA |
Posted: Thu Sep 27, 2001 1:11 pm Post subject: |
|
|
 Jedi
Joined: 28 Jun 2001 Posts: 2453 Location: Los Angeles
|
I'm assuming that you're using the MRM for the records that include packed decimal. If that's the case, then you have to define the lengths there. Either the length as it's delivered to MQSI or the length that the receiving program is expecting out of MQSI. I don't think there's a way to have variable length packed decimal. The lengths are decided by the applications that are either sending or receiving the data.
Provided you use the correct values for MQMD_ENCODING and get MQSI to do conversions, it should work out the correct endians. But it is a while since I last played with PD on MQSI.
Cheers.
_________________ Eddie Atherton
IBM Certified Solution Developer - WebSphere Message Broker V6.1
IBM Certified Solution Developer - WebSphere Message Broker V7.0 |
|
Back to top |
|
 |
ramki |
Posted: Wed Oct 03, 2001 6:24 pm Post subject: |
|
|
Apprentice
Joined: 25 Sep 2001 Posts: 28
|
hi,
Please help me with this..........
I did the test for the packing and EBCDIC conversion. My message is going from NT(ASCII format) to MQSI get the packing done there and then goes to Mainframe(EBCDIC). Here I am doing the conversion in the channel(set the dataconversion to yes in the channel). In the output queue on the mainframe I could see the message and noted it down.
I repeated the test with packing and conversion in MQSI i.e set the convert option to yes and CCSID=037 and set the
dataconversion to NO in the channel. This time I got a different message in the queue on MF.
My understanding is, in both these cases, our aim is same. In the first case we wanted MQSI to handle the packin and let the conversion be done in the channel and in the second case We let MQSI handle both Packing and conversion.
note:In the test case of the messageset I used the float as input and packeddecimal as output and the conversion is from Ascii to EBCIDC,as it is going from NT boc to Mainframe.
Please help me understand why we are getting a different message values.
I appreciate you help. Thanks in advance!!!
Regards,
Ramki
|
|
Back to top |
|
 |
EddieA |
Posted: Thu Oct 04, 2001 5:37 am Post subject: |
|
|
 Jedi
Joined: 28 Jun 2001 Posts: 2453 Location: Los Angeles
|
OK. Lets take what you did step by step.
When you did the conversion in the Channel, how did you do this. Have you built a conversion exit, because without this, the channel will only convert messages described as MQSTR and this, obviously, isn't because it now contains packed decimal.
Setting the convert option is only used to convert an incoming message (ASAIK. But I'm willing to be corrected on this).
What you need do is set the correct target, mainfraime, CCSID and Encoding in a Compute node. Then when MQSI outputs the message, it will put it out using those values.
When you looked at the resultant messages from your test, were *any* of the fields correct. This should have given you some clues.
Cheers.
_________________ Eddie Atherton
IBM Certified Solution Developer - WebSphere Message Broker V6.1
IBM Certified Solution Developer - WebSphere Message Broker V7.0 |
|
Back to top |
|
 |
|