Author |
Message
|
slptiger |
Posted: Fri Jun 18, 2004 3:20 pm Post subject: MQ client access and remote queueing combined |
|
|
Newbie
Joined: 18 Jun 2004 Posts: 4
|
Hi all,
I don't know how to set up the channel and queue for using both client access and remote queueing combined. Does anybody successfully try that? I really appreciate if you can show me how to do the channel and queue setup for this particular configuration. Thank you. |
|
Back to top |
|
 |
jefflowrey |
Posted: Fri Jun 18, 2004 4:48 pm Post subject: |
|
|
Grand Poobah
Joined: 16 Oct 2002 Posts: 19981
|
You need different channels for clients than for "remote queuing".
In fact, you need different types of channels.
If I understand what you mean by "remote queueing", that is. _________________ I am *not* the model of the modern major general. |
|
Back to top |
|
 |
slptiger |
Posted: Fri Jun 18, 2004 7:59 pm Post subject: client access and remote queueing combined - help |
|
|
Newbie
Joined: 18 Jun 2004 Posts: 4
|
Hi JeffLowrey,
Thanks for your reply. I am very new to Websphere MQ. In the "quick beginnings" of the Websphere MQ on Solaris, it describes how to define channel for client access as follows:
define qlocal(queue1)
define channel(channel1) chltype(svrconn) \
trptype(tcp) mcauser('mqm')
And I can put a message on the queue at the server using the following command:
./amqsputc QUEUE1 saturn.queue.manager
It also describes how to define channel for server-to-server communication or remote queueing as follows for sender machine A and receiver machine B:
For machine A:
define qlocal (transmit1.queue) usage (xmitq)
define qremote (local.def.of.remote.queue) rname (orange.queue) +
rqmname ('venus.queue.manager') xmitq (transmit1.queue)
define channel (first.channel) chltype (sdr) +
conname ('con-name(port)') xmitq (transmit1.queue) trptype (tcp)
For machine B:
define qlocal (orange.queue)
define channel (first.channel) chltype (rcvr) trptype (tcp)
Then I can use the following command on sender machine A to put message on queue LOCAL.DEF.OF.REMOTE.QUEUE
./amqsput LOCAL.DEF.OF.REMOTE.QUEUE
and the following command to get messge from receiver machine B
./amqsget ORANGE.QUEUE
My earlier question was how do combine these two (client access and remote queueing) so that I can put message on queue LOCAL.DEF.OF.REMOTE.QUEUE from another machine C, not on machine A as previously stated? I hope I clarify more about my question. Thank you. |
|
Back to top |
|
 |
jefflowrey |
Posted: Sat Jun 19, 2004 4:59 am Post subject: Re: client access and remote queueing combined - help |
|
|
Grand Poobah
Joined: 16 Oct 2002 Posts: 19981
|
slptiger wrote: |
My earlier question was how do combine these two (client access and remote queueing) so that I can put message on queue LOCAL.DEF.OF.REMOTE.QUEUE from another machine C, not on machine A as previously stated? I hope I clarify more about my question. |
Simply do both. _________________ I am *not* the model of the modern major general. |
|
Back to top |
|
 |
slptiger |
Posted: Sat Jun 19, 2004 12:43 pm Post subject: |
|
|
Newbie
Joined: 18 Jun 2004 Posts: 4
|
It sounds like a dumb question but how do I do both? In client access, the channel is defined as "svrconn" but in remote queue, the channel is defined as "sdr". Can I define both channel to be of type "svrconn" and "sdr"? Thanks. |
|
Back to top |
|
 |
fjb_saper |
Posted: Sat Jun 19, 2004 4:32 pm Post subject: |
|
|
 Grand High Poobah
Joined: 18 Nov 2003 Posts: 20756 Location: LI,NY
|
Please read intercommunications manual.
You need following:
Sorry if there are any approx. this is from memory
machine A qmgr QM_A
local queue usage xmit name QM_B
channel QM_A.TO.QM_B type sdr
remote queue name B.ORANGE rname ORANGE rqmname QM_B xmitq QM_B
Machine C qmgr QM_C
local queue usage xmit name QM_B
channel QM_C.TO.QM_B type sdr
remote queue name B.ORANGE rname ORANGE rqmname QM_B xmitq QM_B
Machine B qmgr QM_B
receiver channel QM_A.TO.QM_B
receiver channel QM_C.TO.QM_B
With this setup anything you put onto B.ORANGE on qmgr QM_A or QM_C will ultimately go to the ORANGE queue on machine B
Have fun.
 |
|
Back to top |
|
 |
jefflowrey |
Posted: Sat Jun 19, 2004 7:23 pm Post subject: |
|
|
Grand Poobah
Joined: 16 Oct 2002 Posts: 19981
|
You need a svrconn channel defined to whatever queue manager you wish your client to connect to.
You then need a set of sender/receiver channels and transmit queues between that queue manager and the queue manager that hosts the queue you wish your client to put messages to. And likewise, a remote queue definition on the queue manager that the client has connected to.
You then also need a set of sender/receiver channels going in the opposite direction, and transmit queues and remote queues, for every queue that you wish your client to get messages from.
Or you can replace the sender/receiver, transmit and remote queue definitions with other forms of MQSeries eobjects - like clustering, or queue manager aliases or remote queues and requester/sender or requester/server channels. _________________ I am *not* the model of the modern major general. |
|
Back to top |
|
 |
slptiger |
Posted: Mon Jun 21, 2004 1:47 pm Post subject: |
|
|
Newbie
Joined: 18 Jun 2004 Posts: 4
|
Hi JeffLowrey,
I will try to map your instructions to the MQSC commands as much as I can. Assume that we have two queue managers, saturn.queue.manager(on unix host bear) and venus.queue.manager (on unix host puma) and the client is trying to connect saturn.queue.manager.
You need a svrconn channel defined to whatever queue manager you wish your client to connect to.
define channel(client.channel) chltype(svrconn) trptype(tcp)
You then need a set of sender/receiver channels and transmit queues between that queue manager and the queue manager that hosts the queue you wish your client to put messages to.
On saturn.queue.manager:
define qlocal(transmit1.queue) usage(xmitq)
define qremote(local.def.of.remote.queue) rname(orange.queue) +
rqmname('venus.queue.manager') xmitq(transmit1.queue)
define channel(first.channel) chltype(sdr) +
conname('bear(1414)') xmitq(transmit1.queue) trptype(tcp)
On venus.queue.manager:
define qlocal(orange.queue)
define channel(first.channel) chltype(rcvr) trptype(tcp)
And likewise, a remote queue definition on the queue manager that the client has connected to.
I don't know how to define the MQSC commands for this instructions. Can you help me here?
For client access, I need to define the environemnt variable MQSERVER
as setenv mqserver "CLIENT.CHANNEL/TCP/bear(1414)" and I use
amqsputc queue queueManager command to test it. In this example, I know the queueManager is saturn.queue.manager but I don't know how to define the "queue" so that is tied to client access and also remote queueing. Thank you again.
-Kevin |
|
Back to top |
|
 |
|