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 » Get Messages from an ALIAS in a Cluster

Post new topic  Reply to topic
 Get Messages from an ALIAS in a Cluster « View previous topic :: View next topic » 
Author Message
naio
PostPosted: Thu Nov 08, 2012 6:41 am    Post subject: Get Messages from an ALIAS in a Cluster Reply with quote

Voyager

Joined: 08 Nov 2012
Posts: 82

Hi,

I am facing the following situation with a Cluster.

The Custer is composed by:

QMA : The one who do the WorkBalance and Entrance for all the MQ request, partial repository.
QM0: Full Repositorie with a BROKER.
QM1: Full Repositorie with a BROKER.

I have a Base Queue in QMA with the following configuration:

DEFINE QLOCAL ('REPLY.QUEUE') -
CLUSTER('CLUSTER') -
DESCR(' ') -
MSGDLVSQ(FIFO) -
REPLACE


And there are and Alias Queue to this one in QM1 and QM0 with the following configuration:

DEFINE QALIAS ('REPLY.QUEUE') -
DESCR(' ') -
TARGET('REPLY.QUEUE')


So when you put a Message in REPLY.QUEUE ALIAS in QM0 or QM1 the message arrives to the base Queue REPLY.QUEUE in QMA. I have configured this cluster some time ago, and It´s working just fine.


A new requirement Has arrive, to expose some services as HTTP, and a fisical Balancer was installed. So we construct a FLOW that receives HTTP invocations and direct them to que Flows, this Worked fine on NON cluster installation, but the balancer in the Cluster installation POINT to QM0 or QM1, since there are no Broker (and no flows) in QMA.
When the flows ends they write a message in the ALIAS Queues in QM0 or QM1 this message arrive at QMA, but the HTTP Flows are in Brokers Attached to QM1 and QM0 and trie to read the messages from the alias QUEUE in QM1 or QM0 and can not do it.


ERROR:

Error BIP2623E: Unable to open queue ''REPLY.QUEUE'' on WebSphere MQ queue manager ''QM0'': completion code 2; reason code 2001.
A message flow node failed to open the indicated WebSphere MQ message queue. The error codes relate to the MQOPEN call.
Check the WebSphere MQ completion and reason codes in the WebSphere MQ Application Programming Reference manual to establish the cause of the error, taking any appropriate action. It may be necessary to restart the message broker after you have performed this recovery action. If the open failed because the queue manager or queue did not exist, define these objects to WebSphere MQ. If the failure of the open was because incorrect object names were specified, correct the message flow configuration and attempt to redeploy the message broker.

RecoverableException BIP3114E: An internal error has occurred in node 'Service.WS_Service.REPLY.QUEUE'.
A message flow node failed to open the WebSphere MQ queue 'REPLY.QUEUE' owned by queue manager 'QM0' with the resulting WebSphere MQ completion and reason codes of 2 and 2001. This queue is used for internal communication between the listener process and the message flow. The message flow attempts to open the queue periodically until the queue is defined. The message flow is not fully operational until this has been done.




I have been reading about reading from a Alias Queue (tried with NO FIXED option, and so on), but for some reason the Flow is not resolving the QM, besides the Client is not very happy when changes are made and I am following the scenario trying to make changes that don´t affect the current installation.
Witch is the recomendation for this?

Thanks in advance!


Ignacio
Back to top
View user's profile Send private message
fjb_saper
PostPosted: Thu Nov 08, 2012 7:12 am    Post subject: Reply with quote

Grand High Poobah

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

Ignacio,

You do realize that you can only read messages from a queue that is defined as queue local to the qmgr you are connected to?
Having a queue alias to access said queue does not change anything...
_________________
MQ & Broker admin
Back to top
View user's profile Send private message Send e-mail
mqjeff
PostPosted: Thu Nov 08, 2012 7:14 am    Post subject: Reply with quote

Grand Master

Joined: 25 Jun 2008
Posts: 17447

You can not read any message from any qmgr that is not the qmgr you are connected to.

A message broker MQInput node can only read messages from the queue manager that the Broker is tied to.
Back to top
View user's profile Send private message
naio
PostPosted: Thu Nov 08, 2012 8:15 am    Post subject: Reply with quote

Voyager

Joined: 08 Nov 2012
Posts: 82

Ok,

So I can PUT messages But NOT read them in and for the Alias Queue if am not connected to the QM where the base Queue is.

Any solution to this?
I suggest to enqueue in a LOCAL QUEUE in QM1 or QM0 instead of enqueue in the Alias, so the MQInput node can get the message from it and then pass ir to the HTTReply.
It´s the only solution that I am getting, otherwise as far as I have undestood you, the messages enqueued in QMA should go (by some flow) to a Queue in QM1 or Qm0 and then being read there by the MQInput node ().


I am right?

Thanks masters!!!!


Ignacio
Back to top
View user's profile Send private message
mqjeff
PostPosted: Thu Nov 08, 2012 8:19 am    Post subject: Reply with quote

Grand Master

Joined: 25 Jun 2008
Posts: 17447

You put *two* copies of the base queue, one on each queue manager.
Back to top
View user's profile Send private message
naio
PostPosted: Thu Nov 08, 2012 8:45 am    Post subject: Reply with quote

Voyager

Joined: 08 Nov 2012
Posts: 82

mmmmm, If I create a copy of the Reply Queue in QM1 or QM0, the messages will be placed and read from there, That will work for HTTP invocations, but for MQ invocations que aplication that request and wait for the response will be waiting in QMA.


I think that I will suggest, to set the REPLYTOQ in the MQMD of the HTTP invocation to a QUEUE.HTTP and then read messages from there.


Thanks you very much, your help was great!!!



Ignacio
Back to top
View user's profile Send private message
fjb_saper
PostPosted: Thu Nov 08, 2012 5:04 pm    Post subject: Reply with quote

Grand High Poobah

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

naio wrote:
mmmmm, If I create a copy of the Reply Queue in QM1 or QM0, the messages will be placed and read from there, That will work for HTTP invocations, but for MQ invocations que aplication that request and wait for the response will be waiting in QMA.


I think that I will suggest, to set the REPLYTOQ in the MQMD of the HTTP invocation to a QUEUE.HTTP and then read messages from there.


Thanks you very much, your help was great!!!



Ignacio


Not quite clear why you're having trouble. Is the reply qmgr not set on the request?
_________________
MQ & Broker admin
Back to top
View user's profile Send private message Send e-mail
naio
PostPosted: Fri Nov 09, 2012 5:58 am    Post subject: Reply with quote

Voyager

Joined: 08 Nov 2012
Posts: 82

I mean, creating to copies of the ALIAS queue in QM1 and QM0 will make all the flows yo enqueue in those queues.
But MQ flows result should appear in the BASE queue on QMA, since there will be the aplication that invoque waiting for response and NOT in QM1 or QM0.

Anyway, my solution was, create a new QUEUE, called HTTP queue (for instance) and make the HTTP flows set this queue in que REPLYTOQ, in this way the messages will be dispatched to HTTP queue in QM1 or QM0 and the original flow remaing intact.


They are stressing it now, it´s working fine, let´s se....

anyway, thanks you a lot! (if it weren´t for your help I would be still trying to get messages from que ALIAS QUEUE in QMo or QM1)


Ignacio
Back to top
View user's profile Send private message
mqjeff
PostPosted: Fri Nov 09, 2012 6:09 am    Post subject: Reply with quote

Grand Master

Joined: 25 Jun 2008
Posts: 17447

Alias queues do not store messages.

You don't understand MQ networking very well.

You should draw a diagram, as follows.

Draw a box for each sending application. On the other side, draw a box for each receiving application.

Draw a box for each queue manager that the sending applications talk to. Draw lines from the sending application to their queue managers.

Draw a box for each queue manager that the receiving applications talk to. Draw lines from the receiving applications to their queue managers.

In each queue manager box, put in the queues that each application using that queue manager is READING FROM.

Now you have a set of pairs of names, {queue manager, queue}.

You can then use that to figure out how MQ will route messages between each sender and each receiver.
Back to top
View user's profile Send private message
bruce2359
PostPosted: Fri Nov 09, 2012 6:51 am    Post subject: Reply with quote

Poobah

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

Some basic mq principles:
- the only queue that can hold messages is a real QLocal; all other queue definitions must resolve (point) to a real local queue
- a QAlias definition is just another name for a QLocal (the target of the alias)
- a QRemote definition tells the qmgr to build a transmission queue header (XQH), and put it and the app message in a transmission queue (a QLocal with an XMITQ attribute).
- a QModel is a template for applications that want to create a real local queue dynamically (usually for the duration of the program)

- messages can be put to any real queue anywhere in the network, as long as there is a path to it (definitions and network connectivity)
- messages can only be consumed (get) from a real local queue by an application which has connected to the qmgr that owns the real local queue. Thus: "PUT GLOBAL, GET LOCAL"

This is all nicely documented in the WMQ primer and the Intercommunications manual (and InfoCenter equivalent)
_________________
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
Display posts from previous:   
Post new topic  Reply to topic Page 1 of 1

MQSeries.net Forum Index » Clustering » Get Messages from an ALIAS in a Cluster
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.