ASG
IBM
Zystems
Cressida
Icon
Netflexity
 
  MQSeries.net
Search  Search       Tech Exchange      Education      Certifications      Library      Info Center      SupportPacs      LinkedIn  Search  Search                                                                   FAQ  FAQ   Usergroups  Usergroups
 
Register  ::  Log in Log in to check your private messages
 
RSS Feed - WebSphere MQ Support RSS Feed - Message Broker Support

MQSeries.net Forum Index » Clustering » Cluster

Post new topic  Reply to topic Goto page 1, 2, 3  Next
 Cluster « View previous topic :: View next topic » 
Author Message
solomon_13000
PostPosted: Sun Oct 05, 2008 2:02 am    Post subject: Cluster Reply with quote

Master

Joined: 13 Jun 2008
Posts: 284

I was doing some reading on clusters and this are the things I discovered. In a cluster we have the full repository and the partial repository. The full repository knows all about the cluster such as the queue manager in the cluster, the channels, the queues and so on. In the full repository we define a single receiver channel. Suppose there are two full repository in the cluster then we can define a sender channel so that a full repository can push information about itself to the other full repository. This means that both full repository will hold the same information about the cluster. Should one of the full repository fail, the other full repository will take over.

As for the partial repository it knows about the full repository and it pushes information about itself to the full repository. The partial repository does not receive information about other queue managers in the cluster at setup time. A partial repository has a single sender channel to the full repository and a receiver channel pointing to itself.

Now when an application wishes to put information in a queue it needs to talk to a queue manager. This is done using the MQI. Now the queue manager will look for the queue and if found the information will be placed into the queue belonging to the queue manager. Suppose if the queue manager does not have the queue, it will query the full repository for the instance of the queue and then use it. It will then retain the information so that the next time when an application wishes to put information in a queue it wont have to query the full repository again.

But now the thing is in the full repository there is no sender channel pointing to the partial repository. But in the partial repository we have a receiver channel pointing to the full repository. Is this because the full repository will automatically define a sender channel to the receiver using the attribute ChannelAutoDef of the queue manager?.


Last edited by solomon_13000 on Sun Oct 05, 2008 4:14 am; edited 1 time in total
Back to top
View user's profile Send private message
atheek
PostPosted: Sun Oct 05, 2008 4:06 am    Post subject: Reply with quote

Partisan

Joined: 01 Jun 2006
Posts: 327
Location: Sydney

Solomon_13000 wrote:
But in the partial repository we have a receiver channel pointing to the full repository


This is not correct.

Receiver cluster channel of a queue manager always points to itself so that other queue managers in the cluster can talk to it
Back to top
View user's profile Send private message
ranganathan
PostPosted: Sun Oct 05, 2008 4:27 am    Post subject: Re: Cluster Reply with quote

Centurion

Joined: 03 Jul 2008
Posts: 104

solomon_13000 wrote:

But in the partial repository we have a receiver channel pointing to the full repository


I guess that's a typo...

solomon_13000 wrote:

Is this because the full repository will automatically define a sender channel to the receiver using the attribute ChannelAutoDef of the queue manager?.


Yes.. you are right.. the CLUSRCVR definition of the partial repos will be used by the FR to define auto CLUSSDRA to the PR... In a cluster auto-defined channels will be used frequently, so as to reduce the overhead of defining channels between all the cluster members and this auto-definition comes by default in a cluster...
Back to top
View user's profile Send private message
atheek
PostPosted: Sun Oct 05, 2008 5:04 am    Post subject: Re: Cluster Reply with quote

Partisan

Joined: 01 Jun 2006
Posts: 327
Location: Sydney

solomon_13000 wrote:
Is this because the full repository will automatically define a sender channel to the receiver using the attribute ChannelAutoDef of the queue manager?.


As ranganathan pointed out its the CLUSRCVR definition of the partial repos that is used for auto defining the senders and not by channel Auto def(CHAD) attribute of the queue manager. The channel auto def is applicable only for receiver and server connection channels. For Cluster Sender channels this is always enabled..what it means is that even if CHAD is disabled , the cluster queue managers will be able to make auto cluster sender definitions to the other queue managers in the cluster
Back to top
View user's profile Send private message
solomon_13000
PostPosted: Mon Oct 06, 2008 7:16 am    Post subject: Reply with quote

Master

Joined: 13 Jun 2008
Posts: 284

Is it possible to define a cluster receiver channel without specifying the conname?.
Back to top
View user's profile Send private message
ranganathan
PostPosted: Mon Oct 06, 2008 8:24 am    Post subject: Reply with quote

Centurion

Joined: 03 Jul 2008
Posts: 104

Yes.. it is possible to create a CLUSRCVR without specifying a CONNAME but Im not sure about the results it may lead to... Please check the link below...

http://publib.boulder.ibm.com/infocenter/wmqv6/v6r0/index.jsp?topic=/com.ibm.mq.csqzae.doc/ic11500_.htm

Please do read Infocentre for more details... and read the manuals.... that will give you a clear insight...
Back to top
View user's profile Send private message
bruce2359
PostPosted: Mon Oct 06, 2008 9:34 am    Post subject: Reply with quote

Poobah

Joined: 05 Jan 2008
Posts: 9469
Location: US: west coast, almost. Otherwise, enroute.

All qmgrs (FRs and PRs) in a cluster have CLUSSDR channels to a full repository. FR CLUSSDR channels point to the other FR. All qmgrs in a cluster have CLUSRCVR that points to itself.

FRs maintain info about all clustered objects; A PR maintain info about objects that it has expressed interest in.
_________________
I like deadlines. I like to wave as they pass by.
ב''ה
Lex Orandi, Lex Credendi, Lex Vivendi. As we Worship, So we Believe, So we Live.
Back to top
View user's profile Send private message
solomon_13000
PostPosted: Mon Oct 06, 2008 7:36 pm    Post subject: Reply with quote

Master

Joined: 13 Jun 2008
Posts: 284

I created two full repository as below. But when I check the channel status it is retrying.

QM1 - Full Repository

ALTER QMGR REPOS(CLUS2)

DEFINE CHANNEL('QM1.QM2.DF') CHLTYPE(CLUSSDR) TRPTYPE(TCP) CONNAME('localhost(1415)') CLUSTER(CLUS2)

DEFINE CHANNEL('QM2.QM1.DF') CHLTYPE(CLUSRCVR) TRPTYPE(TCP) CONNAME('localhost(1417)') CLUSTER(CLUS2)

DEFINE QLOCAL(QL1) CLUSTER(CLUS2)

runmqlsr -m QM1 -t TCP -p 1417

QM2 - Full Repository

ALTER QMGR REPOS(CLUS2)

DEFINE CHANNEL('QM2.QM1.DF') CHLTYPE(CLUSSDR) TRPTYPE(TCP) CONNAME('localhost(1417)') CLUSTER(CLUS2)

DEFINE CHANNEL('QM1.QM2.DF') CHLTYPE(CLUSRCVR) TRPTYPE(TCP) CONNAME('localhost(1415)') CLUSTER(CLUS2)

DEFINE QLOCAL(QL2) CLUSTER(CLUS2)

runmqlsr -m QM2 -t TCP -p 1415


Last edited by solomon_13000 on Mon Oct 06, 2008 8:03 pm; edited 1 time in total
Back to top
View user's profile Send private message
zhanghz
PostPosted: Mon Oct 06, 2008 7:47 pm    Post subject: Reply with quote

Disciple

Joined: 17 Jun 2008
Posts: 186

please, port number.

channels not running, usually because definition is wrong, or firewall problem, or listener not up.
Back to top
View user's profile Send private message
fjb_saper
PostPosted: Mon Oct 06, 2008 8:02 pm    Post subject: Reply with quote

Grand High Poobah

Joined: 18 Nov 2003
Posts: 20756
Location: LI,NY

@solomon_13000: Your channel definitions are all wrong.
Go back to the cluster manual compare with the default implementaion and tell us why you had it wrong and what the correct values would have been.
_________________
MQ & Broker admin
Back to top
View user's profile Send private message Send e-mail
solomon_13000
PostPosted: Mon Oct 06, 2008 8:03 pm    Post subject: Reply with quote

Master

Joined: 13 Jun 2008
Posts: 284

Now it works. The problem is with the definition. After carefully thinking I fixed it.
Back to top
View user's profile Send private message
solomon_13000
PostPosted: Mon Oct 06, 2008 10:47 pm    Post subject: Reply with quote

Master

Joined: 13 Jun 2008
Posts: 284

QM3 - Partial Repository

DEFINE CHANNEL('QM2.QM1.DF') CHLTYPE(CLUSSDR) TRPTYPE(TCP) CONNAME('localhost(1417)') CLUSTER(CLUS2)

DEFINE CHANNEL('QM1.QM3.DF') CHLTYPE(CLUSRCVR) TRPTYPE(TCP) CONNAME('localhost(1419)') CLUSTER(CLUS2)

DEFINE QLOCAL(QL3) CLUSTER(CLUS2)

runmqlsr -m QM3 -t TCP -p 1419

Comments:

After setting up the partial repository, I tried to amqsput QL3 QM1 and I am getting the error:

Sample AMQSPUT0 start
target queue is QL3
MQOPEN ended with reason code 2085
unable to open queue for output
Sample AMQSPUT0 end

Take note that the channel status is running.
Back to top
View user's profile Send private message
zhanghz
PostPosted: Tue Oct 07, 2008 2:03 am    Post subject: Reply with quote

Disciple

Joined: 17 Jun 2008
Posts: 186

Issue

DIS CLUSQMGR(*) ALL
DIS QC(*) ALL

on QM1 and QM3, what do you see?
Back to top
View user's profile Send private message
solomon_13000
PostPosted: Tue Oct 07, 2008 2:15 am    Post subject: Reply with quote

Master

Joined: 13 Jun 2008
Posts: 284

QM1

DIS CLUSQMGR(*) ALL
1 : DIS CLUSQMGR(*) ALL
AMQ8441: Display Cluster Queue Manager details.
CLUSQMGR(QM1) ALTDATE( )
ALTTIME( ) BATCHHB(0)
BATCHINT(0) BATCHSZ(50)
CHANNEL(QM2.QM1.DF) CLUSDATE(2008-10-07)
CLUSTER(CLUS2) CLUSTIME(09.38.41)
CLWLPRTY(0) CLWLRANK(0)
CLWLWGHT(50) COMPHDR(NONE)
COMPMSG(NONE) CONNAME(localhost(1417))
CONVERT(NO) DEFTYPE(CLUSRCVR)
DESCR( ) DISCINT(6000)
HBINT(300) KAINT(AUTO)
LOCLADDR( ) LONGRTY(999999999)
LONGTMR(1200) MAXMSGL(4194304)
MCANAME( ) MCATYPE(THREAD)
MCAUSER( ) MODENAME( )
MRDATA( ) MREXIT( )
MRRTY(10) MRTMR(1000)
MSGDATA( )
MSGEXIT( ) NETPRTY(0)
NPMSPEED(FAST) PASSWORD( )
PUTAUT(DEF) QMID(QM1_2008-10-07_09.38.07)
QMTYPE(REPOS)
RCVDATA( )
RCVEXIT( ) SCYDATA( )
SCYEXIT( )
SENDDATA( )
SENDEXIT( ) SEQWRAP(999999999)
SHORTRTY(10) SHORTTMR(60)
SSLCAUTH(REQUIRED) SSLCIPH( )
SSLPEER( ) STATUS(RUNNING)
SUSPEND(NO) TPNAME( )
TRPTYPE(TCP) USERID( )
AMQ8441: Display Cluster Queue Manager details.
CLUSQMGR(QM2) ALTDATE( )
ALTTIME( ) BATCHHB(0)
BATCHINT(0) BATCHSZ(50)
CHANNEL(QM1.QM2.DF) CLUSDATE(2008-10-07)
CLUSTER(CLUS2) CLUSTIME(14.24.29)
CLWLPRTY(0) CLWLRANK(0)
CLWLWGHT(50) COMPHDR(NONE)
COMPMSG(NONE) CONNAME(localhost(1415))
CONVERT(NO) DEFTYPE(CLUSSDRB)
DESCR( ) DISCINT(6000)
HBINT(300) KAINT(AUTO)
LOCLADDR( ) LONGRTY(999999999)
LONGTMR(1200) MAXMSGL(4194304)
MCANAME( ) MCATYPE(THREAD)
MCAUSER( ) MODENAME( )
MRDATA( ) MREXIT( )
MRRTY(10) MRTMR(1000)
MSGDATA( ) MSGEXIT( )
NETPRTY(0) NPMSPEED(FAST)
PASSWORD( ) PUTAUT(DEF)
QMID(QM2_2008-10-07_09.39.09) QMTYPE(REPOS)
RCVDATA( ) RCVEXIT( )
SCYDATA( ) SCYEXIT( )
SENDDATA( ) SENDEXIT( )
SEQWRAP(999999999) SHORTRTY(10)
SHORTTMR(60) SSLCAUTH(REQUIRED)
SSLCIPH( ) SSLPEER( )
STATUS(RUNNING) SUSPEND(NO)
TPNAME( ) TRPTYPE(TCP)
USERID( )

DISPLAY QC(*) ALL
2 : DISPLAY QC(*) ALL
AMQ8409: Display Queue details.
QUEUE(QL1) TYPE(QCLUSTER)
ALTDATE(2008-10-07) ALTTIME(16.51.51)
CLUSDATE(2008-10-07) CLUSTER(CLUS2)
CLUSQMGR(QM1) CLUSQT(QLOCAL)
CLUSTIME(09.38.47) CLWLPRTY(0)
CLWLRANK(0) DEFBIND(NOTFIXED)
DEFPRTY(0) DEFPSIST(NO)
DESCR( ) PUT(ENABLED)
QMID(QM1_2008-10-07_09.38.07)
AMQ8409: Display Queue details.
QUEUE(QL2) TYPE(QCLUSTER)
ALTDATE(2008-10-07) ALTTIME(16.51.11)
CLUSDATE(2008-10-07) CLUSTER(CLUS2)
CLUSQMGR(QM2) CLUSQT(QLOCAL)
CLUSTIME(15.22.1 CLWLPRTY(0)
CLWLRANK(0) DEFBIND(NOTFIXED)
DEFPRTY(0) DEFPSIST(NO)
DESCR( ) PUT(ENABLED)
QMID(QM2_2008-10-07_09.39.09)

QM2

DIS CLUSQMGR(*) ALL
1 : DIS CLUSQMGR(*) ALL
AMQ8441: Display Cluster Queue Manager details.
CLUSQMGR(SYSTEM.TEMPQMGR.localhost(1417))
ALTDATE( ) ALTTIME( )
BATCHHB(0) BATCHINT(0)
BATCHSZ(50) CHANNEL(QM2.QM1.DF)
CLUSDATE(2008-10-07) CLUSTER(CLUS2)
CLUSTIME(14.29.20) CLWLPRTY(0)
CLWLRANK(0) CLWLWGHT(50)
COMPHDR(NONE) COMPMSG(NONE)
CONNAME(localhost(1417)) CONVERT(NO)
DEFTYPE(CLUSSDR) DESCR( )
DISCINT(6000) HBINT(300)
KAINT(AUTO) LOCLADDR( )
LONGRTY(999999999) LONGTMR(1200)
MAXMSGL(4194304) MCANAME( )
MCATYPE(THREAD) MCAUSER( )
MODENAME( ) MRDATA( )
MREXIT( ) MRRTY(10)
MRTMR(1000)
MSGDATA( )
MSGEXIT( ) NETPRTY(0)
NPMSPEED(FAST) PASSWORD( )
PUTAUT(DEF)
QMID(SYSTEM.TEMPUUID.localhost(1417))
QMTYPE(REPOS)
RCVDATA( )
RCVEXIT( ) SCYDATA( )
SCYEXIT( )
SENDDATA( )
SENDEXIT( ) SEQWRAP(999999999)
SHORTRTY(10) SHORTTMR(60)
SSLCAUTH(REQUIRED) SSLCIPH( )
SSLPEER( ) STATUS(RUNNING)
SUSPEND(YES) TPNAME( )
TRPTYPE(TCP) USERID( )

DIS QC(*) ALL
2 : DIS QC(*) ALL
AMQ8409: Display Queue details.
QUEUE(QL3) TYPE(QCLUSTER)
ALTDATE(2008-10-07) ALTTIME(16.52.30)
CLUSDATE(2008-10-07) CLUSTER(CLUS2)
CLUSQMGR(QM3) CLUSQT(QLOCAL)
CLUSTIME(14.26.36) CLWLPRTY(0)
CLWLRANK(0) DEFBIND(NOTFIXED)
DEFPRTY(0) DEFPSIST(NO)
DESCR( ) PUT(ENABLED)
QMID(QM3_2008-10-07_14.25.33)
Back to top
View user's profile Send private message
solomon_13000
PostPosted: Tue Oct 07, 2008 2:54 am    Post subject: Reply with quote

Master

Joined: 13 Jun 2008
Posts: 284

the solution:

QM1

DEFINE CHANNEL('QM1.QM3.DF') CHLTYPE(CLUSSDR) TRPTYPE(TCP) CONNAME('localhost(1419)') CLUSTER(CLUS2)
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic  Reply to topic Goto page 1, 2, 3  Next Page 1 of 3

MQSeries.net Forum Index » Clustering » Cluster
Jump to:  



You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
Protected by Anti-Spam ACP
 
 


Theme by Dustin Baccetti
Powered by phpBB © 2001, 2002 phpBB Group

Copyright © MQSeries.net. All rights reserved.