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 » Problem mapping qalias to a clustered queue

Post new topic  Reply to topic
 Problem mapping qalias to a clustered queue « View previous topic :: View next topic » 
Author Message
Mike Brady
PostPosted: Sun Apr 09, 2017 11:22 pm    Post subject: Problem mapping qalias to a clustered queue Reply with quote

Newbie

Joined: 04 Jul 2001
Posts: 8

Consider the following MQ v8 configuration on RHEL.

Within an enterprise there are several queue managers, and a single cluster to which they all belong.
One of these QMs acts as a gateway to an external partner. The partner QM and the gateway QM are connected using Sender/Receiver channels.

On the partner QM, a remote queue is defined, e.g.
define qremote('ABC') rname('ABC.REMOTE') rqmname('gateway QM name') defbind(NOTFIXED)

On the gateway QM, there is an alias queue defined, e.g.
define qalias('ABC.REMOTE') target('ABC.CLUSTERED') defbind(NOTFIXED)

On yet another QM in the enterprise, the local clustered queue 'ABC.CLUSTERED' is defined.

The external partner puts a message to the 'ABC' queue. The message arrives at the gateway queue manager but is then written to the DLQ, reason is MQRC_UNKNOWN_ALIAS_BASE_Q.
One more thing, the application writing to the 'ABC' queue is written in Java. After the sender queue object has been created, it can be seen that the BaseQueueManagerName (spelling?) has not been set - it's actual value is an empty string.

From what I've read, I believe the above scenario should allow the message to be routed to the local 'ABC.CLUSTERED' queue. Can someone point out why this is not happening?
Back to top
View user's profile Send private message
PaulClarke
PostPosted: Mon Apr 10, 2017 12:39 am    Post subject: Reply with quote

Grand Master

Joined: 17 Nov 2005
Posts: 1002
Location: New Zealand

If I had to guess, and I'm not familiar with this scenario, would the problem not be that the resolution of the alias queue can not be done on the same queue manager? In other words, trying to resolve ABC.REMOTE on gateway QM the Queue Manager will look for ABC.CLUSTERED on gateway QM and not find it.

What happens if you change the definition to

DEFINE QREMOTE('ABC.REMOTE') RNAME('ABC.CLUSTERED') RQMNAME(' ')

Cheers,

Paul
_________________
Paul Clarke
MQGem Software
www.mqgem.com
Back to top
View user's profile Send private message Visit poster's website
exerk
PostPosted: Mon Apr 10, 2017 1:18 am    Post subject: Reply with quote

Jedi Council

Joined: 02 Nov 2006
Posts: 6339

Personally I wouldn't allow a direct connection from an external partner into one of my clusters, I'd put in an additional layer of abstraction (an external gateway) and hop it through to the cluster, for example:

Code:
Partner Queue Manager: DEFINE QREMOTE(SEND.TO.MIKE.BRADY) RNAME(MIKE.BRADY) RQMNAME('MB's External Gateway Name') XMITQ('MB's External Gateway Name')

Your External Gateway: DEFINE QREMOTE(MIKE.BRADY) RNAME(ABC.CLUSTERED) RQMNAME('Cluster Alias') XMITQ('MB's Cluster Gateway Name')

Your Cluster Gateway: DEFINE QREMOTE('Cluster Alias') RNAME( ) RQMNAME( ) XMITQ( )


It's the cluster alias that ensures the messages are sprayed across the cluster.
_________________
It's puzzling, I don't think I've ever seen anything quite like this before...and it's hard to soar like an eagle when you're surrounded by turkeys.
Back to top
View user's profile Send private message
rammer
PostPosted: Mon Apr 10, 2017 4:54 am    Post subject: Reply with quote

Partisan

Joined: 02 May 2002
Posts: 359
Location: England

Try this link it should give you what you want. Similar set up to what we have, along with adding permissions to the G/Way QMGR for the client coming in etc.

https://www.ibm.com/support/knowledgecenter/en/SSFKSJ_7.5.0/com.ibm.mq.con.doc/q017660_.htm
Back to top
View user's profile Send private message
Mike Brady
PostPosted: Tue Apr 11, 2017 10:13 pm    Post subject: Reply with quote

Newbie

Joined: 04 Jul 2001
Posts: 8

Thank you to everyone for your helpful advice. I eventually got the scenario working to my satisfaction by defining a clustered QM alias in the gateway, and having the partner QM use this value when issuing the request PUT.
The incantation that defines the QM alias is

define qremote('name of QM as known to the partner') +
rname(' ') +
rqmname(' ') +
cluster('my cluster name') +
defbind(NOTFIXED) +
replace


I also defined a qalias to map the queue name specified by the partner to the target clustered queue. All now works just fine.

I think the 'magic' was in the clustered QM alias.
Back to top
View user's profile Send private message
tczielke
PostPosted: Wed Apr 12, 2017 12:47 pm    Post subject: Reply with quote

Guardian

Joined: 08 Jul 2010
Posts: 939
Location: Illinois, USA

Mike Brady wrote:
I think the 'magic' was in the clustered QM alias.


This document -> https://www.ibm.com/support/knowledgecenter/SSFKSJ_8.0.0/com.ibm.mq.dev.doc/q025990_.htm on name resolution helps explain more in detail what is happening on your gatway qmgr when the MQOPEN of ObjectQmgrName('gateway QM name') and ObjectName(''ABC.REMOTE') is performed. It passes through several iterations of that name resolution table before the queue is successfully opened.
_________________
Working with MQ since 2010.
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic  Reply to topic Page 1 of 1

MQSeries.net Forum Index » Clustering » Problem mapping qalias to a 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.