Author |
Message
|
jfweemaes |
Posted: Thu Oct 06, 2005 2:29 pm Post subject: Messages are not appearing on the destination queues. |
|
|
Newbie
Joined: 06 Oct 2005 Posts: 6 Location: Montreal
|
I followed the IBM-Queue Manager Cluster handbook.
Servers:
server1 AIX 5.3ML1 + MQ ver. 530.9 CSD09
server2 AIX 5.3ML1 + MQ ver. 530.9 CSD09
This is what I did:
[mqm@server1] /usr/mqm/bin/crtmqm LONDON
[mqm@server2] /usr/mqm/bin/crtmqm NEWYORK
[root@server1] echo MQSeries1418 1418/tcp >> /etc/services
[root@server2] echo MQSeries1418 1418/tcp >> /etc/services
[root@server1] echo MQSeries1418 stream tcp nowait mqm /usr/mqm/bin/amqcrsta -m LONDON >> /etc/inetd.conf
[root@server2] echo MQSeries1418 stream tcp nowait mqm /usr/mqm/bin/amqcrsta -m NEWYORK >> /etc/inetd.conf
[root@server1] refresh -s inetd
[root@server2] refresh -s inetd
[mqm@server1] /usr/mqm/bin/strmqbrk -m LONDON
[mqm@server2] /usr/mqm/bin/strmqbrk -m NEWYORK
[mqm@server1] /usr/mqm/bin/runmqsc LONDON
[mqm@server2] /usr/mqm/bin/runmqsc NEWYORK
[mqm@server1]
ALTER QMGR REPOS(INVENTORY)
[mqm@server2]
ALTER QMGR REPOS(INVENTORY)
[mqm@server1]
DEFINE CHANNEL(TO.LONDON) CHLTYPE( CLUSRCVR ) TRPTYPE( TCP ) CONNAME('server1(1418)') CLUSTER(INVENTORY)
[mqm@server2]
DEFINE CHANNEL(TO.NEWYORK) CHLTYPE( CLUSRCVR ) TRPTYPE( TCP ) CONNAME('server2(1418)') CLUSTER(INVENTORY)
[mqm@server1]
DEFINE CHANNEL(TO.NEWYORK) CHLTYPE( CLUSSDR ) TRPTYPE( TCP ) CONNAME('server2(1418)') CLUSTER(INVENTORY)
[mqm@server2]
DEFINE CHANNEL(TO.LONDON) CHLTYPE( CLUSSDR ) TRPTYPE( TCP ) CONNAME('server1(1418)') CLUSTER(INVENTORY)
[mqm@server1]
DEFINE QLOCAL(INVENTQ) CLUSTER(INVENTORY)
[mqm@server2]
DEFINE QLOCAL(INVENTQ) CLUSTER(INVENTORY)
[mqm@server1] /usr/mqm/samp/bin/amqsput INVENTQ LONDON
Sample AMQSPUT0 start
target queue is INVENTR
blab...blabla..bla
blebleble...ble
[mqm@server2] usr/mqm/samp/bin/amqsput INVENTQ NEWYORK
Sample AMQSGET0 start
no more messages
Sample AMQSGET0 end
[mqm@server1] /usr/mqm/bin/runmqsc LONDON
[mqm@server2] /usr/mqm/bin/runmqsc NEWYORK
[mqm@server1]
display clusqmgr(*) qmtype status
AMQ8441: Display Cluster Queue Manager details.
CLUSQMGR(LONDON) CLUSTER(INVENTORY)
CHANNEL(TO.LONDON) QMTYPE(REPOS)
STATUS(RUNNING)
AMQ8441: Display Cluster Queue Manager details.
CLUSQMGR(NEWYORK) CLUSTER(INVENTORY)
CHANNEL(TO.NEWYORK) QMTYPE(REPOS)
display chs(*)
AMQ8417: Display Channel Status details.
CHANNEL(TO.NEWYORK) XMITQ(SYSTEM.CLUSTER.TRANSMIT.QUEUE)
CONNAME(server2(1418))
CURRENT CHLTYPE(CLUSSDR)
STATUS(RUNNING) RQMNAME(LONDON)
AMQ8417: Display Channel Status details.
CHANNEL(TO.LONDON) XMITQ( )
CONNAME(**.**.**.**)
CURRENT CHLTYP(CLUSRCVR)
STATUS(RUNNING) RQMNAME(LONDON)
[mqm@server2]
display clusqmgr(*) qmtype status
AMQ8441: Display Cluster Queue Manager details.
CLUSQMGR(NEWYORK) CLUSTER(INVENTORY)
CHANNEL(TO.NEWYORK) QMTYPE(REPOS)
STATUS(RUNNING)
AMQ8441: Display Cluster Queue Manager details.
CLUSQMGR(LONDON) CLUSTER(INVENTORY)
CHANNEL(TO.LONDON) QMTYPE(REPOS)
display chs(*)
AMQ8417: Display Channel Status details.
CHANNEL(TO.LONDON) XMITQ(SYSTEM.CLUSTER.TRANSMIT.QUEUE)
CONNAME(server1(1418))
CURRENT CHLTYPE(CLUSSDR)
STATUS(RUNNING) RQMNAME(LONDON)
AMQ8417: Display Channel Status details.
CHANNEL(TO.NEWYORK) XMITQ( )
CONNAME(**.**.**.**)
CURRENT CHLTYP(CLUSRCVR)
STATUS(RUNNING) RQMNAME(NEWYORK)
[mqm@server1]
refresh cluster(INVENTORY)
AMQ8558: REFRESH CLUSTER accepted.
END
[mqm@server2]
refresh cluster(INVENTORY)
AMQ8558: REFRESH CLUSTER accepted.
END
[mqm@server1] /usr/mqm/samp/bin/amqsput INVENTQ LONDON
Sample AMQSPUT0 start
target queue is INVENTR
dflsdfj894
fawefaef453gtvsvfd
ergrgae5
[mqm@server2] usr/mqm/samp/bin/amqsput INVENTQ NEWYORK
Sample AMQSGET0 start
no more messages
Sample AMQSGET0 end
Conclusion: Messages are not appearing on the destination queues.
Could somebody help me ?
Regards,
Jean-Francois Weemaes |
|
Back to top |
|
 |
wschutz |
Posted: Thu Oct 06, 2005 2:54 pm Post subject: |
|
|
 Jedi Knight
Joined: 02 Jun 2005 Posts: 3316 Location: IBM (retired)
|
So on both machines you have local instances of the queue... Read Chapter 5 in the cluster manual about that.... (answer: in V5, if a local queue exists, it will always be used)
then there's....
Quote: |
mqm@server2] usr/mqm/samp/bin/amqsput INVENTQ NEWYORK
Sample AMQSGET0 start
no more messages
Sample AMQSGET0 end
|
Cut & paste error? _________________ -wayne |
|
Back to top |
|
 |
fjb_saper |
Posted: Thu Oct 06, 2005 8:03 pm Post subject: |
|
|
 Grand High Poobah
Joined: 18 Nov 2003 Posts: 20756 Location: LI,NY
|
jfweemaes wrote: |
[root@server1] echo MQSeries1418 stream tcp nowait mqm /usr/mqm/bin/amqcrsta -m LONDON >> /etc/inetd.conf
[root@server2] echo MQSeries1418 stream tcp nowait mqm /usr/mqm/bin/amqcrsta -m NEWYORK >> /etc/inetd.conf |
Jean Francois, do you know that since 5.3 using runmqlsr is the preferred way over inetd ?
Enjoy
Francois-Joseph  |
|
Back to top |
|
 |
jfweemaes |
Posted: Fri Oct 07, 2005 6:29 am Post subject: That's not working when local queues don't exist. |
|
|
Newbie
Joined: 06 Oct 2005 Posts: 6 Location: Montreal
|
Thanks wschutz.
I tried to define local queues on one side without doing same on the other side. It's not working at all. If the local queues don't exist on the local queuemanager, I get an error when I try to amqsget on it.
By the way, I want 2 full repository qmgrs.
Regards,
JF
wschutz wrote: |
So on both machines you have local instances of the queue... Read Chapter 5 in the cluster manual about that.... (answer: in V5, if a local queue exists, it will always be used)
then there's....
Quote: |
mqm@server2] usr/mqm/samp/bin/amqsput INVENTQ NEWYORK
Sample AMQSGET0 start
no more messages
Sample AMQSGET0 end
|
Cut & paste error? |
Yes it is !  |
|
Back to top |
|
 |
jfweemaes |
Posted: Fri Oct 07, 2005 6:35 am Post subject: |
|
|
Newbie
Joined: 06 Oct 2005 Posts: 6 Location: Montreal
|
Thanks Francois-Joseph,
I am following your advice and setting up a call to runmqlsr -m [qmgr] -p 1418 in rc.d.
fjb_saper wrote: |
jfweemaes wrote: |
[root@server1] echo MQSeries1418 stream tcp nowait mqm /usr/mqm/bin/amqcrsta -m LONDON >> /etc/inetd.conf
[root@server2] echo MQSeries1418 stream tcp nowait mqm /usr/mqm/bin/amqcrsta -m NEWYORK >> /etc/inetd.conf |
Jean Francois, do you know that since 5.3 using runmqlsr is the preferred way over inetd ?
Enjoy
Francois-Joseph  |
|
|
Back to top |
|
 |
wschutz |
Posted: Fri Oct 07, 2005 6:40 am Post subject: |
|
|
 Jedi Knight
Joined: 02 Jun 2005 Posts: 3316 Location: IBM (retired)
|
Do this:
1)server1: Delete the local queue definition on LONDON
2)server1: /usr/mqm/samp/bin/amqsput INVENTQ LONDON
3) server2: /usr/mqm/samp/bin/amqsget INVENTQ NEWYORK
You can never get from a queue unless its defined locally.
Whether you use amqcrsta or runmqlsr will not make any difference, thats a performance issue. _________________ -wayne |
|
Back to top |
|
 |
jfweemaes |
Posted: Fri Oct 07, 2005 10:28 am Post subject: That's working ! However, I have to setup a .... |
|
|
Newbie
Joined: 06 Oct 2005 Posts: 6 Location: Montreal
|
Thanks wschutz !
That's working ! However, I have to setup a MQ cluster in which we could do amqsget on both servers for a specific queue.
wschutz wrote: |
Do this:
1)server1: Delete the local queue definition on LONDON
2)server1: /usr/mqm/samp/bin/amqsput INVENTQ LONDON
3) server2: /usr/mqm/samp/bin/amqsget INVENTQ NEWYORK
You can never get from a queue unless its defined locally.
Whether you use amqcrsta or runmqlsr will not make any difference, thats a performance issue. |
|
|
Back to top |
|
 |
wschutz |
Posted: Fri Oct 07, 2005 11:02 am Post subject: |
|
|
 Jedi Knight
Joined: 02 Jun 2005 Posts: 3316 Location: IBM (retired)
|
Do you want WAS Node 1 to connect to both queue mgrs or to connect to one qmgr and use clustering to round-robin the messages between the two queue managers? _________________ -wayne |
|
Back to top |
|
 |
jfweemaes |
Posted: Fri Oct 07, 2005 11:23 am Post subject: |
|
|
Newbie
Joined: 06 Oct 2005 Posts: 6 Location: Montreal
|
Hello wschutz
I want that both WAS servers connect to both Qmgrs. Because we are still using WebSphere 5.1.1.5, I have to build the JMS workload at the application level instead than server level.
However, the two qmgrs ought to be able to get and put messages in the entire cluster. In other words, both of them have to be full repository of the cluster.
Regards,
Jean-Francois Weemaes
wschutz wrote: |
Do you want WAS Node 1 to connect to both queue mgrs or to connect to one qmgr and use clustering to round-robin the messages between the two queue managers? |
|
|
Back to top |
|
 |
jefflowrey |
Posted: Fri Oct 07, 2005 5:31 pm Post subject: |
|
|
Grand Poobah
Joined: 16 Oct 2002 Posts: 19981
|
jfweemaes wrote: |
I want that both WAS servers connect to both Qmgrs. Because we are still using WebSphere 5.1.1.5, I have to build the JMS workload at the application level instead than server level. |
Probably not.
jfweemaes wrote: |
However, the two qmgrs ought to be able to get and put messages in the entire cluster. In other words, both of them have to be full repository of the cluster. |
The two are unreleated.
Any qmgr in a cluster, regardless of it's repository status, can put messages to every queue that is shared in the cluster.
No MQ Application, in any environment, regardless of whether the qmgr is a full repository or not, can get from a queue that is not a qlocal on the qmgr the application is connected to.
If you want to ensure that every message that your applications GET are fully load balanced, and that every message that your applications PUT are fully load balanced, then you should create a queue manager for queues you are GETing from and a SEPARATE queue manager that you are PUTting to. The PUT qmgr or qmgrs will have no local queues on them at all.
This means your application will need to connect to more than one queue manager. This may be a difficulty. You should consider how much of a difficulty, and decide how that compares to your requirement that ever put and get be load balanced.
You *may* be able to get full load balancing if you put to qaliases, that point to qclusters, rather than directly putting to qclusters - and thus avoid use of separate qmgrs. But this will take a little more sophistication on the part of your mq administration/network design.
Also, if you upgrade everything to v6, you don't need to worry about any of this - as the workload algorithms are different and more tunable.
The version of WAS that you are using is mostly unimportant for this question. It is probably unsupported to use MQ v6 with WAS 5.x, though. _________________ I am *not* the model of the modern major general. |
|
Back to top |
|
 |
|