Author |
Message
|
mquser925 |
Posted: Wed May 14, 2008 12:43 am Post subject: System Architecture |
|
|
Acolyte
Joined: 22 Apr 2008 Posts: 61
|
I have some questions about my cluster setup. I'm running MQ V6.0 on RHEL.
So I have around 100 queue managers (group A) at different locations around the world that are all sending in messages. I have my central location which will receive these messages and local applications will pull some of the messages and some of the messages will be sent to a third location(group B). What do you think my best setup would be? I'm looking at creating a cluster for group A, a cluster for group B and my central location would be setup as a bridge overlapping both clusters. One other thing I don't want group A to have access to each others messages, I want only a one way link to the central location. |
|
Back to top |
|
 |
fjb_saper |
Posted: Wed May 14, 2008 2:15 am Post subject: Re: System Architecture |
|
|
 Grand High Poobah
Joined: 18 Nov 2003 Posts: 20756 Location: LI,NY
|
mquser925 wrote: |
One other thing I don't want group A to have access to each others messages, I want only a one way link to the central location. |
In that case you need a "star" or "hub and spoke" kind of setup. You cannot use a cluster as everybody talks directly to everybody in a cluster.
You can set up point 2 point for all 100 qmgrs to the hub and back.
All you need then is for the spoke to set the xmitq to the hub as default xmitq. I.E. when unknown send to the Hub and maybe it will be able to resolve or it will go to the hub's DLQ.
Have fun  _________________ MQ & Broker admin |
|
Back to top |
|
 |
mquser925 |
Posted: Wed May 14, 2008 3:21 am Post subject: |
|
|
Acolyte
Joined: 22 Apr 2008 Posts: 61
|
So if I define a cluster of queue managers at my central location with local queues defined, can I define these local queues as remote queues for group A? As in I want the cluster defined as one entity and all messages coming in will be distributed equally among the cluster. Am I making any sense here? |
|
Back to top |
|
 |
Vitor |
Posted: Wed May 14, 2008 3:29 am Post subject: |
|
|
 Grand High Poobah
Joined: 11 Nov 2005 Posts: 26093 Location: Texas, USA
|
mquser925 wrote: |
Am I making any sense here? |
No, not really.
If you want the messages distributed over a cluster of queues in the central location I'd doubt you want remote queues specifing a specific destination in group A.
What you want (as suggested) is a hub and spoke, where the hub is a gateway to the central cluster, with the same arrangement on the "other side" to group B. Both hubs will provide alias as necessary to bridge into and out of the central cluster. _________________ Honesty is the best policy.
Insanity is the best defence. |
|
Back to top |
|
 |
Vitor |
Posted: Wed May 14, 2008 3:32 am Post subject: |
|
|
 Grand High Poobah
Joined: 11 Nov 2005 Posts: 26093 Location: Texas, USA
|
Depending on how isolated you need everything to be, you might be able to do this with 3 overlapping clusters: one for group A, one for group B & one for the centre. The basic principle is the same as the A/B clusters would operate as hub & spoke but you'd avoid the need to define 100 point to point connections.
In any event, you'll need the hub gateway machines to be HA as they're single points of failure. _________________ Honesty is the best policy.
Insanity is the best defence. |
|
Back to top |
|
 |
mquser925 |
Posted: Wed May 14, 2008 5:51 am Post subject: |
|
|
Acolyte
Joined: 22 Apr 2008 Posts: 61
|
Vitor wrote: |
If you want the messages distributed over a cluster of queues in the central location I'd doubt you want remote queues specifing a specific destination in group A.
What you want (as suggested) is a hub and spoke, where the hub is a gateway to the central cluster, with the same arrangement on the "other side" to group B. Both hubs will provide alias as necessary to bridge into and out of the central cluster. |
Can you point me to some documentation that goes into detail about creating a hub/spoke environment and also creating a gateway? Does a gateway involve using aliases so all message traffic goes through the gateway? Wouldn't this slow down message traffic considerably? |
|
Back to top |
|
 |
Vitor |
Posted: Wed May 14, 2008 5:57 am Post subject: |
|
|
 Grand High Poobah
Joined: 11 Nov 2005 Posts: 26093 Location: Texas, USA
|
mquser925 wrote: |
Can you point me to some documentation that goes into detail about creating a hub/spoke environment and also creating a gateway? |
The Intercommunication manual describes hub & spoke, Cluster manual describes a gateway
mquser925 wrote: |
Does a gateway involve using aliases so all message traffic goes through the gateway? |
Yes
mquser925 wrote: |
Wouldn't this slow down message traffic considerably? |
Not as much as you might think, and if you're trying to segrigate traffic as you indicate you don't really have an option. _________________ Honesty is the best policy.
Insanity is the best defence. |
|
Back to top |
|
 |
mquser925 |
Posted: Wed May 14, 2008 7:21 am Post subject: |
|
|
Acolyte
Joined: 22 Apr 2008 Posts: 61
|
Ok so let me see if I understand this.
I define alias queues on all the group A QMs that point to the gateway QM. At the Gateway QM I then alias all the incoming traffic to the cluster? Is there any way to automatically equally distribute message traffic among the cluster? |
|
Back to top |
|
 |
Vitor |
Posted: Wed May 14, 2008 7:28 am Post subject: |
|
|
 Grand High Poobah
Joined: 11 Nov 2005 Posts: 26093 Location: Texas, USA
|
mquser925 wrote: |
I define alias queues on all the group A QMs that point to the gateway QM. |
Or use my suggestion on clustering
mquser925 wrote: |
Is there any way to automatically equally distribute message traffic among the cluster? |
The gateway to the central area should achieve this to the central cluster (which, if I have your archtecture straight, is the only place you want traffic disributed). _________________ Honesty is the best policy.
Insanity is the best defence. |
|
Back to top |
|
 |
mquser925 |
Posted: Thu May 15, 2008 3:18 am Post subject: |
|
|
Acolyte
Joined: 22 Apr 2008 Posts: 61
|
I am trying out a test setup, am I missing something here? I have my gateway setup on machine 15 with a cluster of 2 QMS also on machine 15.
I setup a source QM on machine 14 that will point to the gateway on machine 15 and the gateway will forward the messages to the cluster. I get a 2196 error (XMIT Q doesn't exist), also does this mean I have to create a pair of channels for each QM that I want to receive messages from at the gateway?
Creating Gateway QM
Code: |
#mq script
crtmqm -u SYSTEM.DEAD.LETTER.QUEUE GATEWAY
strmqm GATEWAY
runmqsc GATEWAY << EOF
DEFINE CHANNEL ('GATEWAY.TO.SOURCE') CHLTYPE(SDR) CONNAME('xx.xxx.x.14(2187)') XMITQ('SOURCE') TRPTYPE(TCP)
DEFINE CHANNEL ('SOURCE.TO.GATEWAY') CHLTYPE(RCVR) TRPTYPE(TCP)
DEFINE LISTENER('GATEWAY') TRPTYPE(TCP) CONTROL(QMGR) PORT(2187) REPLACE
DEFINE QREMOTE(DEMO) RNAME(' ') RQMNAME(' ')
START CHANNEL ('GATEWAY.TO.SOURCE')
START LISTENER ('GATEWAY')
EOF
|
Creating the source QM
Code: |
#mq script
crtmqm -u SYSTEM.DEAD.LETTER.QUEUE SOURCE
strmqm SOURCE
runmqsc SOURCE << EOF
DEFINE CHANNEL ('SOURCE.TO.GATEWAY') CHLTYPE(SDR) CONNAME('xx.xxx.x.15(2187)') XMITQ('GATEWAY') TRPTYPE(TCP)
DEFINE CHANNEL ('GATEWAY.TO.SOURCE') CHLTYPE(RCVR) TRPTYPE(TCP)
DEFINE LISTENER('SOURCE') TRPTYPE(TCP) CONTROL(QMGR) PORT(2187) REPLACE
START CHANNEL ('SOURCE.TO.GATEWAY')
START LISTENER ('SOURCE')
DEFINE QREMOTE(1.Q) RNAME(1.Q) RQMNAME(DEMO) XMITQ(GATEWAY)
EOF
|
Creating node1 of cluster
Code: |
#mq script
QM1=NODE1
QM2=NODE2
crtmqm -u SYSTEM.DEAD.LETTER.QUEUE $QM1
strmqm $QM1
runmqsc $QM1 << EOF
ALTER QMGR REPOS('DEMO')
DEFINE CHANNEL(TO.$QM1) CHLTYPE(CLUSSDR) TRPTYPE(TCP) CONNAME('xx.xxx.x.15(2188)') CLUSTER('DEMO') DESCR('TCP Cluster-sender channel from $QM1 to repository at $QM2') REPLACE
DEFINE CHANNEL(TO.$QM2) CHLTYPE(CLUSRCVR) TRPTYPE(TCP) CONNAME('xx.xxx.x.15(2189)') CLUSTER('DEMO') DESCR('TCP Cluster-receiver channel for queue manager $QM2') REPLACE
DEFINE QLOCAL(1.Q) CLUSTER('DEMO') REPLACE
DEFINE LISTENER ($QM1.LISTENER) TRPTYPE(TCP) CONTROL(QMGR) PORT(2188)
START LISTENER($QM1.LISTENER)
EOF
|
Creating Node2 of Cluster
Code: |
#mq script
QM1=NODE2
QM2=NODE1
crtmqm -u SYSTEM.DEAD.LETTER.QUEUE $QM1
strmqm $QM1
runmqsc $QM1 << EOF
ALTER QMGR REPOS('DEMO')
DEFINE CHANNEL(TO.$QM1) CHLTYPE(CLUSSDR) TRPTYPE(TCP) CONNAME('xx.xxx.x.15(2189)') CLUSTER('DEMO') DESCR('TCP Cluster-sender channel from $QM1 to repository at $QM2') REPLACE
DEFINE CHANNEL(TO.$QM2) CHLTYPE(CLUSRCVR) TRPTYPE(TCP) CONNAME('xx.xxx.x.15(2188)') CLUSTER('DEMO') DESCR('TCP Cluster-receiver channel for queue manager $QM2') REPLACE
DEFINE QLOCAL(1.Q) CLUSTER('DEMO') REPLACE
DEFINE LISTENER ($QM1.LISTENER) TRPTYPE(TCP) CONTROL(QMGR) PORT(2189)
START LISTENER($QM1.LISTENER)
EOF
|
Code: |
amqsput 1.Q SOURCE (from machine 14)
|
Last edited by mquser925 on Sat May 17, 2008 7:48 am; edited 2 times in total |
|
Back to top |
|
 |
Vitor |
Posted: Thu May 15, 2008 4:53 am Post subject: |
|
|
 Grand High Poobah
Joined: 11 Nov 2005 Posts: 26093 Location: Texas, USA
|
mquser925 wrote: |
does this mean I have to create a pair of channels for each QM that I want to receive messages from at the gateway?
|
Yes. Unless you cluster them as I suggested. _________________ Honesty is the best policy.
Insanity is the best defence. |
|
Back to top |
|
 |
mquser925 |
Posted: Thu May 15, 2008 5:30 am Post subject: |
|
|
Acolyte
Joined: 22 Apr 2008 Posts: 61
|
Vitor wrote: |
mquser925 wrote: |
does this mean I have to create a pair of channels for each QM that I want to receive messages from at the gateway?
|
Yes. Unless you cluster them as I suggested. |
Oh yeah, I missed that you mentioned that. Do you see anything wrong with my setup? |
|
Back to top |
|
 |
Vitor |
Posted: Thu May 15, 2008 6:09 am Post subject: |
|
|
 Grand High Poobah
Joined: 11 Nov 2005 Posts: 26093 Location: Texas, USA
|
mquser925 wrote: |
Do you see anything wrong with my setup? |
Aside from the missing channel / xmitq you suspected was missing, no. _________________ Honesty is the best policy.
Insanity is the best defence. |
|
Back to top |
|
 |
mquser925 |
Posted: Thu May 15, 2008 6:18 am Post subject: |
|
|
Acolyte
Joined: 22 Apr 2008 Posts: 61
|
Vitor wrote: |
mquser925 wrote: |
Do you see anything wrong with my setup? |
Aside from the missing channel / xmitq you suspected was missing, no. |
Isnt that xmitq created by default when the qm is created? |
|
Back to top |
|
 |
Vitor |
Posted: Thu May 15, 2008 6:24 am Post subject: |
|
|
 Grand High Poobah
Joined: 11 Nov 2005 Posts: 26093 Location: Texas, USA
|
mquser925 wrote: |
Isnt that xmitq created by default when the qm is created? |
No.
Well IIRC an object called SYSTEM.DEFAULT.XMIT.QUEUE is created (though I could just have imagined that) but so is SYSTEM.DEAD.LETTER.QUEUE. Doesn't mean the queue manager has a dead letter queue unless you do an ALTER, and where would this default xmitq point? How would the system work that out?
You need to configure all this. Or cluster. _________________ Honesty is the best policy.
Insanity is the best defence. |
|
Back to top |
|
 |
|