ASG
IBM
Zystems
Cressida
Icon
Netflexity
 
  MQSeries.net
Search  Search       Tech Exchange      Education      Certifications      Library      Info Center      SupportPacs      LinkedIn  Search  Search                                                                   FAQ  FAQ   Usergroups  Usergroups
 
Register  ::  Log in Log in to check your private messages
 
RSS Feed - WebSphere MQ Support RSS Feed - Message Broker Support

MQSeries.net Forum Index » General IBM MQ Support » Can get amqsputc to use MQCHLLIB & MQCHLTAB to connect t

Post new topic  Reply to topic Goto page Previous  1, 2
 Can get amqsputc to use MQCHLLIB & MQCHLTAB to connect t « View previous topic :: View next topic » 
Author Message
sebastia
PostPosted: Tue Sep 25, 2007 1:05 pm    Post subject: Reply with quote

Grand Master

Joined: 07 Oct 2004
Posts: 1003

Peter : I feel we are very close to the solution, but ... cant agree

I agree to specify a blank QM name for the MQCONN call
( not MQCONNX, but MQCONN, ok ??? )

I agree the channel table will be built with CLNTCONNs with blanks
for the QMNames ... no problem

But I have 200 ( or maybe 4.000) clients
that want to connect to a cluster of MQ Servers (about 4 or 6 machines)

If all the "AMQCLCHL.TAB" are generated as we said,
then all the Clients will try to connect to the same MQ Server
at the first try, and if it is "alive",
no MQ Client will use the second "CLNTCONN"

Am I right or not ?

Otherwise : what is the mechanism to try to distribute
4.000 client connections over a cluster of 8 MQ Clients ?

Thanks.
Back to top
View user's profile Send private message Visit poster's website
PeterPotkay
PostPosted: Tue Sep 25, 2007 1:10 pm    Post subject: Reply with quote

Poobah

Joined: 15 May 2001
Posts: 7723

your understanding is correct.

You could create 8 different channel tables and distribute them appropriatly.
_________________
Peter Potkay
Keep Calm and MQ On
Back to top
View user's profile Send private message
jefflowrey
PostPosted: Tue Sep 25, 2007 1:11 pm    Post subject: Reply with quote

Grand Poobah

Joined: 16 Oct 2002
Posts: 19981

http://www.mqseries.net/phpBB2/viewtopic.php?t=39631
_________________
I am *not* the model of the modern major general.
Back to top
View user's profile Send private message
PeterPotkay
PostPosted: Tue Sep 25, 2007 1:16 pm    Post subject: Reply with quote

Poobah

Joined: 15 May 2001
Posts: 7723

Jeff swoops in 2 seconds before I come to paste http://www.mqseries.net/phpBB2/viewtopic.php?t=39631



I have heard of this concept. I have never heard of anyone actually admitting they implemented it.

connecting app can't specify the QM name.
queue names and channel names need to be the same between all QMs
the load balancer needs to maintain the client connection even though the client may do something like:
MQCONN
MQOPEN
MQGET
sleep for 10 minutes
MQGET
sleep for 10 minutes
etc


Not that they SHOULD do that, but if they do....you don't want the load balancer sending the MQCONN request to QM1, the MQOPEN to QM2, the MQGET to QM3, the next MQGET to QM63.
_________________
Peter Potkay
Keep Calm and MQ On
Back to top
View user's profile Send private message
jefflowrey
PostPosted: Tue Sep 25, 2007 1:56 pm    Post subject: Reply with quote

Grand Poobah

Joined: 16 Oct 2002
Posts: 19981

If you've gone to the trouble to set up a primary and secondary client concentrator qmgr, then most of the requirements Peter lists should already be fulfilled, and it shouldn't be a big issue to change the channel tables to use a virtual IP.

Assuming the NLB (network load balancer) can handle the network level requirements of not trying to break a single connection and balance it (which most don't). And the requirements of not timing out a connection just because it's been seemingly idle (no heartbeats on an client channel sometimes).
_________________
I am *not* the model of the modern major general.
Back to top
View user's profile Send private message
sebastia
PostPosted: Tue Sep 25, 2007 9:36 pm    Post subject: Reply with quote

Grand Master

Joined: 07 Oct 2004
Posts: 1003

Jeff : I'am glad we have fulfilled almost all the requirements,
(even we didn't notice it)

Peter :

a) I think our router keeps the connection for all the session
and/or the client does not "sleep" in the middle of it.

b) I am trying to understand how the AMQCLCHL.TAB table is scanned,
so I can generate or use 8 diferent ones

Lets supose

1) blank QM name in MQCONN
2) channel table with CLNTCONNs wth blanks in the QMN's

IF THE TABLE IS SCANNED in ALPHABETICAL ORDER
(of the channel names)
then .... I dont know how to create diferent tables ...

( I guess it is NOT scanned alphabetically )

Or, lets go to the real life :
if we have (server) QM1 with IP=1.1.1.1,
QM2 with IP=2.2.2.2 ...
QM3 with IP = 3.3.3.3 ...

then the table for QMS1 could be (only CLNTCONN shown)

DEF CHANNEL(CONN.A) CHLTYPE(CLNTCONN) CONNAME('1.1.1.1(1415)')
DEF CHANNEL(CONN.B) CHLTYPE(CLNTCONN) CONNAME('2.2.2.2(1415)')
DEF CHANNEL(CONN.C) CHLTYPE(CLNTCONN) CONNAME('3.3.3.3(1415)')

Can you tell me how would ne the 2-nd Table ???
Back to top
View user's profile Send private message Visit poster's website
fjb_saper
PostPosted: Wed Sep 26, 2007 2:20 am    Post subject: Reply with quote

Grand High Poobah

Joined: 18 Nov 2003
Posts: 20768
Location: LI,NY

Quote:
then the table for QMS1 could be (only CLNTCONN shown)

DEF CHANNEL(CONN.A) CHLTYPE(CLNTCONN) CONNAME('1.1.1.1(1415)')
DEF CHANNEL(CONN.B) CHLTYPE(CLNTCONN) CONNAME('2.2.2.2(1415)')
DEF CHANNEL(CONN.C) CHLTYPE(CLNTCONN) CONNAME('3.3.3.3(1415)')

Can you tell me how would ne the 2-nd Table ???


Try using the same channel names on all 3 qmgrs:
Table 1 would be:

DEF CHANNEL(MYCONN1) CHLTYPE(CLNTCONN) CONNAME('1.1.1.1(1415)')
DEF CHANNEL(MYCONN2) CHLTYPE(CLNTCONN) CONNAME('2.2.2.2(1415)')
DEF CHANNEL(MYCONN3) CHLTYPE(CLNTCONN) CONNAME('3.3.3.3(1415)')

Table 2 would be:
DEF CHANNEL(MYCONN1) CHLTYPE(CLNTCONN) CONNAME('2.2.2.2(1415)')
DEF CHANNEL(MYCONN2) CHLTYPE(CLNTCONN) CONNAME('3.3.3.3(1415)')
DEF CHANNEL(MYCONN3) CHLTYPE(CLNTCONN) CONNAME('1.1.1.1(1415)')

Table 3 would be
DEF CHANNEL(MYCONN1) CHLTYPE(CLNTCONN) CONNAME('3.3.3.3(1415)')
DEF CHANNEL(MYCONN2) CHLTYPE(CLNTCONN) CONNAME('1.1.1.1(1415)')
DEF CHANNEL(MYCONN3) CHLTYPE(CLNTCONN) CONNAME('2.2.2.2(1415)')


Enjoy
_________________
MQ & Broker admin
Back to top
View user's profile Send private message Send e-mail
hilltops
PostPosted: Wed Sep 26, 2007 3:19 pm    Post subject: Reply with quote

Centurion

Joined: 01 Mar 2006
Posts: 112

I think you can achieve your goal without have many TAB files with a load-balancer like GSS ( from Cisco). But you will have to put up with the errors in the MQ logs files, resulting from the probes send by GSS to the queue managers to check for availability.

The load-balancer may be configured to round-robin to the various queue managers in your cluster.

Your select one of the queue managers from which to define your channels. The client channels MUST be defined with the IP of the load-balancer. The TAB file is then located where it can be references by the application using the MQCHLLIB & MQCHLTAB env variables.

Like I said, the only snag with this solution was the errors in the MQ logs, which does not impair the queue manager in any way, but are annoying as they are generated as often as the heart-beat probes from GSS.
Back to top
View user's profile Send private message
sebastia
PostPosted: Wed Sep 26, 2007 3:28 pm    Post subject: Reply with quote

Grand Master

Joined: 07 Oct 2004
Posts: 1003

mr hilltops :

There is another thread in this site I have opened
with very similar discussion with the one we have right now
in our hands.

I did ask for "Routers" that could do
"more or less clever" load balancing
between MQ Clients
and a Cluster of MQ Servers.

Now you talk about "load-balancer like GSS ( from Cisco)"

**** can you please provide a little bit more of informarion about the name / specs of this product ???

**** maybe an URL ???

Thanks a lot. Sebastian.
Back to top
View user's profile Send private message Visit poster's website
PeterPotkay
PostPosted: Thu Sep 27, 2007 5:20 pm    Post subject: Reply with quote

Poobah

Joined: 15 May 2001
Posts: 7723

sebastia wrote:
then the table for QMS1 could be (only CLNTCONN shown)

DEF CHANNEL(CONN.A) CHLTYPE(CLNTCONN) CONNAME('1.1.1.1(1415)')
DEF CHANNEL(CONN.B) CHLTYPE(CLNTCONN) CONNAME('2.2.2.2(1415)')
DEF CHANNEL(CONN.C) CHLTYPE(CLNTCONN) CONNAME('3.3.3.3(1415)')

Can you tell me how would ne the 2-nd Table ???



DEF CHANNEL(CONN.E) CHLTYPE(CLNTCONN) CONNAME('1.1.1.1(1415)')
DEF CHANNEL(CONN.F) CHLTYPE(CLNTCONN) CONNAME('2.2.2.2(1415)')
DEF CHANNEL(CONN.D) CHLTYPE(CLNTCONN) CONNAME('3.3.3.3(1415)')
_________________
Peter Potkay
Keep Calm and MQ On
Back to top
View user's profile Send private message
sebastia
PostPosted: Fri Sep 28, 2007 2:01 am    Post subject: Reply with quote

Grand Master

Joined: 07 Oct 2004
Posts: 1003

mr Saper : I agree they have to look like this ... (guess mr Peter does not)

You mean that, if I generate the table with this conents

DEF CHANNEL(CONN.A) CHLTYPE(CLNTCONN) CONNAME('1.1.1.1(1415)')
DEF CHANNEL(CONN.B) CHLTYPE(CLNTCONN) CONNAME('2.2.2.2(1415)')
DEF CHANNEL(CONN.C) CHLTYPE(CLNTCONN) CONNAME('3.3.3.3(1415)')

the first entry will be more used ...

And the second table I distribute to the second client

DEF CHANNEL(MYCONN1) CHLTYPE(CLNTCONN) CONNAME('2.2.2.2(1415)')
DEF CHANNEL(MYCONN2) CHLTYPE(CLNTCONN) CONNAME('3.3.3.3(1415)')
DEF CHANNEL(MYCONN3) CHLTYPE(CLNTCONN) CONNAME('1.1.1.1(1415)')

will use prefenerently "2.2.2.2" IP
and the 3-rd server with this table
will use "3.3.3.3" IP if possible ??

Peter : you tell us all the tables must be the same.
Can you confirm the entries will be used "random",
so the 3 (or 3000 clients) WILL NOT try to use the first entry ?

Thanks a lot.
Back to top
View user's profile Send private message Visit poster's website
PeterPotkay
PostPosted: Fri Sep 28, 2007 11:46 am    Post subject: Reply with quote

Poobah

Joined: 15 May 2001
Posts: 7723

each client will have 1 table available to them. you control which one. In that table it will try connecting alphabetically by channel name assuming the channels and your MQCONN call have a blank QM name specified.
_________________
Peter Potkay
Keep Calm and MQ On
Back to top
View user's profile Send private message
sebastia
PostPosted: Fri Sep 28, 2007 12:36 pm    Post subject: Reply with quote

Grand Master

Joined: 07 Oct 2004
Posts: 1003

*** now I saw the light ***

You, mr Peter, were changing the Channel names for the same IP,
while
mr Saper was changing the IP's for the same name !!!

Anyway, Peter, thank you for the great summary :

""" In that table it will try connecting alphabetically by channel name assuming the channels and your MQCONN call have a blank QM name specified """

Now I know what I shall be doing next week .....
Back to top
View user's profile Send private message Visit poster's website
Display posts from previous:   
Post new topic  Reply to topic Goto page Previous  1, 2 Page 2 of 2

MQSeries.net Forum Index » General IBM MQ Support » Can get amqsputc to use MQCHLLIB & MQCHLTAB to connect t
Jump to:  



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
Protected by Anti-Spam ACP
 
 


Theme by Dustin Baccetti
Powered by phpBB © 2001, 2002 phpBB Group

Copyright © MQSeries.net. All rights reserved.