Author |
Message
|
KAKEZ |
Posted: Sun Dec 08, 2002 10:39 pm Post subject: Reply-to queue alias - how to use it? |
|
|
Centurion
Joined: 10 Oct 2002 Posts: 117
|
Hi,
Who can give me clear explanations about it please?
- first: i read in the Intercommunication chapter 3 that an alias of queue manager or reply-to queue is set up by defining a remote queue definition in which the RQname field is blank; then after within an example of reply-to queue alias definition the RQname field is filled with a queue name!
- second: where exactly does the name resolution take place when using reply-to queue alias:
+ at the sending end when the application put the message
or
+ at the receiving end when the MCA gets the message and before delivering it to the destination queue?
thanks a lot for information
Jack
 |
|
Back to top |
|
 |
pgorak |
Posted: Mon Dec 09, 2002 1:42 am Post subject: |
|
|
 Disciple
Joined: 15 Jul 2002 Posts: 158 Location: Cracow, Poland
|
Suppose we the following definition on QM1:
DEF QL(QM2) USAGE(XMITQ)
and the following on QM2:
DEF QL(FROM.QM1) USAGE(NORMAL)
plus appropriate channel definitions on both queue managers.
Now, if we call MQOPEN on QM1 with MQOD.ObjectName set to "FROM.QM1" and MQOD.ObjectQMgrName set to "QM2" we receive the handle to QM2 queue on QM1. MQOPEN works this way if a queue manager does not recognize ObjectQMgrName as its own name. In other words, if there is no QM2 alias for QM1, QM1 searches for a transmission queue named QM2.
Then, if we call MQPUT with the handle received in the previous step, the message is delivered to QM2, which:
- recognizes QM2 as its own name
- finds FROM.QM1 local queue and puts the message to it
Hope that clarifies your situation a bit.
Piotr |
|
Back to top |
|
 |
KAKEZ |
Posted: Mon Dec 09, 2002 4:28 am Post subject: Reply-to queue alias |
|
|
Centurion
Joined: 10 Oct 2002 Posts: 117
|
thanks Piotr for reply,
- you talked about queue manager alias
- and i wonder exactly about reply-to queue alias
have some explanation about it
Jack |
|
Back to top |
|
 |
leongor |
Posted: Tue Dec 10, 2002 8:59 am Post subject: |
|
|
 Master
Joined: 13 May 2002 Posts: 264 Location: Israel
|
When you need replyQ to point to some remote queue and you don't want to set it hardcoded then
you create local definition of remote queue on local qmgr and use it in replyQ ( leaving replyQmgr empty ).
When you perform put replyQ is resolved to values in remoteQ.
This remoteQ is named replyQ alias. _________________ Regards.
Leonid.
IBM Certified MQSeries Specialist. |
|
Back to top |
|
 |
MichaelR |
Posted: Tue Dec 10, 2002 2:16 pm Post subject: |
|
|
Apprentice
Joined: 20 May 2002 Posts: 37 Location: Tampa
|
When you issue an MQOPEN, MQ uses the Queue Name AND the QMgr Name stored in your MQOD structure. The QMgr value is first checked to see if (1) it is blank or (2) a local definition exists of this name.
The local definition CAN be a QMgr Alias (as mentioned in other replies) or the name a a locally defined XMITQ. In simple distributed MQ implmentations it is recommended that you use XMITQ's equal to the names of your remote QMgr's. This enables simple name resolution. In a more complex implementation (i.e. multihopping or clustering) you will need to use QMgr Alias definitions.
This approach negates the need to define "finite" MQ defintions for each queue being used (i.e. me creating a RMTQ definition to you for replys).
Once you've done this it will make more sense.
MichaelR
 |
|
Back to top |
|
 |
PeterPotkay |
Posted: Wed Dec 11, 2002 4:37 pm Post subject: |
|
|
 Poobah
Joined: 15 May 2001 Posts: 7722
|
An App on QM1 puts a message to Queue1. On the MQPUT it specifies a Reply2Queue of 'ThisQueue' and a Reply2QueueManager of ' '.
If you went to Queue1 (it doesn't matter if Queue1 is local on QM1 or local to some other QM) and looked at this message's MQMD, you would see the Reply2Queue as 'ThisQueue' and the Reply2QueueManager as 'QM1'.
***********************************************
Now add a ReplytoQueue Alias:
DEFINE QREMOTE(ThisQueue) RNAME(ThatQueue) RQMNAME(SomeOtherQM)
Now do the same MQPUT as above: An App on QM1 puts a message to Queue1. On the MQPUT it specifies a Reply2Queue of 'ThisQueue' and a Reply2QueueManager of ' '.
If you went to Queue1 (it doesn't matter if Queue1 is local on QM1 or local to some other QM) and looked at this message's MQMD, you would see the Reply2Queue as 'ThatQueue' and the Reply2QueueManager as 'SomeOtherQM'.
The main purpose of this is to allow you to change the Reply2Queue info of what the app is using (ThisQueue) to whatever you want (ThatQueue). Also, when the app leaves the Reply2QueueManager name blank, they by default get the Local QM name inserted. You can override that behaviour to whatever QM you want. _________________ Peter Potkay
Keep Calm and MQ On |
|
Back to top |
|
 |
|