Author |
Message
|
jeevan |
Posted: Thu Aug 17, 2006 3:50 am Post subject: what happens when the FR is suspended in a cluster? |
|
|
Grand Master
Joined: 12 Nov 2005 Posts: 1432
|
My client cluster designed is like this:
My client has only one side of the cluster. The other side is hold by third party vendor. Side here means FR.
in my client side PR-clussdr>FR-clussdr ->FR( other side)
There are clussdr channels from all 5 PR to FR to send the messages
But there are not clusrcvr channel from full repository to pr as the other side sends message to my cients FR or PR directly using distributed channel.
from other side FR->distributed chl->FR
FR->distributed chl->PR
PR->distributed chl->FR
PR->distributed chl->PR
In each of their 3 PR and onr FR they have 6 distributed channel to my clisent's 6 queue managers.
the problem is, my cient wants to suspent the FR for maintenance. What happens the communication when the FR in client side is suspend? can the PR of my client still be able to send message? How? As the FR is down?
I have to answer this before noon and I can not sumilate it. Theoritical understanding is that even one FR is down, the cluster still shold be functioning properly but seeing it prarctically, how the RP in my clients side would be able to send message as the FR is not functioning which is the only connection to the cluster?
Could you please help to understand this problem.
thanks a lot |
|
Back to top |
|
 |
Vitor |
Posted: Thu Aug 17, 2006 3:55 am Post subject: |
|
|
 Grand High Poobah
Joined: 11 Nov 2005 Posts: 26093 Location: Texas, USA
|
Okay, if I understand correctly you've got one FR and a PR, they've got the other FR and you plan to suspend yours. If this state of affairs has been in place for a while, all the channels you need should already be autodefined and everything should just keep running, apart from messages destined for the queue manager in suspension which will clearly have issues.
If you look in the Clustering manual (go on, try something new ) you'll see that the PRs are populated with the details they need to connect to other queue managers (hence Partial Repositiories). Communication does not flow via the FRs as you appear to believe.
If you try and add or remove any objects this won't be reflected in the cluster until the FR your side is back if I've got the topology straight. _________________ Honesty is the best policy.
Insanity is the best defence. |
|
Back to top |
|
 |
jeevan |
Posted: Thu Aug 17, 2006 4:12 am Post subject: |
|
|
Grand Master
Joined: 12 Nov 2005 Posts: 1432
|
Thank you for quick reply.
As I wrote, I understand the theory of cluster. Even if one FR is donw, still communication should take place. This is kinds of my first cluster project, so I have not done practically and I have to recommend them what will happen. They ask saying i need this infor for a meeting i am going to attend this afternoon. So, not much time to do simulation. I have gone through the manual a few times, not sure this situation is explained or not.
Yes, the topologies is straight. MY PR connect to MY side of FR ( which is going to be suspended for maintenance for about 15 minutes). Each of my PR and FR receive message from the other side using distributed channels so there is no problem in receiving message. But as the FR is donw, my only doubt was can my PR still send message to other part of the cluster? and How ( for understanding)
Thanks a lot for contribution |
|
Back to top |
|
 |
Vitor |
Posted: Thu Aug 17, 2006 4:17 am Post subject: |
|
|
 Grand High Poobah
Joined: 11 Nov 2005 Posts: 26093 Location: Texas, USA
|
A few minutes with the comand line (combined with your theoretical knowledge of clustering) should prove (or disprove) the existance of autodefined objects linking the PRs on your side with their targets on the other. The production of these objects is the very essence of clustering and one of the key reasons for doing it (the other being load balancing of course). _________________ Honesty is the best policy.
Insanity is the best defence. |
|
Back to top |
|
 |
Vitor |
Posted: Thu Aug 17, 2006 4:21 am Post subject: |
|
|
 Grand High Poobah
Joined: 11 Nov 2005 Posts: 26093 Location: Texas, USA
|
Of course, if you're right and the PRs are communicating via the FR your side then communication will be impossible while it's down (or donw ).
You could always spin up another FR your side temporarially & add it to the cluster. This would remove doubt.  _________________ Honesty is the best policy.
Insanity is the best defence. |
|
Back to top |
|
 |
jefflowrey |
Posted: Thu Aug 17, 2006 4:38 am Post subject: |
|
|
Grand Poobah
Joined: 16 Oct 2002 Posts: 19981
|
An MQ cluster will spontaneously form a fully connected network between every member of the cluster, if the traffic requires it.
To be more precise, when a queue manager in a cluster resolves a destination to another queue manager in the cluster - the cluster creates a direct channel from the sender qmgr to the receiver qmgr.
This is what makes building clusters across network boundaries so difficult.
So in no way does message traffic pass through the FRs. _________________ I am *not* the model of the modern major general. |
|
Back to top |
|
 |
jeevan |
Posted: Thu Aug 17, 2006 4:43 am Post subject: |
|
|
Grand Master
Joined: 12 Nov 2005 Posts: 1432
|
Thanks a lot.
I am actually working on my own for loadbalancing stuff. I have understanding in load balancing that there has to be gateway qmgr which should not hold the cluster queue which is receiving messages. However, i have not tested it. Only my question is that, can the message put by amqsput utility be loadbalanced as well or has to be put by the applicaiton as the message put by amqsput utility lack a lot of msg header stuff in my understanding?
Thanks a lot |
|
Back to top |
|
 |
jefflowrey |
Posted: Thu Aug 17, 2006 4:47 am Post subject: |
|
|
Grand Poobah
Joined: 16 Oct 2002 Posts: 19981
|
Load balancing is an entirely separate topic, and it depends on the version.
In all cases, it doesn't matter what program put the message. The only thing the program can do to affect load-balancing is specify the BINDING option on the put. If it's set to BIND_ON_OPEN, then the queue manager will only resolve the cluster queue when the queue is opened. If it's set to BIND_NOT_FIXED, the queue manager will resolve the cluster queue on every message.
Well, the sending application can also explicitly set the destination queue manager instead of allowing the cluster to resolve that.
In version 5, cluster name resolution will always choose a qlocal on the same queue manager if one exists. In version 6, this behavior is configurable. _________________ I am *not* the model of the modern major general. |
|
Back to top |
|
 |
Vitor |
Posted: Thu Aug 17, 2006 4:47 am Post subject: |
|
|
 Grand High Poobah
Joined: 11 Nov 2005 Posts: 26093 Location: Texas, USA
|
jeevan wrote: |
Only my question is that, can the message put by amqsput utility be loadbalanced as well or has to be put by the applicaiton as the message put by amqsput utility lack a lot of msg header stuff in my understanding?
|
Your understanding is fatally flawed.
A message put by amqsput is identical (if typcially smaller) to that put by an application. There's no "msg header stuff" involved in load balancing.
You need to extend your theoretical knowledge of clusters. _________________ Honesty is the best policy.
Insanity is the best defence. |
|
Back to top |
|
 |
jeevan |
Posted: Thu Aug 17, 2006 6:26 am Post subject: |
|
|
Grand Master
Joined: 12 Nov 2005 Posts: 1432
|
Vitor,
My only poit is that with amqsput utility, we can not set any parameter as in an application. For example, the redbook says:
Quote: |
The attributes on the DEFINE QLOCAL, DEFINE QREMOTE, and DEFINE
QALIAS commands also apply to the DISPLAY QUEUE command. To display
information about cluster queues, specify a queue type of QCLUSTER or the
keyword CLUSINFO on the DISPLAY QUEUE command, or use the command
DISPLAY QCLUSTER.
|
As we can not set the MQO_BIND parameter, I am wondering whether we can test the loadbalancing with amqsput. I am planning to do once I have some time.
Thanks a lot for the contribution. I visit the MQseries.net first before I do any other thing. This is such a wonderful forum. Thanks guys |
|
Back to top |
|
 |
jefflowrey |
Posted: Thu Aug 17, 2006 6:28 am Post subject: |
|
|
Grand Poobah
Joined: 16 Oct 2002 Posts: 19981
|
I think you will find that amqsput specifies MQOO_BIND_AS_QDEF.
This means that it will take the value of the binding option from the DEFBIND on the queue. _________________ I am *not* the model of the modern major general. |
|
Back to top |
|
 |
Vitor |
Posted: Thu Aug 17, 2006 6:38 am Post subject: |
|
|
 Grand High Poobah
Joined: 11 Nov 2005 Posts: 26093 Location: Texas, USA
|
jeevan wrote: |
Vitor,
My only poit is that with amqsput utility, we can not set any parameter as in an application. For example, the redbook says:
Quote: |
The attributes on the DEFINE QLOCAL, DEFINE QREMOTE, and DEFINE
QALIAS commands also apply to the DISPLAY QUEUE command. To display
information about cluster queues, specify a queue type of QCLUSTER or the
keyword CLUSINFO on the DISPLAY QUEUE command, or use the command
DISPLAY QCLUSTER.
|
As we can not set the MQO_BIND parameter, I am wondering whether we can test the loadbalancing with amqsput. I am planning to do once I have some time. |
Remember that amqsput is only an example program. One of the first things I do on a new site is recompile it with a decent buffer size. So you can use it, just change the required put options.
jeevan wrote: |
Thanks a lot for the contribution. I visit the MQseries.net first before I do any other thing. This is such a wonderful forum. Thanks guys |
I've got a warm fuzzy going
Can I respectfully suggest the first thing (if only from a time saving perspective) should be check the manuals? Whilst I agree this forum is an indispensible source of information and help, there can be a time lag in replying. _________________ Honesty is the best policy.
Insanity is the best defence. |
|
Back to top |
|
 |
jeevan |
Posted: Thu Aug 17, 2006 7:05 am Post subject: |
|
|
Grand Master
Joined: 12 Nov 2005 Posts: 1432
|
Sorry for the wrong quote. I wanted to share this one:
Quote: |
An option on the MQOPEN call, the MQOO_BIND_ON_OPEN option, allows you
to specify that, when there are multiple instances of the same queue within a
cluster, the target queue manager needs to be fixed. That is, all messages put to the
queue specifying the object handle returned from the MQOPEN call must be
directed to the same queue manager using the same route.
Use this option when you have messages with affinities. For example, if you need
a batch of messages all to be processed by the same queue manager, specify
MQOO_BIND_ON_OPEN when you open the queue. WebSphere MQ fixes the
queue manager and the route to be taken by all messages put to that queue.
If you do not want to force all your messages to be written to the same
destination, specify MQOO_BIND_NOT_FIXED on the MQOPEN call. This selects
a destination at MQPUT time, that is, on a message-by-message basis.
|
|
|
Back to top |
|
 |
Vitor |
Posted: Thu Aug 17, 2006 7:07 am Post subject: |
|
|
 Grand High Poobah
Joined: 11 Nov 2005 Posts: 26093 Location: Texas, USA
|
I think we all knew what you were getting at. Comments regarding the adaption of amqsput into a useful program still apply. _________________ Honesty is the best policy.
Insanity is the best defence. |
|
Back to top |
|
 |
jeevan |
Posted: Thu Aug 17, 2006 7:12 am Post subject: |
|
|
Grand Master
Joined: 12 Nov 2005 Posts: 1432
|
Yes, I am not argueing, but just correcting my mistake. I am working onn windows, how can i conpile(recompile ) the source code? In fact i have not done it before. |
|
Back to top |
|
 |
|