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 » MQ Client and Alias QMgr

Post new topic  Reply to topic Goto page Previous  1, 2
 MQ Client and Alias QMgr « View previous topic :: View next topic » 
Author Message
bruce2359
PostPosted: Wed Oct 26, 2011 6:30 am    Post subject: Reply with quote

Poobah

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

Some basics:
A WMQ Client platform has no qmgr, and thus, no queue definitions.

All of the definitions (QLocal, QRemote, QAlias, QModel, channels, etc.) are on the qmgr that the client app connects to.

So, your client app connects to a qmgr; then MQOPENs a queue definition. That definition can be any of the queue types. The resolved name will be a local queue. The local queue can be an xmit queue.

If you have no channels from this qmgr to other qmgrs, then you have no xmitqs. Therefore, it is not possible to have messages flow to other qmgrs.

Normally, a client only MQCONNects to one qmgr at a time.

So, without channels and xmitqs, how do you intend messages to flow to other qmgrs?
_________________
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
bcostacurta
PostPosted: Wed Oct 26, 2011 6:33 am    Post subject: Reply with quote

Acolyte

Joined: 10 Dec 2009
Posts: 71
Location: Luxembourg

I tried to indent correctly the previous schemas

I understand my request is somewhere confused.
Sorry.
I'll try to make it clear via basic schema hereafter.



### schema 1 ###

MQ 'external' ----> MQ 'frontal' ----> MQ backend'


QRemote definition: ----> Alias Qmgr = QRemote Alias-01: ----> QLocal-xxx
RNAME = QLocal-xxx ........ RNAME = Qlocal
RQMANME = Alias-01 ........ RQMNAME = backend


QRemote definition: ----> *same Alias Qmgr Alias-01*- ----> QLocal-other
RNAME = QLocal-other
RQMANME = Alias-01


This schema 1 works very fine.
So the Alias Qmgr is *one* route to serve *many* messages destinations Qlocal (so from external to backend via frontal).
I insist : *one* route to server *many* message destinations.
This works fine because the RQMNAME in 'external' is resolved via Alias Qmgtr on the 'frontal'



### schema 2 ###

MQ Client 'external' ----> MQ 'frontal' ----> MQ 'backend'

Put Queue-A ----> Queue-A = QLocal/QRemote (not Alias Qmgr) ----> Queue-A
Put Queue-B ----> Queue-B = QLocal/QRemote (not Alias Qmgr) ----> Queue-B


So the questions are :

Now my question is : how to do the same from a MQ client 'external' ?
Obviously the MQ client cannot used QRemote definition on his side.
Indeed the MQ client can only does a put to a QLocal or normal QRemote (mean not Alias Qmgr) on the 'frontal', correct ?
To put from Client 'external' to an Alias Qmgr on 'frontal' will not help : Alias Qmgr do not contain the RName for the 'backend(

Note : If I need to define all routes on the 'frontal' this is not a router, but a simple *one* QRemote 'frontal' to *one* QLocal 'backend'.

I hope my request is clear.
Thanks for attention.
Bruno
Back to top
View user's profile Send private message
mqjeff
PostPosted: Wed Oct 26, 2011 6:36 am    Post subject: Reply with quote

Grand Master

Joined: 25 Jun 2008
Posts: 17447

bcostacurta wrote:
Now my question is : how to do the same from a MQ client 'external' ?


Again, the client DOES NOTHING DIFFERENT in terms of routing.
Back to top
View user's profile Send private message
bcostacurta
PostPosted: Wed Oct 26, 2011 6:40 am    Post subject: Reply with quote

Acolyte

Joined: 10 Dec 2009
Posts: 71
Location: Luxembourg

Question is now closed.

As already mentioned before, indeed without a Xmitq header a message cannot flow from one (here 'frontal') to other (here 'backend').
And a MQ client does not produce Xmitq header.

Thanks to all for attention and clarification.

Bye,
Bruno
Back to top
View user's profile Send private message
exerk
PostPosted: Wed Oct 26, 2011 2:50 pm    Post subject: Reply with quote

Jedi Council

Joined: 02 Nov 2006
Posts: 6339

bcostacurta wrote:
..And a MQ client does not produce Xmitq header...

What does an application on the replying end of a Request/Response feedback need as a minimum to reply to a queue manager remote from the one to which it is 'attached' to? What is the difference between client application code and server application code? Why are you convinced that a client application cannot produce an XMIT header?
_________________
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
bruce2359
PostPosted: Wed Oct 26, 2011 3:58 pm    Post subject: Reply with quote

Poobah

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

bcostacurta wrote:

And a MQ client does not produce Xmitq header.

Neither client- nor server-bindings apps explicitly create xmitq headers. The xmitq header is created when an app MQPUTs a message to an xmitq. The receiver-side channel agent (MCA) uses the XQH to determine what to do with the message when it arrives at that end of the channel.

The usual request-reply model has the requesting app place the name of the reply-to-queue and (optionally) the reply-to-queue-manager in the MQMD. This is how the replying app finds out how to send the reply back to the requesting app.
_________________
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
bcostacurta
PostPosted: Wed Oct 26, 2011 11:33 pm    Post subject: Reply with quote

Acolyte

Joined: 10 Dec 2009
Posts: 71
Location: Luxembourg

Quote:
What does an application on the replying end of a Request/Response feedback need as a minimum to reply to a queue manager remote from the one to which it is 'attached' to?


The question I raised has *nothing* to do with the replying of reporting or any feedback, so called the request-reply model.

The question is about routing information and how to inform the router (called 'frontal' in schema) about the route (via the Alias Qmgr) to contact a backend from a MQ Client.

So how to send these information to the 'frontal' ?
As far as I can see *no* XMITQ header are produced by a MQ Client.
As other person mentioned in this mail thread, it simply seems that a MQ Client reach a MQ Server *without* routing or XMITQ information.

Bruno
Back to top
View user's profile Send private message
bruce2359
PostPosted: Thu Oct 27, 2011 4:33 am    Post subject: Reply with quote

Poobah

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

bcostacurta wrote:

As far as I can see *no* XMITQ header are produced by a MQ Client.
As other person mentioned in this mail thread, it simply seems that a MQ Client reach a MQ Server *without* routing or XMITQ information.

Exactly! When WMQ Client (client-bindings) apps issue any MQ calls, the call is shipped across the network to the SVRCONN channel of the qmgr named in the MQCONN. The call is processed on the qmgr the Client app MQCONNects to, just as if the application was a serve-bindings app. The r/c is returned to the WMQ Client app across the network.

An MQOPEN call issued by a WMQ Client app (again, shipped across to the SVRCONN channel) will drive the name resolution on the qmgr for the object name that the app MQOPENs. Again, this behavior is no different from a server-bindings app.

So, no XQH is needed or generated.

Your WMQ Client app could put some additional routing-type data into the application payload, or use Message Properties, in the messsage; and an app on the qmgr could interrogate this additional data to determine what next to do with the message.

Do some searching here for "hub queue manager". Hub qmgrs behave as message routers, BUT do the the routing via point-to-point (non-Client) channels, where XQHs are created. XQHs are NOT created explicitly by end-user applications. Rather, XQHs are created by a qmgr function when an app has MQOPENed and MQPUT a message to a transmission queue.
_________________
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
PeterPotkay
PostPosted: Thu Oct 27, 2011 9:24 am    Post subject: Reply with quote

Poobah

Joined: 15 May 2001
Posts: 7722

I'm sure Bruce knows the following two points, its just as I read them as written I could see how someone new to MQ could interpret them incorrectly.

bruce2359 wrote:
So, no XQH is needed or generated.

If the message needs to go to another QM, a XQH is needed and generated. Its just that the app does not need to create it. The local queue manager will create the XQH for your message as it places the message on the correct XMITQ as part of Name Resolution if that Name Resolution determines your MQOPEN call wants to send messages to a remote QM. If the message is going to resolve to a local queue on the QM the app is connected to, then there is no need for a Transmission Q Header (XQH).

Quote:
Rather, XQHs are created by a qmgr function when an app has MQOPENed and MQPUT a message to a transmission queue.

While the putting app's MQOPEN and MQPUT call may resolve to a XMITQ, an app should never code its destination queue as the XMITQ. It should code the application queue name and optionally the destination QM name if required and let MQ magic resolve the MQ calls to the correct XMITQ behind the scenes.
_________________
Peter Potkay
Keep Calm and MQ On
Back to top
View user's profile Send private message
Vitor
PostPosted: Thu Oct 27, 2011 9:33 am    Post subject: Reply with quote

Grand High Poobah

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

bcostacurta wrote:
As other person mentioned in this mail thread, it simply seems that a MQ Client reach a MQ Server *without* routing or XMITQ information.




Because a MQ Client doesn't reach a MQ Server - it's connected to it directly. No routing is possibly, feasible or sensible. All traffic goes to the queue manager (to give MQ Server it's formal name) from the client. If the message is destined for a target not hosted by the queue manager to which the client is connected, then the queue manager will add the transmission header & send it on it's way. The client is not involved in this process any more than it's involved in stripping off a transmission header from a message sent from a remote queue manager before reading it.
_________________
Honesty is the best policy.
Insanity is the best defence.
Back to top
View user's profile Send private message
bruce2359
PostPosted: Thu Oct 27, 2011 9:37 am    Post subject: Reply with quote

Poobah

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

I read the OP as misunderstanding how an MQPUT from a WMQ Client can cause a message to traverse a network without an XQH. The OP presumed that all messages must flow with an XQH. This is not the case with a WMQ Client app and SVRCONN channels.

XQHs are only used when a message needs to traverse a non-client channel - from Sender/Server to Receiver/Requester. These messages will have an XQH created from the QRemote definition that the application MQOPENs - if the app opens a QRemote definition.

So, if the OPs app (WMQ Client or server-bindings) opens a QLocal queue definition, the message is put to the local queue. If the app (WMQ Client or server-bindings) opens a QRemote definition, the qmgr will add an XQH to the message and place it in the transmission queue named explicitly in the QRemote def, or implicitly, or to the default-xmitq.

The OP needs to read about, and understand how client channels and client apps operate.
_________________
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 Goto page Previous  1, 2 Page 2 of 2

MQSeries.net Forum Index » General IBM MQ Support » MQ Client and Alias QMgr
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.