Author |
Message
|
Priya |
Posted: Tue Mar 26, 2002 7:49 am Post subject: |
|
|
Apprentice
Joined: 20 Mar 2002 Posts: 26
|
Hi,
The MQ Queue manager resides on the mainframe. I have a MQ client software
on the AIX server. I do not have a control on the mainframe. I have to write application on AIX to get the request message from the Queue, process the message and send the reply back to another queue. How can I acieve this?
it is very urgent...please help me out
Thanks |
|
Back to top |
|
 |
mqonnet |
Posted: Tue Mar 26, 2002 7:59 am Post subject: |
|
|
 Grand Master
Joined: 18 Feb 2002 Posts: 1114 Location: Boston, Ma, Usa.
|
Not quite sure what you mean by this "I do not have a control on the mainframe". I would assume that you dont have enough rights on Mainframe, but at least you do for the QMGR in picture. Otherwise you Cannot do a thing.
As for how to achieve the solution to your problem. You have to follow the Application programming guide and sample programs to achieve this. It is a simple connection, put and get case.
Even samples on this site could prove helpful in your case, and probably with minor changes you should be able to get to your problem solution.
Hope this helps.
Cheers.
Kumar
_________________ IBM Certified WebSphere MQ V5.3 Developer
IBM Certified WebSphere MQ V5.3 Solution Designer
IBM Certified WebSphere MQ V5.3 System Administrator |
|
Back to top |
|
 |
Priya |
Posted: Tue Mar 26, 2002 9:28 am Post subject: |
|
|
Apprentice
Joined: 20 Mar 2002 Posts: 26
|
The Mainframe machine where Queue Manager(QM) resides is at remote place where I can not create any QM and Queues. Probably I will have only the QM Name and Q Names. My task is only to retrieve the message from the queue using MQClient in AIX, proces it and send it back to QM in Mainframe by establishing connection. I am not sure, while developing, how i can get the message from the QM in which I can not put the test message ...
Thanks |
|
Back to top |
|
 |
mqonnet |
Posted: Tue Mar 26, 2002 9:43 am Post subject: |
|
|
 Grand Master
Joined: 18 Feb 2002 Posts: 1114 Location: Boston, Ma, Usa.
|
Please refer to many queries relating to setting up environments on Clients->Servers using MQSERVER variable, Svrconn channels, channel tables and more in this forum. That would help you establish one, if you have not done already. Once you have established the channel, env variables/chl tables, you should be able to put and get messages off the Mainframe queues.
For more info, refer to "clients" section in the manuals.
Cheers.
Kumar
_________________ IBM Certified WebSphere MQ V5.3 Developer
IBM Certified WebSphere MQ V5.3 Solution Designer
IBM Certified WebSphere MQ V5.3 System Administrator |
|
Back to top |
|
 |
muralidhar |
Posted: Tue Mar 26, 2002 10:01 am Post subject: |
|
|
 Acolyte
Joined: 28 Feb 2002 Posts: 50
|
If you don't have access to mainframe for testing, you may consider installing MQ server either on your AIX Server or some other machine to which you have access and create Queue Manager and queues. This may be good starting point. When you get the access rights on mainframe, you need to change MQSERVER environment variable for connecting to mainframe. Other issues you might need to consider are security and data conversion. |
|
Back to top |
|
 |
srikumar |
Posted: Tue Mar 26, 2002 10:17 am Post subject: |
|
|
Novice
Joined: 14 Aug 2001 Posts: 14
|
Hi
Here is an example
Lets say MFQM --- Main frame qmanager
MFQR ---- Remote queue on Main frame
AixQL ---- Local queue on Aix ( the remote queue on main
points to this)
AixQR ------ This point to another local queue of Main Frame
MFQL --
and Aix QM ---- AIx qmanager
The Main frame puts a message in it remote queue, so that it comes to the Aix box, You process the message and then send back the message to remote queue which then directs to the aix box
|
|
Back to top |
|
 |
StefanSievert |
Posted: Tue Mar 26, 2002 10:25 am Post subject: |
|
|
 Partisan
Joined: 28 Oct 2001 Posts: 333 Location: San Francisco
|
Quote: |
On 2002-03-26 07:49, Priya wrote:
Hi,
The MQ Queue manager resides on the mainframe. I have a MQ client software
on the AIX server. I do not have a control on the mainframe. I have to write application on AIX to get the request message from the Queue, process the message and send the reply back to another queue. How can I acieve this?
it is very urgent...please help me out
Thanks
|
Priya,
what is the real question here, do you have a problem getting to the queue manager? If you have not even started to implement it: It doesn't matter if your Queue Manager resides on /390, AS/400, NT or whatever. The basic scenario for a client application is always the same:
1/ Get the server admin to define a server connection channel and the queues you want to use
2/ Ask him for: IP-Adress or hostname, port number, channel name, queue manager and queue names
3/ setup your client environment by either
a] setting MQSERVER=channel/TCP/ipaddr/hostname(port) (non-Java appl)
b] creating a channel tab file AMQCLCHL.TAB (non-Java appl)
c] using the MQCONNX call in your application (non-Java appl)
4/ in your program
a] MQCONN to the queue manager
b] MQOPEN the input and output queues
c] MQGET the input message from the the input queue
d] do whatever you need to do with the message
e] MQPUT the ouput message to the output queue
f] (MQCMIT and) MCLOSE your queues
g] MQDISC
c-f may be embedded in a loop until MQRC_NO_MSG_AVAILABLE.
For details on 3/-4/ please see MQSeries Clients and MQSeries Application Programming Guide and Reference.
This should get you started. The interesting part in that scenario will be security, but we'll leave that out until you actually hit a Reason 2035...
Good luck,
Stefan
_________________ Stefan Sievert
IBM Certified * WebSphere MQ |
|
Back to top |
|
 |
srikumar |
Posted: Tue Mar 26, 2002 10:27 am Post subject: |
|
|
Novice
Joined: 14 Aug 2001 Posts: 14
|
Hi
Here is an example
Lets say MFQM --- Main frame qmanager
MFQR ---- Remote queue on Main frame
AixQL ---- Local queue on Aix ( the remote queue on main
points to this)
AixQR ------ This point to another local queue of Main Frame
MFQL --
and Aix QM ---- AIx qmanager
The Main frame puts a message in it remote queue, so that it comes to the Aix box, You process the message and then send back the message to remote queue which then directs to the aix box
|
|
Back to top |
|
 |
srikumar |
Posted: Tue Mar 26, 2002 10:28 am Post subject: |
|
|
Novice
Joined: 14 Aug 2001 Posts: 14
|
[ This Message was edited by: srikumar on 2002-03-26 14:08 ] |
|
Back to top |
|
 |
Priya |
Posted: Tue Mar 26, 2002 12:36 pm Post subject: |
|
|
Apprentice
Joined: 20 Mar 2002 Posts: 26
|
Great Stefan. I got the clear idea now. I have not yet started the implementation. I am in the process of designing the application for MQClient on AIX, which has to get and put the messages in the Queues in MQSeries Queue Manager on Mainframe, which is located in some other place. For development and testing purpose, I can have the Qmanager installed in NT Machine. I am using C++ for the development.
(1) Should I use MQClient CD to install MQClient on AIX or use MQSeries Server CD with MQClient option. I guess I have to use MQClient CD. Am I right.
(2) I guess I would define the channel with this option
3/ setup your client environment by either
a] setting MQSERVER=channel/TCP/ipaddr/hostname(port) (non-Java appl)
I guess port number is 1414 by default. Am I right?
(3) Should the listener be started and running all the time in the server for establishing the channel connection?
(4) If I define the channel at both side and do the step 4] you mentioned when the channel will be active?
(5) Do I need to set any environmental variable for this or Do I need any other configuration details to install MQClient on my AIX?
I appreciate your help...
Thanks
Priya |
|
Back to top |
|
 |
StefanSievert |
Posted: Tue Mar 26, 2002 3:03 pm Post subject: |
|
|
 Partisan
Joined: 28 Oct 2001 Posts: 333 Location: San Francisco
|
Quote: |
On 2002-03-26 12:36, Priya wrote:
(1) Should I use MQClient CD to install MQClient on AIX or use MQSeries Server CD with MQClient option. I guess I have to use MQClient CD. Am I right.
|
You can use either CD. However, to have the most current code, I would suggest you download the latest client code from the IBM support pac website at http://www-4.ibm.com/software/ts/mqseries/txppacs/macl.html
Quote: |
(2) I guess I would define the channel with this option
3/ setup your client environment by either
a] setting MQSERVER=channel/TCP/ipaddr/hostname(port) (non-Java appl)
I guess port number is 1414 by default. Am I right?
|
Yes, you can 'define' the client connection channel this way. You are correct in saying that 1414 is the default port, but that doesn't mean that the mainframe admin has actually used that port. So it's better to ask.
Quote: |
(3) Should the listener be started and running all the time in the server for establishing the channel connection?
|
No, it MUST run all the time, if you want to use the channel. On the mainframe, the listener is part of the Channel Initiater Started Task which should be up as soon as the master started task is up. Note: In order to connect MQClients to an OS/390 queue manager, the MQ Client Attachment Feature needs to be purchased and installed on the /390. But I assume, that they have done it.
Quote: |
(4) If I define the channel at both side and do the step 4] you mentioned when the channel will be active?
|
The client channel will become 'active' during the MQCONNect processing. You don't have to explicitly start it.
Quote: |
(5) Do I need to set any environmental variable for this or Do I need any other configuration details to install MQClient on my AIX?
|
As I said, if you use the MQCONNX call, you can specify the connection attributes in the MQCNO structure (see Appl.Prog.Ref.). Otherwise you would have to define (export) the MQSERVER environment variable or create an AMQCLCHL.TAB file (see Clients manual) and export MQCHLLIB/MQCHLTAB environment variables. It's your call.
Cheers,
Stefan
_________________
Stefan Sievert
IBM Certified * MQSeries
[ This Message was edited by: StefanSievert on 2002-03-26 15:06 ] |
|
Back to top |
|
 |
Priya |
Posted: Tue Mar 26, 2002 5:51 pm Post subject: |
|
|
Apprentice
Joined: 20 Mar 2002 Posts: 26
|
Thanks Stefen...
1) You mentioned about the security I need to consider. What is that?
2) What are all the MQSeries client components I need to install in my AIX machine?
MQSeries Client, MQSeries Toolkit, Samples, Support for DCE in Samples, Runtime component, Base, MQSeries Internet Gateway, MQSeries Internet Gateway documentation.
I hope MQSeries Client, MQSeries Toolkit, Samples is enough. Suppose If I install all the components and do not use that, will it affect programming or in any other ways.
3) Can we share a channel defined in the MQSeries Server among different MQSeries Clients? or there will be dedicated channel for each client.
Please advice me….
Thanks
[ This Message was edited by: priya on 2002-03-26 18:09 ] |
|
Back to top |
|
 |
StefanSievert |
Posted: Tue Mar 26, 2002 10:08 pm Post subject: |
|
|
 Partisan
Joined: 28 Oct 2001 Posts: 333 Location: San Francisco
|
Quote: |
On 2002-03-26 17:51, Priya wrote:
Thanks Stefen...
1) You mentioned about the security I need to consider. What is that?
|
This is not said in one sentence. The basic (but not the only) issue is, that your AIX userId is most likely not identical with a userId defined on the /390. The server connection channel has two attributes, that you should review in the MQSC command reference (under the DEFINE CHANNEL command): MCAUSER and PUTAUT
The /390 admin will most likely require a setting of PUTAUT(CTX) to authorize incoming requests to access queues using th userId that gets shipped from the client (mqmd.UserIdentifier), because multiple applications might use the same channel. As this does not provide any authentication (no password), you might be required to truly secure the client connection (valid /390 userId and password must be provided and verified with the/390 security manager), which is only possible using security exits at both ends of the pipe.
For an introduction to the topic, you might want to read the first two chapters of this Redbook: http://publib-b.boulder.ibm.com/Redbooks.nsf/9445fa5b416f6e32852569ae006bb65f/9aeea8df5450f6ea852566c7007a10c8?OpenDocument
You can also go to http://www.messageq.com/forums/vienna/msg_head.php3 and search for 'MVS client' in the subject; there has been quite a bit of discussion that might help.
Quote: |
2) What are all the MQSeries client components I need to install in my AIX machine?
MQSeries Client, MQSeries Toolkit, Samples, Support for DCE in Samples, Runtime component, Base, MQSeries Internet Gateway, MQSeries Internet Gateway documentation.
I hope MQSeries Client, MQSeries Toolkit, Samples is enough. Suppose If I install all the components and do not use that, will it affect programming or in any other ways.
|
Correct. I'm not sure, what the 'Runtime Component' was; it's been a while since I installed MQ on AIX. What does the MQ Quick Beginnings for AIX say?
Quote: |
3) Can we share a channel defined in the MQSeries Server among different MQSeries Clients? or there will be dedicated channel for each client.
|
Absolutely. The server side instantiates a new channel instance on every inbound request. Again, security requirements might force you to have dedicated channels for your clients. Your mainframe security guy will tell you...
They might also want to have it for operational reasons.
Cheers,
Stefan
_________________
Stefan Sievert
IBM Certified * MQSeries
[ This Message was edited by: StefanSievert on 2002-03-26 22:15 ] |
|
Back to top |
|
 |
Priya |
Posted: Wed Mar 27, 2002 5:02 am Post subject: |
|
|
Apprentice
Joined: 20 Mar 2002 Posts: 26
|
Thanks stefen...I need one more clarification...
As you suggested..
You can use either CD. However, to have the most current code, I would suggest you download the latest client code from the IBM support pac website at http://www-4.ibm.com/software/ts/mqseries/txppacs/macl.html
1) We have purchased MQSeries 5.2 for AIX. So I can install the MQClient using the MQClient CD. Still Do I need to download the latest client code from IBM support pac?
2) If I use the MQSeries Client 5.2 for development and if I run the same application in MQClient 5.1 on AIX at the client Is there any problem?
Thanks
[ This Message was edited by: Priya on 2002-03-27 05:11 ] |
|
Back to top |
|
 |
|