Author |
Message
|
magvlvri |
Posted: Thu Sep 10, 2015 6:18 am Post subject: Can MQ Client listen for Msgs through BigIP? |
|
|
Apprentice
Joined: 07 Nov 2014 Posts: 26
|
I have a pretty simple question.
There are two IIB servers, A and B with their own queue managers with identical queue setup.
We have a WAS server that hosts an application which will need to pick up messages from the above two queue managers.
For example, Q1 is the queue where request messages are put by IIB servers and the WAS application needs to pick them up(from each IIB remote queue managers) and process and put the response on Q2 on the same queue manager(where it picked up the request).
How can this be achieved? We are checking to see if something like BigIP would help in WAS server to talk to both queue managers instead of creating seperate bindings for each queue manager? |
|
Back to top |
|
 |
mqjeff |
Posted: Thu Sep 10, 2015 6:23 am Post subject: |
|
|
Grand Master
Joined: 25 Jun 2008 Posts: 17447
|
You can use BigIP or F5 to balance which queue manager an MQ Client connects to.
Once the client is connected, you can't balance between which queue manager it talks to. The network load balancer has to allow the connections to remain uninterrupted.
You can, as you say, use multiple connections and have your application load balance between those.
You can also review the options in a CCDT. _________________ chmod -R ugo-wx / |
|
Back to top |
|
 |
Vitor |
Posted: Thu Sep 10, 2015 6:28 am Post subject: |
|
|
 Grand High Poobah
Joined: 11 Nov 2005 Posts: 26093 Location: Texas, USA
|
A synchronous client connection can be put through BigIP or other load balanced device. A queue manager to queue manager connection cannot (I know you're not talking about that but I'm forestalling a future question).
You need to configure the WAS connection pool to point to the VIP on the front of the balancer, and ensure that the balancer maintains TCP/IP sessions as "sticky". Don't ask me how you do that, or what actually happens, but from the front it means that each connecting thread is routed to one or other of the targets behind the balancer and all subsequent traffic from the same thread goes to that same target. The default (apparently) is to spray sessions across the available targets and that is a short road to 2009/2019/2059 errors. _________________ Honesty is the best policy.
Insanity is the best defence. |
|
Back to top |
|
 |
magvlvri |
Posted: Thu Sep 10, 2015 6:29 am Post subject: |
|
|
Apprentice
Joined: 07 Nov 2014 Posts: 26
|
I have been hearing from some of my associates that this BigIP or F5 based solution is only viable in case of an MQclient pushing messages to remote queue manager,but not possible to listen or pickup messages from multiple remote queue managers.
I couldnt find any mq or f5 documentation that helps as well. so i was wondering if it was possible at all. |
|
Back to top |
|
 |
mqjeff |
Posted: Thu Sep 10, 2015 6:31 am Post subject: |
|
|
Grand Master
Joined: 25 Jun 2008 Posts: 17447
|
magvlvri wrote: |
I have been hearing from some of my associates that this BigIP or F5 based solution is only viable in case of an MQclient pushing messages to remote queue manager,but not possible to listen or pickup messages from multiple remote queue managers.
I couldnt find any mq or f5 documentation that helps as well. so i was wondering if it was possible at all. |
There's nothing that should be able to block an MQClient connection from putting as well as getting messages - except MQ Security.
Again, the network load balancer can only be used when the connection is opened.
And each MQ Client connection can only talk to one queue manager. _________________ chmod -R ugo-wx / |
|
Back to top |
|
 |
Vitor |
Posted: Thu Sep 10, 2015 6:35 am Post subject: |
|
|
 Grand High Poobah
Joined: 11 Nov 2005 Posts: 26093 Location: Texas, USA
|
magvlvri wrote: |
I have been hearing from some of my associates that this BigIP or F5 based solution is only viable in case of an MQclient pushing messages to remote queue manager,but not possible to listen or pickup messages from multiple remote queue managers. |
Each thread still connects to a single queue manager so it's true that you can't service multiple queue managers on a single connection. You should get your associates to quote their sources.
magvlvri wrote: |
so i was wondering if it was possible at all. |
If it's not, don't tell the WAS servers here. I've had enough Prod issues this week without all the load balanced client connections stopping working because you can't actually do that......... _________________ Honesty is the best policy.
Insanity is the best defence. |
|
Back to top |
|
 |
magvlvri |
Posted: Thu Sep 10, 2015 6:37 am Post subject: |
|
|
Apprentice
Joined: 07 Nov 2014 Posts: 26
|
Thanks for replies mqjeff and vitor.
Any reference documentation for this would be very helpful.
I am interested in finding out how the connection once established would be released.
For example, the first time the WAS application comes up, if it successfully established the connection with one IIB queue manager, does the connection stay with the same queue manager forever or is the connection released and re-established every configurable time interval, in which case the load balancer can route it to the other IIB queue manager? |
|
Back to top |
|
 |
mqjeff |
Posted: Thu Sep 10, 2015 6:40 am Post subject: |
|
|
Grand Master
Joined: 25 Jun 2008 Posts: 17447
|
The Knowledge Center should have the reference information you're looking for.
An MQ Client connection is remains open until it's closed by the application, the queue manager (only in error conditions or security failures during connect) or when it's broken at the network level.
WAS may have additional controls on this, in the area of connection pool timeouts and etc. These should close the connection gracefully. _________________ chmod -R ugo-wx / |
|
Back to top |
|
 |
Vitor |
Posted: Thu Sep 10, 2015 6:45 am Post subject: |
|
|
 Grand High Poobah
Joined: 11 Nov 2005 Posts: 26093 Location: Texas, USA
|
magvlvri wrote: |
Any reference documentation for this would be very helpful |
If you find some, post the link. We had a similar requirement and just invented this from scratch.
magvlvri wrote: |
I am interested in finding out how the connection once established would be released. |
When the MQ client disconnects. If it's released before then (it's not "sticky") you get the errors I indicate above.
magvlvri wrote: |
For example, the first time the WAS application comes up, if it successfully established the connection with one IIB queue manager, does the connection stay with the same queue manager forever |
The balancer must actively ensure that this happens. Remember that the client side MCA is in a conversation with the server side MCA and that has to be maintained.
magvlvri wrote: |
is the connection released and re-established every configurable time interval, in which case the load balancer can route it to the other IIB queue manager? |
If that happens, the client side MCA is suddenly talking to a server side MCA that's never heard of it. The conversation is broken and you get errors. By default most balancing technologies think you can spray sessions in this manner; that's true for a web service model but not for MQ. _________________ Honesty is the best policy.
Insanity is the best defence. |
|
Back to top |
|
 |
mqjeff |
Posted: Thu Sep 10, 2015 6:51 am Post subject: |
|
|
Grand Master
Joined: 25 Jun 2008 Posts: 17447
|
Also, perhaps this thread doesn't belong in the IIB forum. _________________ chmod -R ugo-wx / |
|
Back to top |
|
 |
Vitor |
Posted: Thu Sep 10, 2015 7:02 am Post subject: |
|
|
 Grand High Poobah
Joined: 11 Nov 2005 Posts: 26093 Location: Texas, USA
|
mqjeff wrote: |
Also, perhaps this thread doesn't belong in the IIB forum. |
So moved. _________________ Honesty is the best policy.
Insanity is the best defence. |
|
Back to top |
|
 |
magvlvri |
Posted: Thu Sep 10, 2015 7:15 am Post subject: |
|
|
Apprentice
Joined: 07 Nov 2014 Posts: 26
|
So, keeping in mind the way the connection persists to just one queue manager even if the connection is facilitated through a load balancer, is it safe to say that if we truely want the WAS/standalone java client to pick up messages from both remote queue manages, the java client needs to be have seperate bindings to both the remote queue managers and thats the best way to go about it? |
|
Back to top |
|
 |
mqjeff |
Posted: Thu Sep 10, 2015 7:18 am Post subject: |
|
|
Grand Master
Joined: 25 Jun 2008 Posts: 17447
|
No.
If the load balancer spreads connections across both queue managers, then the same binding will point to both. So only one is needed.
But you have to be careful about qmgr names in your JNDI config.
There's a secondary point that MQ should be perfectly able to move messages to a single queue manager for you, without requiring you to talk to more than one. _________________ chmod -R ugo-wx / |
|
Back to top |
|
 |
Vitor |
Posted: Thu Sep 10, 2015 7:21 am Post subject: |
|
|
 Grand High Poobah
Joined: 11 Nov 2005 Posts: 26093 Location: Texas, USA
|
magvlvri wrote: |
is it safe to say that if we truely want the WAS/standalone java client to pick up messages from both remote queue manages, the java client needs to be have seperate bindings to both the remote queue managers and thats the best way to go about it? |
No, it's not safe to say either of those things.
IMHO it's best to have a single binding point to the VIP and have that service all the needed queue managers. It's for this reason I'm doing this in our Prod environment at the moment. _________________ Honesty is the best policy.
Insanity is the best defence. |
|
Back to top |
|
 |
PeterPotkay |
Posted: Thu Sep 10, 2015 4:18 pm Post subject: |
|
|
 Poobah
Joined: 15 May 2001 Posts: 7722
|
magvlvri wrote: |
So, keeping in mind the way the connection persists to just one queue manager even if the connection is facilitated through a load balancer, is it safe to say that if we truely want the WAS/standalone java client to pick up messages from both remote queue manages, the java client needs to be have seperate bindings to both the remote queue managers and thats the best way to go about it? |
I say yes. There is no way you are going to guarantee that each of your queue managers behind the Load Balancer has at least one thread pulling if you let the load balancer decide where to direct each connection attempt. Oh sure, you can make 1,000 connections and hope the law of large numbers gets at least one connection to every QM.
You need to control this and not leave it to chance ( as determined by the load balancer) when you need to ensure specific queues on specific QMs have connections. _________________ Peter Potkay
Keep Calm and MQ On |
|
Back to top |
|
 |
|