|
RSS Feed - WebSphere MQ Support
|
RSS Feed - Message Broker Support
|
Client Channel Table Creation |
« View previous topic :: View next topic » |
Author |
Message
|
PeterPotkay |
Posted: Fri Feb 15, 2002 12:58 pm Post subject: |
|
|
 Poobah
Joined: 15 May 2001 Posts: 7722
|
Which manual are the instructions located in? I can't find them and it's driving me nuts.
_________________ Peter Potkay
Keep Calm and MQ On |
|
Back to top |
|
 |
venkat kurra |
Posted: Fri Feb 15, 2002 1:24 pm Post subject: |
|
|
 Master
Joined: 18 Oct 2001 Posts: 245 Location: Bloomington , IL
|
|
Back to top |
|
 |
PeterPotkay |
Posted: Mon Feb 18, 2002 7:41 am Post subject: |
|
|
 Poobah
Joined: 15 May 2001 Posts: 7722
|
I'm having a brain lapse here....
I have a client machine that will connect to queue manager QM1 on a remote server. I want this client to connect via a channel table.
QM1 already has a SVRCONN channel defined called QM1.CLIENT. There is also the default AMQCLCHL.TAB file in D:program filesmqseriesqmgrsQM1@ipcc.
So, at this point, I want to create a ChannelTableToQM1.TAB file to give to the client. I create a ScriptToCreateChannelTabletoQM1.txt file as follows.....
DEFINE CHANNEL(QM1.CLIENT) CHLTYPE(CLNTCONN) TRPTYPE(TCP) CONNAME(the hostname of the server) QMNAME(QM1) REPLACE
DEFINE CHANNEL(QM1.CLIENT) CHLTYPE(SVRCONN) TRPTYPE(TCP) REPLACE
and save it to the D drive.
From a D command prompt, I type.....
D:>runmqsc QM1 <d:ScriptToCreateChannelTabletoQM1.txt
No errors, channels created, all commands read.
Now what? Where is the .tab file that I can email to the client? What is it called? If I look at AMQCLCHL.TAB, it still looks the same (last modified date didn't change).
Also, is it true that I can only create a channel table for a queue manager if I am on that local machine (or pcanywhereed into it)? In other words, I can't create channel tables for QM2(server2) thru QM10(server10) from QM1(server1)?
_________________ Peter Potkay
Keep Calm and MQ On |
|
Back to top |
|
 |
Tibor |
Posted: Mon Feb 18, 2002 8:27 am Post subject: |
|
|
 Grand Master
Joined: 20 May 2001 Posts: 1033 Location: Hungary
|
Quote: |
Also, is it true that I can only create a channel table for a queue manager if I am on that local machine (or pcanywhereed into it)? In other words, I can't create channel tables for QM2(server2) thru QM10(server10) from QM1(server1)?
|
Definitely, NO. I made *ALL* client connection on QM1 then I copied this file to all others. And works good.
But I don't understand what would be wrong in your steps
|
|
Back to top |
|
 |
StefanSievert |
Posted: Tue Feb 19, 2002 1:31 pm Post subject: |
|
|
 Partisan
Joined: 28 Oct 2001 Posts: 333 Location: San Francisco
|
Peter,
you can create a client channel table for any queue manager's client connections on a random queue manager.
After your MQSC commands have been executed successfully, the channel definitions are stored in D:program filesmqseriesqmgrsQM1@ipccamqclchl.tab,
provided that QM1 is the queue manager you ran the commands on.
I used to create a 'dummy' queue manager for this task and wrote a little batch file (a no-brainer) to do the following steps:
1/ copy a backup of original amqclchl.tab file to ...@ipcc
2/ runmqsc qmgrname < inputcmds.txt
3/ rename amqclchl.tab for distribution to set of clients
Step 1 was necessary because the customer wanted to have different files for different 'groups' of clients. By saving the original file after dummy queue manager creation, I could produce these different files. If you don't have a problem with having all of your potential MQCONN targets in one file, you don't need to do that.
Hope this keeps you from spending a lot on therapy...
Stefan
_________________ Stefan Sievert
IBM Certified * WebSphere MQ |
|
Back to top |
|
 |
PeterPotkay |
Posted: Wed Feb 20, 2002 8:16 am Post subject: |
|
|
 Poobah
Joined: 15 May 2001 Posts: 7722
|
This just ain't working!
DEFINE CHANNEL(QM1.CLIENT) CHLTYPE(CLNTCONN) TRPTYPE(TCP) CONNAME(the hostname of the server) QMNAME(QM1) REPLACE
DEFINE CHANNEL(QM1.CLIENT) CHLTYPE(SVRCONN) TRPTYPE(TCP) REPLACE
I now go to explorer and see that both these channels are in fact created.
I go to D:program filesmqseriesqmgrsQM1@ipcc, and that amqclchl.tab just is not being modified. For the heck of it I even tried using a copy of it on the client pc, and amqsputc ends with a 2059.
For what it's worth, a dat file called amqrfcda.dat is being updated every time I run the script.
_________________ Peter Potkay
Keep Calm and MQ On |
|
Back to top |
|
 |
PeterPotkay |
Posted: Wed Feb 20, 2002 12:14 pm Post subject: |
|
|
 Poobah
Joined: 15 May 2001 Posts: 7722
|
I got fed up with this on QM1/box1 and tried the following on QM2/box2.
DEF CHL(QM2.CLIENT) CHLTYPE(CLNTCONN) TRPTYPE(TCP) CONNNAME (hostname of box2) QMNAME(QM2) REPLACE
DEF CHL(QM2.CLIENT) CHLTYPE(SVRCONN) TRPTYPE(TCP)
I see that these 2 channels got created on QM2. I go to look at amqclchl.tab and Whoopee!!!, it got modified! (Right now I'm like "Who cares why QM1 wouldn't work, at least we're making progress here")
I take this new copy of amqclchl.tab, copy it to floppy, rename it, copy it to the C drive of the client machine, reset the MQCHLLIB and MQCHLTAB variables to point to it, reboot, type in amqsputc TEST.QUEUE and.......
2059.
OK. I set the MQSERVER variable in the same DOS window and retry the put with no problems. (SET MQSERVER=QM2.CLIENT/TCP/HOSTNAME OF QM2)
Change the MQCHLTAB variable to point to an existing channel table I have to QM99. Reboot and try amqsputc again. No problem.
I am doing something wrong here with this new channel table that I am trying to create.
1.) When/how does amqclchl.tab get updated? Anytime I create any channel? Or only when I create a CLNTCONN channel?
2.) Does amqclchl.tab get rewritten every time? Or does it get appended to?
3.) What happens to this tab file if today I want to make a client channel table for client one to QM1, but tommorow I want to make another table for client two to QM2? Does the second client get the first's info in addition to his own?
4.) I see how I can create a channel table for a client so that he can connect to any other QM. But if I do this for QM99 from QM1, someone on QM99 still needs to define the SVRCONN channel on QM99, right?
5.) I assume the listner must be running on the remote queue manager for a client to connect?
6.) If I think my amqclchl.tab file is just a plain mess on the QMGR and want to start from scratch, what do I do? I remember reading somewhere that you can't delete this file. I think it may be a mess cuz when i look at it now, even though it is binary data, I can still see the channel name. It looks like it is being appended each time I create a new channel. And since the client looks thru this table alphabetically by channel name during connection, maybe I got some junk in there (I would think it would rollover to the next entry till it got a good connection, but right now, I don't which way is up )
_________________ Peter Potkay
Keep Calm and MQ On |
|
Back to top |
|
 |
StefanSievert |
Posted: Wed Feb 20, 2002 4:38 pm Post subject: |
|
|
 Partisan
Joined: 28 Oct 2001 Posts: 333 Location: San Francisco
|
Peter,
Quote: |
On 2002-02-20 12:14, PeterPotkay wrote:
I got fed up with this on QM1/box1 and tried the following on QM2/box2.
DEF CHL(QM2.CLIENT) CHLTYPE(CLNTCONN) TRPTYPE(TCP) CONNNAME (hostname of box2) QMNAME(QM2) REPLACE
DEF CHL(QM2.CLIENT) CHLTYPE(SVRCONN) TRPTYPE(TCP)
I see that these 2 channels got created on QM2. I go to look at amqclchl.tab and Whoopee!!!, it got modified! (Right now I'm like "Who cares why QM1 wouldn't work, at least we're making progress here")
I take this new copy of amqclchl.tab, copy it to floppy, rename it, copy it to the C drive of the client machine, reset the MQCHLLIB and MQCHLTAB variables to point to it, reboot, type in amqsputc TEST.QUEUE and.......
2059.
|
Did you specify the queue manager name on your amqsputc invocation?
Quote: |
OK. I set the MQSERVER variable in the same DOS window and retry the put with no problems. (SET MQSERVER=QM2.CLIENT/TCP/HOSTNAME OF QM2)
Change the MQCHLTAB variable to point to an existing channel table I have to QM99. Reboot and try amqsputc again. No problem.
I am doing something wrong here with this new channel table that I am trying to create.
1.) When/how does amqclchl.tab get updated? Anytime I create any channel? Or only when I create a CLNTCONN channel?
|
According to the docs, it gets updated on DEFINE CHANNEL and ALTER CHANNEL and, as I would expect, on CLNTCONN channels only. This is not explicitly stated in the docs, but I would assume that a DELETE CHANNEL has an effect as well.
Quote: |
2.) Does amqclchl.tab get rewritten every time? Or does it get appended to?
|
I would suspect that it gets updated, if a matching channel is found and appended for new channels. You could easily try this. If a channel is deleted, the entry is marked as deleted, it is not removed from the file.
Quote: |
3.) What happens to this tab file if today I want to make a client channel table for client one to QM1, but tommorow I want to make another table for client two to QM2? Does the second client get the first's info in addition to his own?
|
Yes. That's why I saved the original copy and used that as a basis for any new queue manager connections.
Quote: |
4.) I see how I can create a channel table for a client so that he can connect to any other QM. But if I do this for QM99 from QM1, someone on QM99 still needs to define the SVRCONN channel on QM99, right?
|
Definitely correct.
Quote: |
5.) I assume the listner must be running on the remote queue manager for a client to connect?
|
Oh yeah, no listener, no channel communications.
Quote: |
6.) If I think my amqclchl.tab file is just a plain mess on the QMGR and want to start from scratch, what do I do? I remember reading somewhere that you can't delete this file. I think it may be a mess cuz when i look at it now, even though it is binary data, I can still see the channel name. It looks like it is being appended each time I create a new channel. And since the client looks thru this table alphabetically by channel name during connection, maybe I got some junk in there (I would think it would rollover to the next entry till it got a good connection, but right now, I don't which way is up )
|
First of all, you can delete the file; but you shouldn't. If you want to start from scratch, you have two options:
1/ delete and recreate the queue manager
2/ Use strmqm -c to recreate the file (and all other default objects). If it doesn't work, delete AMQCLCHL.TAB before executing the command.
If I am not totally mistaken, the client code looks through the file by queue manager name, not by channel name. It will retry all entries for a given queue manager name until a successful connection can be made.
Hope this helps,
Stefan
_________________
Stefan Sievert
IBM Certified * MQSeries
[ This Message was edited by: StefanSievert on 2002-02-20 16:39 ] |
|
Back to top |
|
 |
PeterPotkay |
Posted: Thu Feb 21, 2002 10:07 am Post subject: |
|
|
 Poobah
Joined: 15 May 2001 Posts: 7722
|
That was it!!!
When I created the CNTCONN table, I was supplying the QMNAME parameter. Thus, when the client (amqsputc) was attempting to find a match on QMNAME, it was failing, since there was no entry in the table with a blank QM. I just got into the habit of using amqsputc without the QMGR name parameter cuz I was always either using SET MQSERVER or using existing Channel Tables that our MQADMIN guys had set up, and they apparantly always used a blank QMNAME when making the CLNTCONN table.
The table is browsed for a match on the queue manager name by channel name order. I found this in the Client manual under the section "Examples of the MQCONN call". This section actually is very helpful in explaining why I was failing in detail.
Now, I still don't know why amqclchl.tab on my first queue manager was not getting updated. I'll look into that this weekend.
Stefan, just like you to clarify one thing. You say that you save the original copy of amqclchl.tab and use that as a basis for any new tables. Is this how u are doing it?
1. New queue manager has amqclchl.tab file.
2. Make copy called Originalamqclchl.tab
3. Make CLNTCONN channels for customer #1. This modifies amqclchl.tab.
4. Rename amqclchl.tab to Cutomer1amqclchl.tab
5. Make a copy of Originalamqclchl.tab and rename that copy of a copy back to the original name of amqclchl.tab
6. Make CLNTCONN channels for customer #2. This modifies amqclchl.tab (which is a copy of a copy of the original)
7. Rename this version of amqclchl.tab to Customer2amqclchl.tab.
So in this fashion, you have a library of channel tables for different customers, all are unique and seperate from each other, and you always have Originalamqclchl.tab to go back to for your original version.
_________________ Peter Potkay
Keep Calm and MQ On |
|
Back to top |
|
 |
StefanSievert |
Posted: Thu Feb 21, 2002 11:16 am Post subject: |
|
|
 Partisan
Joined: 28 Oct 2001 Posts: 333 Location: San Francisco
|
Quote: |
That was it!!!
When I created the CNTCONN table, I was supplying the QMNAME parameter. Thus, when the client (amqsputc) was attempting to find a match on QMNAME, it was failing, since there was no entry in the table with a blank QM. I just got into the habit of using amqsputc without the QMGR name parameter cuz I was always either using SET MQSERVER or using existing Channel Tables that our MQADMIN guys had set up, and they apparantly always used a blank QMNAME when making the CLNTCONN table.
The table is browsed for a match on the queue manager name by channel name order. I found this in the Client manual under the section "Examples of the MQCONN call". This section actually is very helpful in explaining why I was failing in detail.
|
Quote: |
Now, I still don't know why amqclchl.tab on my first queue manager was not getting updated. I'll look into that this weekend.
|
Let us know your findings, because this indeed is strange.
Quote: |
Stefan, just like you to clarify one thing. You say that you save the original copy of amqclchl.tab and use that as a basis for any new tables. Is this how u are doing it?
1. New queue manager has amqclchl.tab file.
2. Make copy called Originalamqclchl.tab
3. Make CLNTCONN channels for customer #1. This modifies amqclchl.tab.
4. Rename amqclchl.tab to Cutomer1amqclchl.tab
5. Make a copy of Originalamqclchl.tab and rename that copy of a copy back to the original name of amqclchl.tab
6. Make CLNTCONN channels for customer #2. This modifies amqclchl.tab (which is a copy of a copy of the original)
7. Rename this version of amqclchl.tab to Customer2amqclchl.tab.
So in this fashion, you have a library of channel tables for different customers, all are unique and seperate from each other, and you always have Originalamqclchl.tab to go back to for your original version.
|
Precisely! I just didn't make a copy of a copy of the original; I just saved it to a different directory and copied it from there before creating new channels. But that doesn't really make a difference.
Stefan
_________________ Stefan Sievert
IBM Certified * WebSphere MQ |
|
Back to top |
|
 |
kavithadhevi |
Posted: Thu Jun 13, 2002 5:59 am Post subject: |
|
|
 Master
Joined: 14 May 2002 Posts: 201 Location: USA
|
Hi,
i tried the TAB file setting, but i had no luck making it work. i need some help. these are the things i did to see whether it works.
OS - win 2000
MQ - ver 5.2
1. created a client conn channel in the QM in the server
2. copied the TAB file to c:\MQC\@ipcc directory in my MQ Client system.
3. Added these in the System env var
MQCHLLIB = c:\MQC\@ipcc
MQCHLTAB = AMQCHCHL.TAB
4. Rebooted the sys and tried exectuing
AMQSPUTC QName QMgrName
also tried this
AMQSPUTC QName *QMgrName
but it gives me a 2058 MQException. wat am i missing out ?Please suggest me to get it set. Your timely help is needed would be greatly appreciated. _________________ Thanks in Advance.
Kavitha
IBM Certified System Administrator
Websphere MQ v 5.3
www.zealphoenix.com |
|
Back to top |
|
 |
StefanSievert |
Posted: Thu Jun 13, 2002 1:24 pm Post subject: |
|
|
 Partisan
Joined: 28 Oct 2001 Posts: 333 Location: San Francisco
|
kavithadhevi wrote: |
3. Added these in the System env var
MQCHLLIB = c:\MQC\@ipcc
MQCHLTAB = AMQCHCHL.TAB
|
Hi,
it might just be a typo above, but the file name should be AMQCLCHL.TAB.
Can you verify that this is not the cause?
If it isn't, make sure your queue manager name is spelled precisely in the way it is named. AMQSPUTC does not convert arguments to uppercase.
If it still doesn't work, please
1/ execute strmqtrc
2/ invoke amqsputc ... ...
3/ execute endmqtrc
and take a look at the trace file produced in your c:\MQC\errors directory.
Stefan _________________ Stefan Sievert
IBM Certified * WebSphere MQ |
|
Back to top |
|
 |
kavithadhevi |
Posted: Mon Jun 17, 2002 10:46 am Post subject: |
|
|
 Master
Joined: 14 May 2002 Posts: 201 Location: USA
|
Hi,
Is the above is for multiple TAB files. if so i need some more clarification, i tried that but it didnt work , so i am trying to put it in the path variable and see how it works.
if you have any more ideas pls share it with me. _________________ Thanks in Advance.
Kavitha
IBM Certified System Administrator
Websphere MQ v 5.3
www.zealphoenix.com |
|
Back to top |
|
 |
StefanSievert |
Posted: Mon Jun 17, 2002 12:35 pm Post subject: |
|
|
 Partisan
Joined: 28 Oct 2001 Posts: 333 Location: San Francisco
|
kavithadhevi wrote: |
Hi,
Is the above is for multiple TAB files? |
No, you cannot use multiple TAB files. Putting the channel file in the path will not help you. The default location is the MQClient installation directory, which can be overridden by the MQCHLLIB variable.
Have you checked your spelling of the channel file? In your example you used AMQCHCHL.TAB, which is probably not the correct name (unless you renamed the file). It should be AMQCLCHL.TAB
Please verify,
Stefan _________________ Stefan Sievert
IBM Certified * WebSphere MQ |
|
Back to top |
|
 |
kavithadhevi |
Posted: Tue Jun 18, 2002 5:19 am Post subject: |
|
|
 Master
Joined: 14 May 2002 Posts: 201 Location: USA
|
Hi,
Thanks Stefan, it works like a charm. _________________ Thanks in Advance.
Kavitha
IBM Certified System Administrator
Websphere MQ v 5.3
www.zealphoenix.com |
|
Back to top |
|
 |
|
|
 |
Goto page 1, 2 Next |
Page 1 of 2 |
|
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
|
|
|
|