Author |
Message
|
KIT_INC |
Posted: Fri Aug 05, 2016 6:30 am Post subject: How to get higher Subscription availability ? |
|
|
Knight
Joined: 25 Aug 2006 Posts: 589
|
I am using MQ 75 on linux and have a cluster of 4 Qmgrs. QM1... QM4.
I have a Topic (MYTOPIC) defined on QM1 and shared in the cluster. I have a durable subscription 'SUB1' define on QM1 subscribing to the Topic and a Queue MyQ to receive the publication. I have another durable subscription 'SUB2' define on QM2 subscribing to the Topic and a Queue MyQ to receive the publication. Since MYTOPIC is a cluster Topic, I can publish to the Topic from any of the 4 Qmgrs in the cluster and both SUB1 and SUB2 will get the publication. All this is normal.
When QM1 is down, I can still publish to MYTOPIC from the other Qmgs and SUB2 will get the publication. SUB1 will not get it until QM1 is backup.
My question is how can I improve the availability of publication to SUB1 when the Qmgr which hosts the subscription , in this case QM1, is down? I tried to add SUB1 under QM2 (or QM3 or QM4), but SUB1 is getting duplicate publications because of the multiple subscription.
I read about "Clone Support" but it seems to be JMS only and not for pre-defined MQ subscriptions. |
|
Back to top |
|
 |
mqjeff |
Posted: Fri Aug 05, 2016 6:43 am Post subject: |
|
|
Grand Master
Joined: 25 Jun 2008 Posts: 17447
|
|
Back to top |
|
 |
KIT_INC |
Posted: Fri Aug 05, 2016 8:59 am Post subject: |
|
|
Knight
Joined: 25 Aug 2006 Posts: 589
|
Quote: |
Why are you using a durable subscription |
Sorry, something I forgot to mention in my original post is
Destination for SUB1 is MyQ on QM3 and destination for SUB2 is MyQ on QM4.
We do not want the subscriber to miss any publication when it is not connected. BTW if it is a pre-defined sub, the default is durable.
If there is way to have a second SUB1 for availability, I probably will need to change the sub to non-durable, otherwise I will get the pub again when QM1 comes back up Will look into this further when I have the answer for the question on availability.
I reviewed the presentation pointed to by the link. But I still cannot get the answer. I probably need to read that a few more times.
While investigating, I also come across "MQSO_GROUP_SUB" But this is in the API call and not sure if it correspond to any attribute for MQSC DEF SUB. |
|
Back to top |
|
 |
mqjeff |
Posted: Fri Aug 05, 2016 9:44 am Post subject: |
|
|
Grand Master
Joined: 25 Jun 2008 Posts: 17447
|
|
Back to top |
|
 |
fjb_saper |
Posted: Sat Aug 06, 2016 10:58 pm Post subject: |
|
|
 Grand High Poobah
Joined: 18 Nov 2003 Posts: 20756 Location: LI,NY
|
In general not missing any published messages when the qmgr is down and receiving the published messages only once, means that you will need a cluster.
You will need a cluster alias and subscribe the clustered queue and cluster alias to the publication.
You will need a program that services all the queue instances in the cluster and you can no longer guarantee the sequence of the published messages.
The published messages will use the cluster round robing algorithm when delivered to the target queue.
Have fun  _________________ MQ & Broker admin |
|
Back to top |
|
 |
mqjeff |
Posted: Mon Aug 08, 2016 3:46 am Post subject: |
|
|
Grand Master
Joined: 25 Jun 2008 Posts: 17447
|
There's another set of questions to answer...
How long is the subscriber likely to be disconnected? Seconds? Minutes? Hours? Days? And what is the relationship to the rate of incoming messages?
Why is it likely to be disconnected? _________________ chmod -R ugo-wx / |
|
Back to top |
|
 |
KIT_INC |
Posted: Mon Aug 08, 2016 7:43 am Post subject: |
|
|
Knight
Joined: 25 Aug 2006 Posts: 589
|
At a high level, we are designing an error reporting system. QM1,2,3,4 are just us as a sample for asking the question. The cluster can be up to 100 Qmgrs. An "ERROR" topic is created shared in the cluster, so any of the Qmgr QM1...n can publish to the ERROR Topic. There is a single ERROR analyser program which subscribe to the Topic and generate statistics or alerts based on all messages published to the Topic., Error can also include warnings. So the rate is not high but it can happen anytime and warning can come more often depending of future rules.
There is a strange limitation that only pre-defined subscription can be used During the POC, without much thinking being put to availability, we have a subscription to ERROR Topic defined on QM1 with the destination Q (MyQ) on QM3. The analyser program running on QM3 is just reading messages from MyQ and everything works. Now we get into detail design and want some HA for the analyser. We already noticed during POC that when QM1 is down, the analyer is not getting anything until QM1 is backup. Because the analyer needs to read all ERROR publication from any Qmgr, it needs to be a durable subscriber when there is only 1 subscription.
In our case, we want the analyer to run all the time. We can have another instance of the analyer running ,for example , in QM4. But I think, the key is if we have more than one subscription, we will have duplication.
That'w why we were looking at "Clone Support" and MQSO_GROUP_SUB. But these do not apply to pre-defined subscription |
|
Back to top |
|
 |
mqjeff |
Posted: Mon Aug 08, 2016 8:36 am Post subject: |
|
|
Grand Master
Joined: 25 Jun 2008 Posts: 17447
|
Usually this kind of monitoring solution would drop data into a database after doing sufficient processing.
This would, among other things, solve the issue of duplicate subscriptions, if the database table was crafted correctly. _________________ chmod -R ugo-wx / |
|
Back to top |
|
 |
|