Author |
Message
|
ucbus1 |
Posted: Wed Nov 28, 2007 8:40 am Post subject: Client Channel Definition table |
|
|
Knight
Joined: 30 Jan 2002 Posts: 560
|
I am working on a MQ 6.0 POC using CCDT in a java program.
I have a java program that runs on a client windows machine which uses CCDT file AMQCLCHL.TAB.
I have created two queue managers namely QM1 and QM2 in a cluster namely CLUS1 on a remote Solaris box. I have created two server connection channels namely on TEST1 and TEST2 on queue manager QM1.
I have also created two client connection channels namely TEST1 and TEST2 on queue manager QM1. While creating client connection channels, I have also specified queue manager name and connection name like hostname(port_number) TEST1 is for connecting to QM1 and TEST2 is for connecting to QM2.
Under QM1 queue manager in @ipcc directory, AMQCLCHL.TAB file got updated. I have done ftp of the CCDT file from solaris box to local machine where client java program is running. In the java program, I have given the local path to the CCDT file in the URL object.
I am passing queue manager and queue name as parameters which uses AMQCLCHL.TAB to connect to the remote queue manager QM1 in the cluster CLUS1.
When I run the java program using QM1 queue manager it works fine. But when I pass QM2 queue manager as parameter the program fails with the following error code.
MQJE016: MQ queue manager closed channel immediately during connect
Reason 2009
My aim is to test a scenario when QM1 is not available, client java program must connect to the other available queue manager QM2 b/c both queue managers are in the same cluster.
I appreciate if anyone can give me some more inputs how to achieve this scenario.
Thank you! |
|
Back to top |
|
 |
Vitor |
Posted: Wed Nov 28, 2007 9:03 am Post subject: Re: Client Channel Definition table |
|
|
 Grand High Poobah
Joined: 11 Nov 2005 Posts: 26093 Location: Texas, USA
|
ucbus1 wrote: |
I have also created two client connection channels namely TEST1 and TEST2 on queue manager QM1. While creating client connection channels, I have also specified queue manager name and connection name like hostname(port_number) TEST1 is for connecting to QM1 and TEST2 is for connecting to QM2.
Under QM1 queue manager in @ipcc directory, AMQCLCHL.TAB file got updated. I have done ftp of the CCDT file from solaris box to local machine where client java program is running. In the java program, I have given the local path to the CCDT file in the URL object.
|
So to dot the i & cross the t, both channels were created on QM1, the TAB file on QM1 in the @ipcc directory for QM1 contains both details and it's this file that you're using?
Because that certainly sounds right.
I know there has been some discussions in here about Java and TAB files that you should search for that might help (not a Java person personally). Also look up the 2009 code - there has been some talk on that & the TAB file might be a red herring disgusing a problem with QM2.
Aside from that, wait for a post from a proper Java person!!  _________________ Honesty is the best policy.
Insanity is the best defence. |
|
Back to top |
|
 |
fjb_saper |
Posted: Wed Nov 28, 2007 9:19 am Post subject: |
|
|
 Grand High Poobah
Joined: 18 Nov 2003 Posts: 20756 Location: LI,NY
|
Easy:
You have pointed your second client chl TEST2 to QM2 but the corresponding svr chl does not exist on QM2 ( you never said you created any)...
Now either keep the qmgr name blank on the client conn chls or put some dummy in. Use the same dummy for both chls.
Read the manuals (client + prog) and find out what happens if you use the chl tbl with '*MYDUMMY' as qmgr name....
Enjoy  _________________ MQ & Broker admin |
|
Back to top |
|
 |
ucbus1 |
Posted: Wed Nov 28, 2007 9:42 am Post subject: |
|
|
Knight
Joined: 30 Jan 2002 Posts: 560
|
Yes, I have created Server connection channel on QM2 few minutes back and the 2009 error has disappeared and the client program could connect to QM2 using CCDT. I am reading the posts related to CCDT. But, when I have ended the queue manager QM1 in the cluster and when the client java program using CCDT tries to connect to QM1, since QM1 is not available, it should connect to QM2. right? This did not happen and I am still working on it...
Thanks! |
|
Back to top |
|
 |
JosephGramig |
Posted: Wed Nov 28, 2007 9:44 am Post subject: |
|
|
 Grand Master
Joined: 09 Feb 2006 Posts: 1244 Location: Gold Coast of Florida, USA
|
No. This is what fjb_saper was hinting at with his example. _________________ Joseph
Administrator - IBM WebSphere MQ (WMQ) V6.0, IBM WebSphere Message Broker (WMB) V6.1 & V6.0
Solution Designer - WMQ V6.0
Solution Developer - WMB V6.1 & V6.0, WMQ V5.3 |
|
Back to top |
|
 |
jefflowrey |
Posted: Wed Nov 28, 2007 9:48 am Post subject: |
|
|
Grand Poobah
Joined: 16 Oct 2002 Posts: 19981
|
JosephGramig wrote: |
No. This is what fjb_saper was hinting at with his example. |
Unless both channels have 'QM1' as the qmgrname, but different connames... _________________ I am *not* the model of the modern major general.
Last edited by jefflowrey on Wed Nov 28, 2007 9:48 am; edited 1 time in total |
|
Back to top |
|
 |
JosephGramig |
Posted: Wed Nov 28, 2007 9:48 am Post subject: |
|
|
 Grand Master
Joined: 09 Feb 2006 Posts: 1244 Location: Gold Coast of Florida, USA
|
|
Back to top |
|
 |
JosephGramig |
Posted: Wed Nov 28, 2007 9:57 am Post subject: |
|
|
 Grand Master
Joined: 09 Feb 2006 Posts: 1244 Location: Gold Coast of Florida, USA
|
Jeff
Even if both CLNTCONNs have QM1 in it, only the one that matches the QMGR name will work (unless the you use *QM1). _________________ Joseph
Administrator - IBM WebSphere MQ (WMQ) V6.0, IBM WebSphere Message Broker (WMB) V6.1 & V6.0
Solution Designer - WMQ V6.0
Solution Developer - WMB V6.1 & V6.0, WMQ V5.3 |
|
Back to top |
|
 |
ucbus1 |
Posted: Wed Nov 28, 2007 10:09 am Post subject: |
|
|
Knight
Joined: 30 Jan 2002 Posts: 560
|
Yes, it is working perfectly. I have created MYGROUP in the queue manager names in both client connection channels and in the client java program, I have used *MYGROUP as parameter and when I ended Q MGR QM1, then the messages are being put to QM2 in the cluster and vice versa.
I did not realize how easy it is...
Thanks for your inputs! |
|
Back to top |
|
 |
|