Author |
Message
|
sandiksk |
Posted: Tue Sep 27, 2005 10:04 am Post subject: q.m alias |
|
|
Centurion
Joined: 08 Jun 2005 Posts: 133
|
hi guys,
I am trying the following setup. there are three qm's SAN1, SAN2, SAN3
i am trying the q.m alias definition. heres qwhat i did,
On SAN1 ::::
4 : dis qr(san3)
AMQ8409: Display Queue details.
DESCR( ) RNAME( )
RQMNAME(SAN3) XMITQ(SAN2)
CLUSTER( ) CLUSNL( )
QUEUE(SAN3) ALTDATE(2005-09-27)
ALTTIME(13.47.27) PUT(ENABLED)
DEFPRTY(0) DEFPSIST(NO)
SCOPE(QMGR) DEFBIND(OPEN)
TYPE(QREMOTE)
On SAN2:::::
dis QUEUE(SAN3)
AMQ8409: Display Queue details.
DESCR(WebSphere MQ Default Local Queue)
QUEUE(SAN3) CRDATE(2005-09-21)
USAGE(XMITQ)
and on SAN3 there is a local queue by name SAN3.LQ
when i try
C:\Documents and Settings\SVSXK2>amqsput SAN3 SAN1
Sample AMQSPUT0 start
target queue is SAN3
MQOPEN ended with reason code 2184
unable to open queue for output
Sample AMQSPUT0 end
C:\Documents and Settings\SVSXK2>mqrc 2184
2184 0x00000888 MQRC_REMOTE_Q_NAME_ERROR
Can Some one tell me what i am doing wrong
any help appreciated |
|
Back to top |
|
 |
jefflowrey |
Posted: Tue Sep 27, 2005 10:09 am Post subject: |
|
|
Grand Poobah
Joined: 16 Oct 2002 Posts: 19981
|
I guess it's not clear what you are trying to do?
Are you trying to send messages from SAN1 to SAN3?
Or from SAN2 to SAN3? Or SAN3 to SAN2? Or SAN3 to SAN1? Or what?
What you need, basically, is a remote queue that only has a RQMNAME defined and no queue name, and an XMITQ that matches that RQMNAME. These need to exist on the queue manager you are PUTting to. You also need to ensure that the PUTting application specifies both the queue and the QMName on the message.
Otherwise you can use clustering. _________________ I am *not* the model of the modern major general. |
|
Back to top |
|
 |
hopsala |
Posted: Tue Sep 27, 2005 10:13 am Post subject: |
|
|
 Guardian
Joined: 24 Sep 2004 Posts: 960
|
sandiksk wrote: |
C:\Documents and Settings\SVSXK2>amqsput SAN3 SAN1 |
What amqsput does here is MQCONN to SAN1 and MQPUT to queue SAN3; naturally there is no such queue. From the source code of the sample:
Quote: |
AMQSPUT0 has the following parameters
required:
(1) The name of the target queue
optional:
(2) Queue manager name
(3) The open options
(4) The close options
(5) The name of the target queue manager
(6) The name of the dynamic queue |
Note that (2) is the qmgr to which you issue MQCONN, and (6) is the remote qmgr name. What you need to do is have your application open using ObjectName=Q1 (being the name of some local queue on SAN3) and ObjectQmgrName=SAN3; you have to specify qmgr name otherwise it won't work. |
|
Back to top |
|
 |
sandiksk |
Posted: Tue Sep 27, 2005 10:23 am Post subject: |
|
|
Centurion
Joined: 08 Jun 2005 Posts: 133
|
regarding jeff questions
i Am trying to send messages from san1 to san3. Sorry i forgot to mentiion that and i also have a transmit queue SAN2 on SAN1. |
|
Back to top |
|
 |
wschutz |
Posted: Tue Sep 27, 2005 10:28 am Post subject: |
|
|
 Jedi Knight
Joined: 02 Jun 2005 Posts: 3316 Location: IBM (retired)
|
sandiksk wrote: |
regarding jeff questions
i Am trying to send messages from san1 to san3. Sorry i forgot to mentiion that and i also have a transmit queue SAN2 on SAN1. |
You might find that a simple old qremote definition might fit your needs. ie def qr(myqueue) rname(thatqueue) rqmname(sam3) _________________ -wayne |
|
Back to top |
|
 |
sandiksk |
Posted: Tue Sep 27, 2005 10:35 am Post subject: |
|
|
Centurion
Joined: 08 Jun 2005 Posts: 133
|
Sorry may be i am confusing u guys,
i want to send messages from SAN1 to SAN3 and it should go through SAN2. I defined channels between san1-san2 and san2-san3,
so all i want to do is send message from san1 to san3 which goes through san2. whats th ebest approch for this. I tried q.m alias, i am not sure whether i can do it with amqsput.
and reg Hopsala well i dont have any applications , thats why i am using amqsput and u said theres no queue qm3 well i have a qr(qm3) then why does amqsput fail to open qm3 |
|
Back to top |
|
 |
wschutz |
Posted: Tue Sep 27, 2005 10:42 am Post subject: |
|
|
 Jedi Knight
Joined: 02 Jun 2005 Posts: 3316 Location: IBM (retired)
|
Code: |
def qr(remotequeue) rname(someQonSan3) rqmname(san3) xmitq(san2)
|
will do the job. Make that definintion on san1. _________________ -wayne |
|
Back to top |
|
 |
jefflowrey |
Posted: Tue Sep 27, 2005 10:43 am Post subject: |
|
|
Grand Poobah
Joined: 16 Oct 2002 Posts: 19981
|
What you need, then, is to read the Intercommunications manual. _________________ I am *not* the model of the modern major general. |
|
Back to top |
|
 |
sandiksk |
Posted: Tue Sep 27, 2005 10:54 am Post subject: |
|
|
Centurion
Joined: 08 Jun 2005 Posts: 133
|
As pe wschutz
def qr(remotequeue) rname(someQonSan3) rqmname(san3) xmitq(san2)
will do the job. Make that definintion on san1.
Well i know i can do that , but i want to use q.m alias,
and in intercomm guide its says for qm alias
The application, or channel program, provides a queue name together with the
remote queue manager name when opening the queue.
If you have provided a remote queue definition with the same name as the queue manager name, and you have left the queue name in the definition blank,then the queue manager will substitute the queue manager name in the open call with the queue manager name in the definition.
So my question is how do u do this when u dont have any applications, i mean by the regular amqsput. |
|
Back to top |
|
 |
jefflowrey |
Posted: Tue Sep 27, 2005 10:55 am Post subject: |
|
|
Grand Poobah
Joined: 16 Oct 2002 Posts: 19981
|
Use the RFHUtil instead. Or the "q" program.
Or write a program. _________________ I am *not* the model of the modern major general. |
|
Back to top |
|
 |
sandiksk |
Posted: Tue Sep 27, 2005 10:57 am Post subject: |
|
|
Centurion
Joined: 08 Jun 2005 Posts: 133
|
Ok thanks guys,
thats all i need to know. |
|
Back to top |
|
 |
hopsala |
Posted: Tue Sep 27, 2005 11:15 am Post subject: |
|
|
 Guardian
Joined: 24 Sep 2004 Posts: 960
|
Now that's what I call service! in less than an hour, 10 posts, 3 assiting MQ experts and problem solved, bravo!  |
|
Back to top |
|
 |
|