Author |
Message
|
Trainee |
Posted: Mon Feb 26, 2007 7:50 am Post subject: Client Channel Table question |
|
|
 Centurion
Joined: 27 Oct 2006 Posts: 124
|
Hi ,
I have MQClient on Windows,MQ Sever on two aix servers.
I created TESTQM1 and TESTQM2 on two of aix servers ,one on each.
Created Client Connection Channel Table for these queue managers and placed that Client connection Channel Table on Windows box and able to put the messages by doing amqsputc INPUTQ TESTQM1 or INPUTQ TESTQM2.
Question: Some where I read ,Instead of specific queuemanager name I can give the * to apply for any queue manager.
I gave amqsputc INPUTQ TESTQM* .My intention is it will try to connect to TESTQM1 ,If it fails(beacuse of listner down ..etc) it will try to connect the second entry in the Clinet channel tabel and will put the message to the INPUTQ TESTQM2.
But I am getting qmgr not available 2059 error while doing
amqsputc INPUTQ TESTQM*
Can any one help me out how to use * to access any queue manager in the client channel table.
Thank you
Trainee |
|
Back to top |
|
 |
jefflowrey |
Posted: Mon Feb 26, 2007 7:55 am Post subject: |
|
|
Grand Poobah
Joined: 16 Oct 2002 Posts: 19981
|
It's not a general purpose wildcard.
You need to either specify a single *, or a full queue manager name. _________________ I am *not* the model of the modern major general. |
|
Back to top |
|
 |
Vitor |
Posted: Mon Feb 26, 2007 7:58 am Post subject: Re: Client Channel Table question |
|
|
 Grand High Poobah
Joined: 11 Nov 2005 Posts: 26093 Location: Texas, USA
|
Trainee wrote: |
Some where I read ,Instead of specific queuemanager name I can give the * to apply for any queue manager.
|
You read it in the Clients manual, under the section "Multiple Queue Managers" in the chapter "Running client applications".
AFAIK you can only specify a properly qualified name, or an *. In the latter case, the first available queue manager in the table gets the connection.
Note that if you've connected to TESTQM1 and it subsequently fails, your application must detect this and reconnect via program logic. The client connection won't automatically switch. _________________ Honesty is the best policy.
Insanity is the best defence. |
|
Back to top |
|
 |
Trainee |
Posted: Mon Feb 26, 2007 11:09 am Post subject: |
|
|
 Centurion
Joined: 27 Oct 2006 Posts: 124
|
I tried with amqsputc INPUT *
I am getting the Qmgr Not available error,
If I give full queuemanager name
amqsputc INPUT TESTQM1 I am able to put the message to the INPUT queue
C:\Documents and Settings\Trainee>set MQCHLLIB=C:\
C:\Documents and Settings\Trainee>set MQCHLTAB=AMQCLCHL.TAB
C:\Documents and Settings\Trainee>amqsputc INPUT *
Sample AMQSPUT0 start
MQCONN ended with reason code 2059
C:\Documents and Settings\Trainee>amqsputc INPUT TESTQM1
Sample AMQSPUT0 start
target queue is INPUT
HI
Sample AMQSPUT0 end
I think it wont work for sample amqsputc it will work for javaclient or c or c++...
Thanks for your help
Trainee |
|
Back to top |
|
 |
jefflowrey |
Posted: Mon Feb 26, 2007 11:13 am Post subject: |
|
|
Grand Poobah
Joined: 16 Oct 2002 Posts: 19981
|
You probably have to quote the * to protect it from shell interpolation... _________________ I am *not* the model of the modern major general. |
|
Back to top |
|
 |
Nigelg |
Posted: Mon Feb 26, 2007 12:05 pm Post subject: |
|
|
Grand Master
Joined: 02 Aug 2004 Posts: 1046
|
The * goes in the CLNTCONN definition, not on the client app command line.
To determine which client channel to use when the table is in use, the client code matches the qmgr name passed to MQCONN. If the CLNTCONN channel has a *, it matches any qmgr name. _________________ MQSeries.net helps those who help themselves.. |
|
Back to top |
|
 |
bruce2359 |
Posted: Mon Feb 26, 2007 12:24 pm Post subject: |
|
|
Guest
|
* in Client Table
From the APR:
MQ client queue-manager groups: If the specified name starts with an asterisk (*), the queue manager to which connection is made might have a different name from that specified by the application. The specified name (without the asterisk) defines a group of queue managers that are eligible for connection. The implementation selects one from the group by trying each one in turn (in no defined order) until one is found to which a connection can be made. If none of the queue managers in the group is available for connection, the call once only. If an asterisk alone is pecified for default queue-manager group is used. |
|
Back to top |
|
 |
dalelane |
Posted: Mon Feb 26, 2007 3:19 pm Post subject: |
|
|
Novice
Joined: 21 Jul 2005 Posts: 15
|
This is an interesting topic.
I thought it might help to have a quick example of different ways that * can be used in client MQCONN calls, so there is a post on the WMQ blog about this today.
Hope it is helpful to someone! Comments (as always) are very welcome. |
|
Back to top |
|
 |
Trainee |
Posted: Tue Feb 27, 2007 6:12 am Post subject: |
|
|
 Centurion
Joined: 27 Oct 2006 Posts: 124
|
As you guys suggested I alter the Client Connection Channel QM Name Property to * Then I could able to put the messages using amqsputc.
amqsputc INPUT * ( without any quotes for *)
As of now it is solving my need.(So Problem is in defining my Client Connection Channel?)
Still I think I can use * in the MQCONN call may be not from the commandline from the client box even if I define Client Connection Channel with full QM Name in the QMName Property.
I really thankful to everyone for all your input
Trainee |
|
Back to top |
|
 |
|