Author |
Message
|
merien_took |
Posted: Fri Dec 15, 2006 10:21 pm Post subject: clussdr channel using wrong ip address |
|
|
Novice
Joined: 15 Dec 2006 Posts: 13
|
Hi,
I am trying to set up a cluster with two queue managers. The clussdr and clusrcvr channels between QM1 and QM2 work fine, but the clussdr channel on QM2 (to QM1) has a different ip address than what I gave it. Does anyone have any idea what might cause this or how to fix it? Both QMs are running on the same computer and same ip address, so it hasn't gotten the incorrect ip from the repository.
Thanks! |
|
Back to top |
|
 |
wschutz |
Posted: Sat Dec 16, 2006 3:41 am Post subject: |
|
|
 Jedi Knight
Joined: 02 Jun 2005 Posts: 3316 Location: IBM (retired)
|
When and where do you see this idfferent IP adddress? Post the relevant bits of the channel definitions .... _________________ -wayne |
|
Back to top |
|
 |
merien_took |
Posted: Sat Dec 16, 2006 6:33 am Post subject: |
|
|
Novice
Joined: 15 Dec 2006 Posts: 13
|
I have four channels on two queue managers defined. TO.QM1 (clussrcvr) and TO.QM2 (clussdr, conname 192.168.52.177(1415)) on QM1 (holdng the full repository) and TO.QM1 (clussdr, conname 192.168.52.177(1414)) and TO.QM2 (clusrcvr) on QM2 (no repository, just has queues that are part of the cluster).
The problem is that viewing channel status TO.QM1 on QM2 shows a different ip address and that the channel is retrying. TO.QM1 on QM1 immediately goes into an inactive state since nothing is connected to it.
I think what happened is I accidently typed the ip wrong when I first setup the channel (not using DNS, so I can't connect to a machine name) and it propogated through the repository on QM1. Is there any way to refresh the repository to have the information that I've redefined? I've tried "refresh cluster(demo)" on both QM's with no success. |
|
Back to top |
|
 |
fjb_saper |
Posted: Sat Dec 16, 2006 10:22 pm Post subject: |
|
|
 Grand High Poobah
Joined: 18 Nov 2003 Posts: 20756 Location: LI,NY
|
Redefine the cluster receiver with the right IP address.
This should propagate to the repositories.
Stop the cluster receiver. Make sure each corresponding sender is stopped.
Restart the cluster receiver and restart the cluster senders in stopped state...
If you don't want to bother with the corresponding senders just do a cluster refresh repos(yes) on the PR's....
Enjoy  _________________ MQ & Broker admin |
|
Back to top |
|
 |
merien_took |
Posted: Sun Dec 17, 2006 9:47 am Post subject: |
|
|
Novice
Joined: 15 Dec 2006 Posts: 13
|
fjp_saper,
I redefined the channel with the correct ip and it still ends up getting the wrong ip when running. I even deleted both QMs and started over, and I guess that wrong ip is retained in the repository, because it still got the wrong ip. I guess next I'll just create a whole new cluster and make sure I'm more careful with my typing. It does seem there should be better way to correct a mistake than this......I'm just glad I wasn't on a production box.  |
|
Back to top |
|
 |
wschutz |
Posted: Sun Dec 17, 2006 10:25 am Post subject: |
|
|
 Jedi Knight
Joined: 02 Jun 2005 Posts: 3316 Location: IBM (retired)
|
hummm.did you try RESET CLUSTER? _________________ -wayne |
|
Back to top |
|
 |
merien_took |
Posted: Sun Dec 17, 2006 3:53 pm Post subject: |
|
|
Novice
Joined: 15 Dec 2006 Posts: 13
|
yeah.......I spent several hours refreshing, resetting, deleting, and redefining things in different orders and nothing worked. I don't suppose there's a way to delete the repository or the cluster? |
|
Back to top |
|
 |
jefflowrey |
Posted: Sun Dec 17, 2006 3:59 pm Post subject: |
|
|
Grand Poobah
Joined: 16 Oct 2002 Posts: 19981
|
Yes.
You can easily remove an entire cluster.
This is done by first unsharing all objects from the cluster, removing all PRs from the cluster, deleting all manually defined cluster channels, and then removing all FRs from the cluster.
Then you can start over.
But you also need to make sure you know that you know what you're seeing. Maybe what you are seeing is correct, but you don't understand enough to know why.
If you can, as previously asked, post the relevant parts of the cluster channel definitions, maybe we can tell you if it's really right or wrong. _________________ I am *not* the model of the modern major general. |
|
Back to top |
|
 |
merien_took |
Posted: Sun Dec 17, 2006 4:55 pm Post subject: |
|
|
Novice
Joined: 15 Dec 2006 Posts: 13
|
I kept a record of what I thought I was typing as I went, so that I can reproduce it on other servers we have. I typed the ip address so many times that I think I got twitchy and hit the wrong buttons. The wrong ip is 192.168.52.132, some random person's desktop computer in my office. You'll note I changed some of the names of QMs and Channels above, but these are exactly what I have. QM3 is a gateway QM here, and QM4 is external to the cluster.
********************
create QM1
********************
#login as user in group mqm
crtmqm QM1
strmqm QM1
runmqsc QM1
alter qmgr repos(Cluster)
define channel(CLUS.TO.QM1) chltype(CLUSRCVR) trptype(TCP) cluster(Cluster)
define qlocal(QL1) cluster(Cluster)
define channel(SYSTEM.ADMIN.SVRCONN) chltype(svrconn)
alter qmgr deadq(SYSTEM.DEAD.LETTER.QUEUE)
define channel(CLUS.TO.QM3) chltype(CLUSSDR) trptype(TCP) cluster(Cluster) conname('192.168.52.177(1415)')
end
runmqlsr -m QM1 -t TCP -p 1414 &
strmqcsv QM1
********************
create QM3
********************
#login as user in group mqm
crtmqm QM3
strmqm QM3
runmqsc QM3
define qremote(ANY.CLUSTER) rname(' ') rqmname(' ')
define qremote(QR1) rname(QL2) rqmname(QM4) cluster(Cluster)
define channel(SYSTEM.ADMIN.SVRCONN) chltype(SVRCONN)
define qremote(QM3) rname(' ') rqmname(QM3) cluster(Cluster)
alter qmgr deadq(SYSTEM.DEAD.LETTER.QUEUE)
define channel(CLUS.TO.QM3) chltype(CLUSRCVR) trptype(TCP) cluster(Cluster)
define channel(CLUS.TO.QM1) chltype(CLUSSDR) trptype(TCP) cluster(Cluster) conname('192.168.52.177(1414)')
define qlocal(XMITQ_QM3) usage(XMITQ)
define channel(TO.QM4) chltype(SDR) xmitq(XMITQ_QM3) conname('192.168.52.177(1416)')
define channel(TO.QM3) chltype(RCVR)
define qlocal(QL3) cluster(Cluster)
define qremote(QR2) rname(QL2) rqmname(QM4) xmitq(XMITQ_QM3)
end
runmqlsr -m QM3 -t TCP -p 1415 &
strmqcsv QM3
On QM3 "display channel(clus.to.qm1)" the conname is 192.168.52.177(1414). But on "display chstatus(clus.to.qm1)" the conname is 192.168.52.132 (with no port). |
|
Back to top |
|
 |
Mr Butcher |
Posted: Sun Dec 17, 2006 10:56 pm Post subject: |
|
|
 Padawan
Joined: 23 May 2005 Posts: 1716
|
on qm3 you created a clus.to.qm1 with 192.168.52.177(1414), which is used by qm3 to contact qm1.
this is a explicit defined cluster sender
now, qm1 gives its own clus.to.qm1 definition to qm3 to be used for future connections. this is the inmplicit defined cluster sender.
on qm1 you did not specify an ip address on clus.to.qm1 channel, you should specify here the connane that the implicit defined cluster sender channels should use to contact qm1
in addition, qm3 is not a full repository. full repositories should be connected by using explicit defined channels.
on qm1, you defined a cluster sender to qm3. this is not required in your case (unless you want to make qm3 a full repository too)
you define a cluster receiver on qm3 (clus.to.qm3) which is given to the repository. the repository will create an implicit defined cluster sender channel from it, so you do not need to define a clus.to.qm3 on qm1 explicit. _________________ Regards, Butcher |
|
Back to top |
|
 |
fjb_saper |
Posted: Mon Dec 18, 2006 3:33 am Post subject: |
|
|
 Grand High Poobah
Joined: 18 Nov 2003 Posts: 20756 Location: LI,NY
|
Why are you using IP addresses. If your office has a DNS use DNS names for the computers. This takes out of the equation all the net address transformation (NAT) if your MQ network spans more than one tcp/ip network.
Remember this golden rule: the address you specify in the Clusrcvr's CONNAME needs to be available/reachable throughout the cluster.
Enjoy  _________________ MQ & Broker admin |
|
Back to top |
|
 |
HubertKleinmanns |
Posted: Tue Dec 19, 2006 2:05 am Post subject: |
|
|
 Shaman
Joined: 24 Feb 2004 Posts: 732 Location: Germany
|
merien_took wrote: |
fjp_saper,
I redefined the channel with the correct ip and it still ends up getting the wrong ip when running. I even deleted both QMs and started over, and I guess that wrong ip is retained in the repository, because it still got the wrong ip. I guess next I'll just create a whole new cluster and make sure I'm more careful with my typing. It does seem there should be better way to correct a mistake than this......I'm just glad I wasn't on a production box.  |
Did you also a
Quote: |
STOP CHL(...) STATUS(INACTIVE) |
? _________________ Regards
Hubert |
|
Back to top |
|
 |
merien_took |
Posted: Tue Dec 19, 2006 8:34 am Post subject: |
|
|
Novice
Joined: 15 Dec 2006 Posts: 13
|
Mr Butcher,
I did not make QM3 a full repository because I will be adding more QMs later (ultimately we need clustering with full failover and loadbalancing) and one of those will host an FR. QM3 is simply a gateway. I didn't realize I didn't need to add a CLUSSDR and CLUSRDVR to both QMs.
fjb_saper,
My office is using DNS, but I have MQ running on a VM and for whatever reason the VM's machine name won't resolve to an ip address. The actual desktop and VM are using different ips so I can't just use the desktop's DNS name. *shrug* It would take longer to convince the networking people to add that as a DNS entry than to just use the ip. The production boxes will have DNS entries.
Anyway, I did eventually get it fixed. Creating all new QMs and a new cluster didn't work, I guess because it ends up using an old auto-defined CLUSSDR channel. I ended up removing the FR from QM1, stopped the CLUSSDR, altered its definition to use the correct ip, restarted the channel (it then picked up the correct ip), refreshed the repository, and then added the FR back to QM1. Not sure if any of those steps was unneccessary, but that's what I'll do if it happens again.
Thanks to everyone for your help! |
|
Back to top |
|
 |
Mr Butcher |
Posted: Tue Dec 19, 2006 11:14 pm Post subject: |
|
|
 Padawan
Joined: 23 May 2005 Posts: 1716
|
i am not sure if that is the correct procedure to fix it, and (to be honest) i do not try to follow your steps to fix it. it worked this time, it may not work the next time. in addition, things change if channels are stopped / started in the cluster (going to use the implicit definition of the channels).
From my point of view it is a cluster setup problem, and if you setup your cluster properly you should not face these problems.
on the FR (QM1)
define clusrcvr TO.QM1 with conname(IP/Port of QM1)
on the PR (QMx)
define clusrcvr TO.QMx with conname(IP/Port of QMX)
define clussdr TO.QM1 with conname(IP/Port of QM1)
if you have additional FRs, then you should define "full" channels between all the FR queuemanagers.
eg. another FR QMA
on QM1 you define clussdr TO.QMA
on QMA you define clusrcvr TO.QMA
on QMA you define clussdr TO.QM1
on the PRs, you can define another TO.QMA channel, but it is not mandatory from my point of view.
always keep in mind, that the clusrcvr definition is used by the cluster members to build the implizit defined clussdr definition, so the conname of the clusrcvr must alsway be the "own" conname that the others use to connect to "me"
Its all described in detail in the cluster manual. _________________ Regards, Butcher |
|
Back to top |
|
 |
merien_took |
Posted: Wed Dec 20, 2006 8:44 am Post subject: |
|
|
Novice
Joined: 15 Dec 2006 Posts: 13
|
Mr Butcher,
Thanks, I will try your suggestion. I knew the clussdr got its defintion from the corresponding clusrcvr, but I thought that was only on auto-defined clussdr channels. The cluster manual only mentions that in a brief aside and it is not applied in the demos. *shrug* |
|
Back to top |
|
 |
|