Author |
Message
|
gpklos |
Posted: Wed Nov 14, 2007 7:56 pm Post subject: Message Conversion Issue |
|
|
Centurion
Joined: 24 May 2002 Posts: 108
|
We have a queue manager running on windows with Version 6.0 of MQ. We have a queue defined to this queue manager. Now we have various other queue managers that send to this queue via Remote queues. Some of the queue managers are windows and ZOS. The problem is the software suite that is GETting the messages off the queue on windows is not capable of specifying the GET w/convert option. This is some type of Oracle software that has a very primitive MQ adapter. This oracle software also is connecting to the windows box via a client connection. The only option the oracle mq adapter can specify is CCSID. So if it specifies CCSID 437, then he can only see the data correctly if it came from a windows queue manager. So when a mainframe send to this queue via remote queue the CCSID is 37. So now the adapter gets the messages, but they are not in a readable format because it was converted. We do not specify Convert (yes) on the channels because it has always been our policy to make sure the application does the get/w convert. At least until this odd application came up. I'm trying to figure the best way to deal with this. We have discussed setting up a second queue that only mainframe sends to and the oracle suite would read from that queue specifying the mainframe CCSID. All the other platforms would send to another queue where the oracle suite would specify a CCSID of 437. This seems kind of annoying doing it this way.
The applications thought about reading the queue with a program that can do the convert to 437 then put it back on another queue that the oracle suite can handle. So basically the oracle suite will only have to handle 437.
How else can this be done? They are connecting via an ServerConn channel which you can't do a convert with like regular channels.
Any ideas would really be appreciated.
Thanks,Gary |
|
Back to top |
|
 |
zpat |
Posted: Wed Nov 14, 2007 11:57 pm Post subject: |
|
|
 Jedi Council
Joined: 19 May 2001 Posts: 5866 Location: UK
|
Use the API crossing exit to set the MQGMO_CONVERT option on the MQGET.
Or use a message exit on the channel to convert the data.
Or pass the message through a message broker to convert it.
Or tell the vendor to get their MQ adapter sorted out or else! |
|
Back to top |
|
 |
gpklos |
Posted: Thu Nov 15, 2007 5:28 am Post subject: |
|
|
Centurion
Joined: 24 May 2002 Posts: 108
|
<< Use the API crossing exit to set the MQGMO_CONVERT option on the MQGET.
I believe this is only for CICS, at least that is what I read and lots of the messages come from IMS and batch. Maybe I don't understand the whole concept of the API Crossing Exit.
<<Or pass the message through a message broker to convert it.
We don't have Message Broker
<<Or use a message exit on the channel to convert the data.
I didn't think there was an option on an ServerConn channel to add a message exit.
Any way to use a Data Conversion Exit? Forgive me, I have never had to deal with exits before. The topic has never come up or been necessary.
Thanks,
Gary |
|
Back to top |
|
 |
zpat |
Posted: Thu Nov 15, 2007 5:39 am Post subject: |
|
|
 Jedi Council
Joined: 19 May 2001 Posts: 5866 Location: UK
|
I formed the impression that the message came from CICS but went to a Windows queue manager.
The MQGET API call would therefore be executed on the Windows queue manager and the exit could intercept and modify the options.
You might as well set up a separate sender channel (from mainframe QM to windows QM) with CONVERT(YES) and use a separate transmit queue for this channel. Then configure the remote queue to use this new transmit queue. That way the convert on the channel is at least constrained to cases where there is no other (easy) choice. |
|
Back to top |
|
 |
gpklos |
Posted: Thu Nov 15, 2007 6:53 am Post subject: |
|
|
Centurion
Joined: 24 May 2002 Posts: 108
|
Thanks for the quick response. It is appreciated.
I'm either going to create the separate channel with convert(yes) or have them write an intermediate program to do a get with convert then push it to another queue. I know it is quirky.
Again,
Thanks for your help,
Gary |
|
Back to top |
|
 |
Nigelg |
Posted: Thu Nov 15, 2007 7:58 am Post subject: |
|
|
Grand Master
Joined: 02 Aug 2004 Posts: 1046
|
If any of the msgs have a format of MQFMT_CICS, "MQCICS ", these msgs can only be converted on the host system. There is no in-built converter on Windows or any other distributed platform. _________________ MQSeries.net helps those who help themselves.. |
|
Back to top |
|
 |
|