Author |
Message
|
fcx84 |
Posted: Wed Feb 10, 2010 6:28 pm Post subject: |
|
|
Novice
Joined: 09 Feb 2010 Posts: 12
|
Hi Vitor,
Alright I believe I get the point of using priority to solve the problem of sending to the least busy application. Even if there were to be multiple message A data, the data are processed in a FIFO manner.
Thanks.
I believe most of my queries to the requirement are almost solved. Just need to confirm a few more pointers.
I realise that actually I can create a model queue to cater for unlimited getter applications. Whenever there is a getter application or a new getter application wanted to communicate with the QM, it can be done.
As all theses applications creates dynamic queues.
I know there is 2 types of dynamic queues:
permanent and temporary.
If i specify all these dynamic queues to be permanent they will not be deleted unless i do it manually in MQ explorer or while issuing the MQCLose delete or delete purge option
However, still there is a issue of what happens if one the application is crashed/hang. Then how do i move the messages for that application queue to other queues with application open for inputs?
Thanks again for all the WMQ gurus for your aid. |
|
Back to top |
|
 |
Vitor |
Posted: Wed Feb 10, 2010 6:52 pm Post subject: |
|
|
 Grand High Poobah
Joined: 11 Nov 2005 Posts: 26093 Location: Texas, USA
|
fcx84 wrote: |
Hi Vitor,
I realise that actually I can create a model queue to cater for unlimited getter applications. Whenever there is a getter application or a new getter application wanted to communicate with the QM, it can be done.
As all theses applications creates dynamic queues. |
If all your getter applications are creating dynamic queues, how will any of the messages be routed to them? How are you passing the names to the sending application?
Again I wonder about your design.
fcx84 wrote: |
However, still there is a issue of what happens if one the application is crashed/hang. Then how do i move the messages for that application queue to other queues with application open for inputs?
|
If the queue manager is still running you can move the messages manually, just like you plan to clean up all these permanent dynamic queues you intend to use for no reason I can think of. _________________ Honesty is the best policy.
Insanity is the best defence. |
|
Back to top |
|
 |
fcx84 |
Posted: Wed Feb 10, 2010 7:57 pm Post subject: |
|
|
Novice
Joined: 09 Feb 2010 Posts: 12
|
Vitor wrote: |
If all your getter applications are creating dynamic queues, how will any of the messages be routed to them? How are you passing the names to the sending application? |
I believe the input application just need to specify the QM name and the dynamic queue name like e.g. DQ_NAme.* correct?
Vitor wrote: |
If the queue manager is still running you can move the messages manually, just like you plan to clean up all these permanent dynamic queues you intend to use for no reason I can think of.
|
I do not wish to have any manually intervention if possible. I would like to minimize the administrative work of WMQ. Can any automation be done like auto-forwarding to other queue if one of application is crash or hang.
For my this project I would only like to setup the WMQ once.
Thanks!  |
|
Back to top |
|
 |
mvic |
Posted: Thu Feb 11, 2010 1:02 am Post subject: |
|
|
 Jedi
Joined: 09 Mar 2004 Posts: 2080
|
fcx84 wrote: |
However, still there is a issue of what happens if one the application is crashed/hang. Then how do i move the messages for that application queue to other queues with application open for inputs? |
Normally one would simply restart the crashed application. |
|
Back to top |
|
 |
Vitor |
Posted: Thu Feb 11, 2010 7:03 am Post subject: |
|
|
 Grand High Poobah
Joined: 11 Nov 2005 Posts: 26093 Location: Texas, USA
|
fcx84 wrote: |
I believe the input application just need to specify the QM name and the dynamic queue name like e.g. DQ_NAme.* correct? |
No. You can create a queue like that, but you have to provide the full name for a get or a put. _________________ Honesty is the best policy.
Insanity is the best defence. |
|
Back to top |
|
 |
fcx84 |
Posted: Thu Feb 11, 2010 5:35 pm Post subject: |
|
|
Novice
Joined: 09 Feb 2010 Posts: 12
|
Vitor wrote: |
No. You can create a queue like that, but you have to provide the full name for a get or a put. |
when u say full name what u mean? full name for the queue name and queue manager. E.g. put to QM queue1? If that is the case then is rather dumb as each time the application which send messages to the QM will need to specify the queue name? Can't I just send or put a message to the QM and let the QM resolve the route for the message? |
|
Back to top |
|
 |
fjb_saper |
Posted: Thu Feb 11, 2010 7:46 pm Post subject: |
|
|
 Grand High Poobah
Joined: 18 Nov 2003 Posts: 20756 Location: LI,NY
|
fcx84 wrote: |
Vitor wrote: |
No. You can create a queue like that, but you have to provide the full name for a get or a put. |
when u say full name what u mean? full name for the queue name and queue manager. E.g. put to QM queue1? If that is the case then is rather dumb as each time the application which send messages to the QM will need to specify the queue name? Can't I just send or put a message to the QM and let the QM resolve the route for the message? |
intercommunications manual
You are awfully short on your design here.
What I understand is that you are talking about request / reply model.
Each requesting application can use a model queue to create it's own reply to queue. Realize that if the queue is not temporary / dynamic it will have to delete it when done.
What I don't get is why you would like messages for a crashed requester to be delivered anywhere else?? Doesn't make much sense...
Have fun  _________________ MQ & Broker admin |
|
Back to top |
|
 |
mvic |
Posted: Fri Feb 12, 2010 2:02 am Post subject: |
|
|
 Jedi
Joined: 09 Mar 2004 Posts: 2080
|
fcx84 wrote: |
when u say full name what u mean? full name for the queue name and queue manager. E.g. put to QM queue1? If that is the case then is rather dumb as each time the application which send messages to the QM will need to specify the queue name? Can't I just send or put a message to the QM and let the QM resolve the route for the message? |
Please try out the principles of your design on a test system and I think you will come back here with very different questions.
The application needs to assert to the queue manager the name of the queue it wants to put/get from. How could it be any other way? |
|
Back to top |
|
 |
Vitor |
Posted: Fri Feb 12, 2010 4:04 am Post subject: |
|
|
 Grand High Poobah
Joined: 11 Nov 2005 Posts: 26093 Location: Texas, USA
|
fcx84 wrote: |
If that is the case then is rather dumb as each time the application which send messages to the QM will need to specify the queue name? |
Well that's your opinion and I support your right to it. It's a miracle, given how dumb this is, that IBM have managed to sell so many copies of the software to so many compaines and we all manage to use it.
fcx84 wrote: |
Can't I just send or put a message to the QM and let the QM resolve the route for the message? |
No, you can't. For exactly the same reason a utility company can't just write your name on the front of an envelope and post it. The post office doesn't know where you live, they just know how to parse an address and deliver the letter.
To touch back on your other post (again theorising where you're going) using pub/sub changes this a little because a subscriber registers for the topics it wants delivered. Hence for this the queue manager does maintain a list and does ensure that a published topic is placed on the indicated queue for a subscriber.
But be aware: depending on how things are configured if a subscriber crashes messages already delivered will remain on the subscriber's queue. Or may not be delivered at all while the subscriber's down.
Also in your model if you set up all the possible targets for a message as subscribers not only will messages not auto-forward from a downed subscriber but each subscriber will get a copy of each published message. Use this method, you might want to ensure that the applications have business rules to deal with duplicate data.
Face it - your design has issues, your dream of a fully automated WMQ set up that you configure once and walk away is unrealistic and your life will become much better when you try working with the software rather than against it. Fix the design, build some resiliance (HA or other montioring) into it and accept that once in a while you'll need to actually do some work as a WMQ administrator.
WMQ is actually quite robust when used properly. And once you've thought about what you're trying to do some more, you'll realise it's not that dumb. _________________ Honesty is the best policy.
Insanity is the best defence. |
|
Back to top |
|
 |
mqjeff |
Posted: Fri Feb 12, 2010 4:28 am Post subject: |
|
|
Grand Master
Joined: 25 Jun 2008 Posts: 17447
|
fcx84 wrote: |
Can't I just send or put a message to the QM and let the QM resolve the route for the message? |
Yes, absolutely.
But the "route for the message" *is* the queue name. |
|
Back to top |
|
 |
|