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 » General IBM MQ Support » Hopping messages

Post new topic  Reply to topic
 Hopping messages « View previous topic :: View next topic » 
Author Message
looney
PostPosted: Fri Oct 04, 2013 7:07 am    Post subject: Hopping messages Reply with quote

Newbie

Joined: 04 Oct 2013
Posts: 5

Hi all!

I've been reading this forum for a while now and I already learned a lot but I decided to register since I have a problem that I can't solve myself...

Our setup is as follows:

QM1 <-> GWQM1 <-> QM3
GWQM2 QM4


QM1: a queuemanager from an external company

GWQM1 and GWQM2: our gateways queuemanagers
QM3 and QM4: backend queuemanagers.

QM1 is clustered with GWQM1 and GWQM2 (cluster1)
GWQM1 and GWQM2 are clustered with QM3 and QM4 (cluster2)

At this moment, we have data flowing from QM1 over the gateways to QM3 and QM4. On the gateways we have a local queue hosted where the message arrive from QM1 over the cluster. A programs reads the message and puts it towards QM3 and QM4. This way we have logging if a message flows from QM1 to QM3 and QM4.
When this program fails, all messages get stuck.. We don't want this anymore and wrote channel exits to do the logging. Now I want to remove the hopping program and replace it by standard MQ hopping mechanisms.

How:
I replaced the local queue on the gateway with an alias queue that points to the queue on QM3 and QM4. For some flows this is working fine and the base queue gets resolved to the queues on QM3 and QM4 (clustering)! We receive data load balanced over the gateways and send it to QM3 and QM4 also loadbalanced.

So far so good


But, for some flows this setup doesn't work . All messages get stuck on the DLQ with the reason 2082 MQRC_UNKNOWN_ALIAS_BASE_Q.

I can see in the messages that they fill up the destination queuemanagers... The alias queue on the gateways have the defbind(notfixed) option so I think there application overrules this for some flows (I only receive data on 1 gateway). When the queuemanager is filled in in the MQMD of the messages, The basequeue is only searched local and I think this is why I get the 2082 (no cluster repo is checked, only a local search).

I found a solution that works:
I replaced the alias queues on the gateways with remote queues and filled in the rqmname with QMBACKEND and the rname with the queues on QM3 and QM4. On QM3 and QM4 I created an queuemanager alias: QMBACKEND.

I'm not happy with this solution since I don't want to make changes on my gateway every time I move the queues on the backend to another queuemanager...

Do you guys have any tips or tricks to solve this issue withtout:
1) Asking the external company to changed the defbind option on applicational level
2) Have a reference on the gateway queuemanagers to the backend queuemanagers: I think this is not flexible..


Thanks in advance!
Back to top
View user's profile Send private message
rcp_mq
PostPosted: Fri Oct 04, 2013 7:21 am    Post subject: Reply with quote

Centurion

Joined: 13 Dec 2011
Posts: 133

We have a similar(not identical) setup. Do you get 2189?
Back to top
View user's profile Send private message
looney
PostPosted: Fri Oct 04, 2013 7:24 am    Post subject: Reply with quote

Newbie

Joined: 04 Oct 2013
Posts: 5

Thx for your quick response!

No, the clustering resolution works fine for some flows and the messages reach the backend.

We only have problems when messages arrive on one gateway (I think because the application used the defbind on open option). Then we receive a 2082: MQRC_UNKNOWN_ALIAS_BASE_Q. .

I think this is because the qmgr only search for the targetq locally. Since it doesn't exist locally (it's a clustered queue on QM3 and QM4 (backends))
Back to top
View user's profile Send private message
exerk
PostPosted: Fri Oct 04, 2013 7:42 am    Post subject: Re: Hopping messages Reply with quote

Jedi Council

Joined: 02 Nov 2006
Posts: 6339

looney wrote:
...I can see in the messages that they fill up the destination queuemanagers...

Can you clarify that please? Do you mean that the external company queue manager is using a specific queue manager name and queue name when it puts certain messages, i.e. QM3 and QM4?
_________________
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
looney
PostPosted: Fri Oct 04, 2013 7:47 am    Post subject: Re: Hopping messages Reply with quote

Newbie

Joined: 04 Oct 2013
Posts: 5

exerk wrote:
looney wrote:
...I can see in the messages that they fill up the destination queuemanagers...

Can you clarify that please? Do you mean that the external company queue manager is using a specific queue manager name and queue name when it puts certain messages, i.e. QM3 and QM4?


I think they use the defbind on open option and specify the queue name.

This results in messages arriving on only one gateways with queuename (AQ.HOP) and queuemanger (GWQM1) filled in.

When hopping the message, the target queue is only searched on GWQM1 I think.. => 2082
Back to top
View user's profile Send private message
McueMart
PostPosted: Fri Oct 04, 2013 8:13 am    Post subject: Reply with quote

Chevalier

Joined: 29 Nov 2011
Posts: 490
Location: UK...somewhere

The behavior you are describing is obviously working as intended (http://publib.boulder.ibm.com/infocenter/wmqv7/v7r0/index.jsp?topic=%2Fcom.ibm.mq.csqsao.doc%2Ffm12800_1.htm)

Are you able to get them to modify the sending application?
Back to top
View user's profile Send private message
looney
PostPosted: Fri Oct 04, 2013 8:17 am    Post subject: Reply with quote

Newbie

Joined: 04 Oct 2013
Posts: 5

McueMart wrote:
The behavior you are describing is obviously working as intended (http://publib.boulder.ibm.com/infocenter/wmqv7/v7r0/index.jsp?topic=%2Fcom.ibm.mq.csqsao.doc%2Ffm12800_1.htm)

Are you able to get them to modify the sending application?


Nice, so my way of thinking was correct .

No that's the problem. The application on their side isn't in house developed... The defbind option isn't configurable, I already asked them
Back to top
View user's profile Send private message
JosephGramig
PostPosted: Fri Oct 04, 2013 8:59 am    Post subject: Reply with quote

Grand Master

Joined: 09 Feb 2006
Posts: 1244
Location: Gold Coast of Florida, USA

On the queue (QL, QA or QR) DEFBIND(NOTFIXED) is most certainly configurable. It should always be NOTFIXED and if the application needed BIND ON OPEN, it should say so on the open options (because only the application knows if it needs to bind or not).

It was tragic that IBM didn't make this the default (but you can and should change the default objects to make this your default).

If they targeted your Qmgr specifically in their message, then the QmgrAlias was the answer. You are correct that it is looking for the queue locally because the QmgrName is in the MQMD.

You didn't say if the business partner was connecting to you through their Qmgr or client. In this case, sounds like Qmgr.
Back to top
View user's profile Send private message AIM Address
Vitor
PostPosted: Fri Oct 04, 2013 9:45 am    Post subject: Reply with quote

Grand High Poobah

Joined: 11 Nov 2005
Posts: 26093
Location: Texas, USA

JosephGramig wrote:
On the queue (QL, QA or QR) DEFBIND(NOTFIXED) is most certainly configurable.


If the OP's application is selecting a binding option at put time through a hard coded (non-configurable) value, then it most certainly is not configurable by the OP.
_________________
Honesty is the best policy.
Insanity is the best defence.
Back to top
View user's profile Send private message
looney
PostPosted: Fri Oct 04, 2013 9:55 am    Post subject: Reply with quote

Newbie

Joined: 04 Oct 2013
Posts: 5

Vitor wrote:
JosephGramig wrote:
On the queue (QL, QA or QR) DEFBIND(NOTFIXED) is most certainly configurable.


If the OP's application is selecting a binding option at put time through a hard coded (non-configurable) value, then it most certainly is not configurable by the OP.


And I think this is the case..

They are connecting through their qmgr btw..

so I think the only simple solution would be to replace the alias by a remote queue and use the backend qmgr aliasen in the rqmname..
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 » General IBM MQ Support » Hopping messages
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.