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 » Cannot Put To Clustered Queue

Post new topic  Reply to topic Goto page Previous  1, 2, 3
 Cannot Put To Clustered Queue « View previous topic :: View next topic » 
Author Message
Mr Butcher
PostPosted: Tue Aug 02, 2005 5:04 am    Post subject: Reply with quote

Padawan

Joined: 23 May 2005
Posts: 1716

Quote:
Do you know if I were to continue to use the redundant aliases in my definitions if it would cause any negative impact? Performance, etc. Aside from just being redundant and goofy?


it works, but it is confusing (at least to me )

lets have a look at the name resolution in your case.

your program opens MYAPPLICATION.OUT on APP01

1. the local definitions are checked for a queue named MYAPPLICATION.OUT, and the local defined alias is used.
the resolved targetqueue is QL.MUPRPWEB.OUT
(local queues are checked before cluster queues, as far as i know this will change in the future, or it will be possible to include local queues in the cluster round-robion mechanism. right now (version 5) this is not the case so, if a local queue is found, cluster queues are ignored).

2. the local definitions are checked for QL.MUPRPWEB.OUT, but nothing is found. Because APP01 is member of a cluster, the repository is checked (or the full repository is asked) for instances of QL.MUPRPWEB.OUT, and the proper information is passed from the full repository to APP01.

3. now, APP01 knows about QL.MUPRPWEB.OUT on WEB01 and WEB02, and one of the queues is chosen (if DEFBIND(OPEN), otherwise the target is chosen at put time).
Anyway, the resolved local queue on APP01 (a message can only be put to a local queue) is the SYSTEM.CLUSTER.TRANSMIT.QUEUE wich is the queue that is opened.

what of your definitions is unused? the cluster attribute of the alias defined on APP01 is unused. the alias on WEB01 and WEB02 is unused because the QL.MUPRPWEB.OUT is searched in the cluster.

i wrote before what to change to make things more clear.....

again, it will work the way it is now. if you want to change it, change it on all qmgrs at the same time. (lets assume you change app01 but leave app02 as it is, then app01 will see 3 destinations (because now the alias will be checked in the cluster and there is still an alias on app02 defined).

clustering makes administration easier (less objects needed), but it is strongly recommended to take some time and think about cluster structure and naming conventions and rules what to put into the cluster and what not. this will make life easier once the cluster is running.....
_________________
Regards, Butcher
Back to top
View user's profile Send private message
sysera
PostPosted: Tue Aug 02, 2005 5:12 am    Post subject: Reply with quote

Acolyte

Joined: 20 May 2005
Posts: 53

One thing I find interesting is that if I remove all of the unecessary aliases from the queue managers and I put:
from app01
1
2
3
4
5

from app02
6
7
8
9
10

Almost all ten messages end up on a single web server, instead of 5 and 5.
Back to top
View user's profile Send private message
Mr Butcher
PostPosted: Tue Aug 02, 2005 6:09 am    Post subject: Reply with quote

Padawan

Joined: 23 May 2005
Posts: 1716

how is the defbind of the qalias on WEB01 and WEB02? from your explaination i assume it is "defbind(open)"

change both queues to defbind(notfixed) and try again
_________________
Regards, Butcher
Back to top
View user's profile Send private message
Mr Butcher
PostPosted: Tue Aug 02, 2005 6:31 am    Post subject: Reply with quote

Padawan

Joined: 23 May 2005
Posts: 1716

one more word to the round robin machanism

this is not a cluster-wide mechanism, every putting queuemanager has its own "counters" (sorry, i do not know how to say better).

app01 does not know which queue is picked by app02, so this information is not involved in the queu selection of app01.

so if you test, put your scope on one queuemanager, lets say app01.

if the queues are defbind(open), and your test is "open, 5 puts, close",
you should see these results when yozu run the test for multiple times

test 1 on app01 -> all 5 messages to web01
test 2 on app01 -> all 5 messages to web02
test 3 on app01 -> all 5 messages to web01

so with defbind open you get a round robin on open basis.

now lets assume the queues are defbind(notfixed)
test 1 on app01 -> msgs 1,3,5 to web01, 2,4 to web02
test 2 on app01 -> msgs 1,3,5 to web02, 2,4 to web01 (hope so)

you get the difference between defbind(open) and defbind(notfixed).

now, if you do parallel testing on app02, this does not affect your testing on app01.
_________________
Regards, Butcher
Back to top
View user's profile Send private message
sysera
PostPosted: Tue Aug 02, 2005 6:56 am    Post subject: Reply with quote

Acolyte

Joined: 20 May 2005
Posts: 53

Mr Butcher wrote:
one more word to the round robin machanism

this is not a cluster-wide mechanism, every putting queuemanager has its own "counters" (sorry, i do not know how to say better).

app01 does not know which queue is picked by app02, so this information is not involved in the queu selection of app01.

so if you test, put your scope on one queuemanager, lets say app01.

if the queues are defbind(open), and your test is "open, 5 puts, close",
you should see these results when yozu run the test for multiple times

test 1 on app01 -> all 5 messages to web01
test 2 on app01 -> all 5 messages to web02
test 3 on app01 -> all 5 messages to web01

so with defbind open you get a round robin on open basis.

now lets assume the queues are defbind(notfixed)
test 1 on app01 -> msgs 1,3,5 to web01, 2,4 to web02
test 2 on app01 -> msgs 1,3,5 to web02, 2,4 to web01 (hope so)

you get the difference between defbind(open) and defbind(notfixed).

now, if you do parallel testing on app02, this does not affect your testing on app01.


Ah, I understand. Thank you.
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic  Reply to topic Goto page Previous  1, 2, 3 Page 3 of 3

MQSeries.net Forum Index » Clustering » Cannot Put To Clustered Queue
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.