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 » Clustering » Implementing Hub and Spoke using clustering

Post new topic  Reply to topic
 Implementing Hub and Spoke using clustering « View previous topic :: View next topic » 
Author Message
murdeep
PostPosted: Tue Mar 14, 2006 9:51 am    Post subject: Implementing Hub and Spoke using clustering Reply with quote

Master

Joined: 03 Nov 2004
Posts: 211

Hi, I have a requirement to deloy a hub and spoke MQ network. In this network the spokes MUST NOT communicate with eachother directly but instead must route via the hub.

I understand how to achieve this quite easily using regular DQM objects (i.e. sdr/rcvr channels, xmitqs and qmgr aliases) but I'd like to know if I can reduce the administration by using clustering. By example, if I add a new spoke I don't want to have to visit all existing spokes to create a new qmgr alias.

Ideally, I would like to simply join a new spoke to the full repository hub and then when the new spoke needs to communicate with an existing spoke the message would route through the hub.

My understanding is that when using clustering if the new spoke had to communicate with an existing spoke that channels between the spokes would be dynamically created and the spokes would be directly connected.

Any advice would be very thoughtful.
Back to top
View user's profile Send private message
jefflowrey
PostPosted: Tue Mar 14, 2006 9:58 am    Post subject: Reply with quote

Grand Poobah

Joined: 16 Oct 2002
Posts: 19981

If the spokes must not communicate with each other, then you can not cluster the spokes.

I think that you can use default transmission queues to solve this problem, though.

Consider that each spoke has a default transmission queue to the hub and the hub has regular transmission queues for each spoke. Then I think (I haven't sat down and worked it out through the name resolution rules), the destination name should get re-resolved at the hub and go to the right place.
_________________
I am *not* the model of the modern major general.
Back to top
View user's profile Send private message
sandiksk
PostPosted: Tue Mar 14, 2006 10:24 am    Post subject: Reply with quote

Centurion

Joined: 08 Jun 2005
Posts: 133

Instead of clusturing why dont you write a script which creates those objects for you wheneer a new spoke is added. We have a hub ad spoke kind of environment, whenever a new spoke is added we just run that script. Of course this is possible only if you have some standard naming conventions.
Back to top
View user's profile Send private message
murdeep
PostPosted: Tue Mar 14, 2006 10:26 am    Post subject: Reply with quote

Master

Joined: 03 Nov 2004
Posts: 211

Jeff, yes that is what I thought immediately after hitting submit. I don't necessarily have to touch each spoke when a new spoke is added. By using the default transmit queue at the spokes pointing to the hub the put should resolve and the msg placed on the default xmitq with the rqmname set to the destination qmgr name and the rname set to the queue specified. Once at the hub the appropriate resolution will occur and the message routed accordingly.

I still think it will be an administration problem when it comes to queues though. If I add a new queue on one spoke I'll need to define remote queues at every other spoke.

I thought I read a post here that said I could do this via clustering. I searched but couldn't find it. Maybe I was being optimistic.
Back to top
View user's profile Send private message
jefflowrey
PostPosted: Tue Mar 14, 2006 10:50 am    Post subject: Reply with quote

Grand Poobah

Joined: 16 Oct 2002
Posts: 19981

Actually, with default transmission queues and default destinations (qmgr aliases) you don't need remote queues.

In other words, you should be able to configure just a set of qmgr aliases on the hub, and a default transmission queue on each spoke.

When you add a new spoke, create the channels, xmitq and a new qmgr alias on the hub - and channels and default xmitq on the spoke.
_________________
I am *not* the model of the modern major general.
Back to top
View user's profile Send private message
PeterPotkay
PostPosted: Tue Mar 14, 2006 2:00 pm    Post subject: Reply with quote

Poobah

Joined: 15 May 2001
Posts: 7722

Jeff, correct, but in this scenario, the app now needs to know the name of the queue on the remote spoke AND the name of the remote spoke QM. If clustered, them only the q name is needed. If remote queue defs are used in hub and spoke, again, the app only needs to know the name of the q, as the remote q def will take care of the remote QM name.

Of course, if these are reply messages, all the app has to do is honor the MQMD's ReplyToQ and ReplyToQM. But if the app is initiating the message, then somehow somewhere (hard coded -eck - or remote q def), the destination QM must be specified in a hub and spoke.
_________________
Peter Potkay
Keep Calm and MQ On
Back to top
View user's profile Send private message
jefflowrey
PostPosted: Tue Mar 14, 2006 2:10 pm    Post subject: Reply with quote

Grand Poobah

Joined: 16 Oct 2002
Posts: 19981

Peter -
If there were a standalone service that could provide that destination information to any application in the MQ network... then we'd be most of the way to a low-rent ESB.

Otherwise, yeah. Remote queue defs are needed - as we don't want the app to know the remote qmgr name (ick!).

Although... can we put remote queues only on the hub? If the app doesn't specify a qmgr name, and the message goes onto the default transmission queue and arrives at the hub... the name should get reresolved (maybe) to the remote queue name on the hub, which would provide the destination qmgr?

That is, instead of using Qmgr aliases to resolve the final destination, we just use "real" remote queues.
_________________
I am *not* the model of the modern major general.
Back to top
View user's profile Send private message
PeterPotkay
PostPosted: Tue Mar 14, 2006 5:27 pm    Post subject: Reply with quote

Poobah

Joined: 15 May 2001
Posts: 7722

hmmmm, never thought about that.

So we have our QM named SpokeP1, SpokeP2, SpokeP3, and of course HubP. Substitue the P for Q or for D or for I, depending on what environment you are in Production or QA or Dev or Integration. The QM names change between environments, but the queue names stay the same.

Any application connected to a spoke QM would specify the q name, and give a destination QM of XXX. Its gotta put something in the destination QM, otherwise the default XMITQ or QM Aliases don't ever get called upon. XXX would catch the default xmitq to the Hub. On the the Hub, a QM Alias for XXX blanks that QM name to blanks. Name resolution takes place again, at which point the remote q def on the hub comes into play and sends it to the correct spoke. By coding XXX, the app can keep the same XXX in DEV, QA and PROD. The code doesn't need to change as it migrates through the environments.

Kinda weird, but it would work I think.

By the way, we just recently abandoned our Hub and Spoke (after 3 years) in favor of Point to Point. Hub and Spoke looks pretty on paper, and works when it works, but everything depends on that one QM, the Hub. If, no WHEN, it has a problem, everything stops. There isn't a hardware clustering solution that is 100%, and even if there were, the Hub failing over means everything waits. Too many eggs in one basket IMHO.
_________________
Peter Potkay
Keep Calm and MQ On
Back to top
View user's profile Send private message
jefflowrey
PostPosted: Tue Mar 14, 2006 5:37 pm    Post subject: Reply with quote

Grand Poobah

Joined: 16 Oct 2002
Posts: 19981

PeterPotkay wrote:
Any application connected to a spoke QM would specify the q name, and give a destination QM of XXX. XXX would catch the default xmitq to the Hub. On the the Hub, a QM Alias for XXX blanks that QM name to blanks. Name resolution takes place again, at which point the remote q def on the hub comes into play and sends it to the correct spoke.

Kinda weird, but it would work I think.

yeah... that seems about right.

Edit: Except that the remote queues have to have unique names on the hub... So you end up having to essentially embed the qmgr name in the remote qmgr name anyway. Or using multiple XXX aliases on the spoke - which defeats the purpose.

PeterPotkay wrote:
By the way, we just recently abandoned our Hub and Spoke (after 3 years) in favor of Point to Point. Hub and Spoke looks pretty on paper, and works when it works, but everything depends on that one QM, the Hub. If, no WHEN, it has a problem, everything stops. There isn't a hardware clustering solution that is 100%, and even if there were, the Hub failing over means everything waits. Too many eggs in one basket IMHO.

I've always viewed a strict hub/spoke architecture (rather than a logical hub/spoke architecture) as a only being useful when the physical network requires it. Otherwise, the MQ network should be constructed as it makes the most sense from an infrastructure point of view.

But it sounds like in this case that the physical network does require it - that the spokes are perhaps customers rather than internal business units. And you would not want to cluster your customers together...
_________________
I am *not* the model of the modern major general.
Back to top
View user's profile Send private message
HubertKleinmanns
PostPosted: Tue Mar 21, 2006 10:46 am    Post subject: Re: Implementing Hub and Spoke using clustering Reply with quote

Shaman

Joined: 24 Feb 2004
Posts: 732
Location: Germany

murdeep wrote:
Hi, I have a requirement to deloy a hub and spoke MQ network. In this network the spokes MUST NOT communicate with eachother directly but instead must route via the hub.

I understand how to achieve this quite easily using regular DQM objects (i.e. sdr/rcvr channels, xmitqs and qmgr aliases) but I'd like to know if I can reduce the administration by using clustering. By example, if I add a new spoke I don't want to have to visit all existing spokes to create a new qmgr alias.

Ideally, I would like to simply join a new spoke to the full repository hub and then when the new spoke needs to communicate with an existing spoke the message would route through the hub.

My understanding is that when using clustering if the new spoke had to communicate with an existing spoke that channels between the spokes would be dynamically created and the spokes would be directly connected.

Any advice would be very thoughtful.


murdeep,

to separate the spokes from each other you need to set-up seperate clusters for each spoke. So you would not reduce the administration in this scenario.
_________________
Regards
Hubert
Back to top
View user's profile Send private message Visit poster's website
Display posts from previous:   
Post new topic  Reply to topic Page 1 of 1

MQSeries.net Forum Index » Clustering » Implementing Hub and Spoke using clustering
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.