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 » Clusters and aliases discussion

Post new topic  Reply to topic Goto page Previous  1, 2
 Clusters and aliases discussion « View previous topic :: View next topic » 
Author Message
mattfarney
PostPosted: Thu Jan 19, 2012 3:02 pm    Post subject: Reply with quote

Disciple

Joined: 17 Jan 2006
Posts: 167
Location: Ohio

mqjeff wrote:
It's naught to do with internals.

QALIASes only override the ObjectQname on an MQOpen, they don't affect the ObjectQmgrName.

Cause, you know, they only have another queue name in them, not a qmgr name as well... if they had a qmgr name, they'd be a qremote, not a qalias.


So, a remoteQ writing to a local alias ends up with the realQMName (from the QR) so the alias look up fails since it only looks on the specified QM; while a local write to the alias (not specifying the qmname) ends up with no qm name, so the cluster resolution kicks in?

-mf
Back to top
View user's profile Send private message
bruce2359
PostPosted: Thu Jan 19, 2012 5:45 pm    Post subject: Reply with quote

Poobah

Joined: 05 Jan 2008
Posts: 9394
Location: US: west coast, almost. Otherwise, enroute.

mattfarney wrote:

So, a remoteQ writing to a local alias ends up with the realQMName (from the QR) so the alias look up fails since it only looks on the specified QM; while a local write to the alias (not specifying the qmname) ends up with no qm name, so the cluster resolution kicks in?

What?! This is not very technical, and makes little sense.

Name resolution is always done on the local qmgr where any app does an MQOPEN. The qmgr looks for local object definitions for a matching object name in this order:
1) QLocal
2) QModel
3) QAlias
4) QRemote
If no object by that name exists, then the qmgr looks in the repositories (PR, then FR) or a cluster definition that matches the name being resolved.

[edit]
If the object name resolves to a transmission queue, the message traverses the network and ends up at the receiving end of the channel. There the MCA drives name resolution on the RQMName, and then the RQName (from the XQH), as above.
[/edit]
_________________
I like deadlines. I like to wave as they pass by.
ב''ה
Lex Orandi, Lex Credendi, Lex Vivendi. As we Worship, So we Believe, So we Live.
Back to top
View user's profile Send private message
mattfarney
PostPosted: Fri Jan 20, 2012 9:21 am    Post subject: Reply with quote

Disciple

Joined: 17 Jan 2006
Posts: 167
Location: Ohio

We are not talking about first level name resolution. Both the QRemote and the direct open calls can find the alias on the gateway. Only the local write to the Qalias will resolve to remote cluster objects.

I'm trying to figure out why it works this way so that I can keep that in mind when dealing with my clusters moving forward.

-mf
Back to top
View user's profile Send private message
bruce2359
PostPosted: Fri Jan 20, 2012 9:28 am    Post subject: Reply with quote

Poobah

Joined: 05 Jan 2008
Posts: 9394
Location: US: west coast, almost. Otherwise, enroute.

mattfarney wrote:
We are not talking about first level name resolution.

What exactly and precisely are we talking about here?

mattfarney wrote:
Only the local write to the Qalias will resolve to remote cluster objects.

Please, oh please, use WMQ technical terminology. There is no such thing as a local write.

MQPUTs create messages, but do not drive name resolution.

Local object definitions, including QAlias definitions, may or may not resolve to cluster objects.

What is the point your are trying to make here?
_________________
I like deadlines. I like to wave as they pass by.
ב''ה
Lex Orandi, Lex Credendi, Lex Vivendi. As we Worship, So we Believe, So we Live.
Back to top
View user's profile Send private message
fjb_saper
PostPosted: Fri Jan 20, 2012 1:27 pm    Post subject: Reply with quote

Grand High Poobah

Joined: 18 Nov 2003
Posts: 20696
Location: LI,NY

IIRC the point he was trying to make was following:

Moving msgs from qmgr A to qmgr C, C being in a cluster and A not:
  • If your remote queue on A points to an alias queue on C and the alias queue on C points to a cluster q not present on C you get an error.
  • If instead the queue on C is a remote Q (with blank qmgr name) the call will resolve correctly...

_________________
MQ & Broker admin
Back to top
View user's profile Send private message Send e-mail
mattfarney
PostPosted: Fri Jan 20, 2012 5:10 pm    Post subject: Reply with quote

Disciple

Joined: 17 Jan 2006
Posts: 167
Location: Ohio

In the simplest possible terms,

How does MQ decide where to look when resolving a QAlias TARGQ in a clustered environment?

As a likely follow-on, why is this different if the message comes from outside the cluster?

If a QM in the cluster and a QM outside of the cluster write to the same object, I would expect the same result and that is *NOT* what happens.

-mf
Back to top
View user's profile Send private message
bruce2359
PostPosted: Fri Jan 20, 2012 5:15 pm    Post subject: Reply with quote

Poobah

Joined: 05 Jan 2008
Posts: 9394
Location: US: west coast, almost. Otherwise, enroute.

fjb_saper wrote:
IIRC the point he was trying to make was following:

Moving msgs from qmgr A to qmgr C, C being in a cluster and A not:
  • If your remote queue on A points to an alias queue on C and the alias queue on C points to a cluster q not present on C you get an error.
  • If instead the queue on C is a remote Q (with blank qmgr name) the call will resolve correctly...

So, you're saying that non-cluster qmgr A sends a message into cluster qmgr C, for delivery of a message outside cluster C (like qmgr D)? C is a hub.

If this is the case, then there will need to be a QR definition on C that resolves the queue-name and/or qmgrname (from XQH) to the leaving-the-cluster xmitq. Like this definition:
DEFINE QREMOTE(Q3.ALIAS) RNAME(Q3) XMITQ(D)


Unless I've completely lost the thread of this post, which is likely.
_________________
I like deadlines. I like to wave as they pass by.
ב''ה
Lex Orandi, Lex Credendi, Lex Vivendi. As we Worship, So we Believe, So we Live.
Back to top
View user's profile Send private message
fjb_saper
PostPosted: Fri Jan 20, 2012 11:52 pm    Post subject: Reply with quote

Grand High Poobah

Joined: 18 Nov 2003
Posts: 20696
Location: LI,NY

bruce2359 wrote:

So, you're saying that non-cluster qmgr A sends a message into cluster qmgr C, for delivery of a message outside cluster C (like qmgr D)? C is a hub.


I believe MattFarney had both C and D in the cluster. In C he had an alias queue pointing to D.

His point was that if connected to C you can post and see no problem.
If you send the message from A and target the alias Q on C you get an error...?
_________________
MQ & Broker admin
Back to top
View user's profile Send private message Send e-mail
mqjeff
PostPosted: Sun Jan 22, 2012 6:35 am    Post subject: Reply with quote

Grand Master

Joined: 25 Jun 2008
Posts: 17447

fjb_saper wrote:
bruce2359 wrote:

So, you're saying that non-cluster qmgr A sends a message into cluster qmgr C, for delivery of a message outside cluster C (like qmgr D)? C is a hub.


I believe MattFarney had both C and D in the cluster. In C he had an alias queue pointing to D.

His point was that if connected to C you can post and see no problem.
If you send the message from A and target the alias Q on C you get an error...?


Yes, this was my point about aliases only applying to the ObjectQName, not the ObjectQmgr name. If you send the message from A to C, then when it arrives on C, the queue name is going to get overriden by the qalias resolved value, but the qmgr name is still going to be pointing to C. And then the message won't get delivered, because the qalias points to a queue that's shared in the cluster on D, not local to C.
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 Page 2 of 2

MQSeries.net Forum Index » Clustering » Clusters and aliases discussion
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.