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 » check remote cluster queue

Post new topic  Reply to topic Goto page 1, 2  Next
 check remote cluster queue « View previous topic :: View next topic » 
Author Message
peterw686
PostPosted: Wed Jan 21, 2004 1:29 pm    Post subject: check remote cluster queue Reply with quote

Acolyte

Joined: 26 Sep 2002
Posts: 73

Hi,

Is there a way to check what's the cluster queue name on the remote queue manager?

QM1 has a cluster queue Q1
QM2 has a cluster queue Q1
QM3 has a cluster queue Q3, on a remote machine

QM1, QM2, QM3 are joined in a cluster C1

How does QM1 or QM2 know the Q3 is avaiable or shared in the cluster?
Back to top
View user's profile Send private message
mqonnet
PostPosted: Wed Jan 21, 2004 1:38 pm    Post subject: Reply with quote

Grand Master

Joined: 18 Feb 2002
Posts: 1114
Location: Boston, Ma, Usa.

You did not mention who is full and who is partial repos qms here.

But in any case, the queue is visible in the following ways.

1) To all the full repos qms, immediately after the queue is defined as a cluster queue.
2) To any partial repos qm on "when needed" basis.

PS: All this only if you have the cluster set up fine and all the cluster channels running OK. And there is no unresolved stuff, like Qm1.*.Temp etc when you issue dis clusqmgr(*).


Cheers
Kumar
Back to top
View user's profile Send private message Send e-mail Visit poster's website
peterw686
PostPosted: Wed Jan 21, 2004 1:45 pm    Post subject: Reply with quote

Acolyte

Joined: 26 Sep 2002
Posts: 73

Thanks,

In my case, QM1 and QM2 are full repository.

My real question is which command I can use to check the cluster queue name on the remote queue manager?
Back to top
View user's profile Send private message
mqonnet
PostPosted: Wed Jan 21, 2004 1:48 pm    Post subject: Reply with quote

Grand Master

Joined: 18 Feb 2002
Posts: 1114
Location: Boston, Ma, Usa.

dis qcluster(*) would display all the queues that are visible and available to the respective qm in cluster.

Now it could be that there are more cluster queues defined, but only few displayed when you issued the above command. That is because the others were not propogated to this queue manager and they would be propogated only when need arises.

Cheers
Kumar
Back to top
View user's profile Send private message Send e-mail Visit poster's website
peterw686
PostPosted: Thu Jan 22, 2004 8:27 am    Post subject: Reply with quote

Acolyte

Joined: 26 Sep 2002
Posts: 73

Thanks Kumar, it's useful command.

In our case, we have a cluster with three qm. QM1, QM2, QM3

on QM3, there is a alias Queue shared in the cluster Q3. When I run the command above in QM1, I could not see Q3. On QM3 side, they can see shared queues on QM1 and QM2.

Is it wrong or just like you mentioned case.

BTW, QM1 and QM2 has full repository. QM3 is just a member. Does it matter?


Peter
Back to top
View user's profile Send private message
mqonnet
PostPosted: Thu Jan 22, 2004 9:04 am    Post subject: Reply with quote

Grand Master

Joined: 18 Feb 2002
Posts: 1114
Location: Boston, Ma, Usa.

If all was well, i would have expected Q3 to be visible in all the queue managers.

So, to get closer to the problem let us assess a few things.
1) When you defined the target queue and the alias queue into the cluster, were the cluster sender/rcvr channels connecting the full repos queue manager running???
2) Are there any errors in the logs or any FFSTs
3) If you issue DIS CLUSQMGR(*), do you see all 3 queue managers completely resolved or do you see some *temp* in there.


QM3 can see it because it is local to that queue manager.

Cheers
Kumar
Back to top
View user's profile Send private message Send e-mail Visit poster's website
peterw686
PostPosted: Thu Jan 22, 2004 10:16 am    Post subject: Reply with quote

Acolyte

Joined: 26 Sep 2002
Posts: 73

Hi,

Because this queue manager QM3 is not in our company so I can't check it.

As I know:
Quote:
When you defined the target queue and the alias queue into the cluster, were the cluster sender/rcvr channels connecting the full repos queue manager running???

They already defined two cluster sender channels to QM1 and QM2 because QM1 and QM2 have full repository. However QM3 itself is just a member.

Quote:
Are there any errors in the logs or any FFSTs

I don't know and I ask the developer on their side to check.

Quote:
If you issue DIS CLUSQMGR(*), do you see all 3 queue managers completely resolved or do you see some *temp* in there.

Yes, I can see QM3 and status is "inactive".

Right now, I tried to write a java client program to access the queue directly for test purpose. In my situation here, how do I put the channel name in my MQEnvironment because I don't know. Are there some points need to be careful while sending messages to cluster queue via java client.

In JMS, I know I can send to my QM1 without point out channel name.

Hope you can help me this question, so at least I can test the connection.
Back to top
View user's profile Send private message
mqonnet
PostPosted: Thu Jan 22, 2004 10:29 am    Post subject: Reply with quote

Grand Master

Joined: 18 Feb 2002
Posts: 1114
Location: Boston, Ma, Usa.

Well, if your channels shows the status as inactive, then there is something wrong. All of your clussdr channels should be in "running" state for any clustered information to be propogated to all the participants(full as well partial repos qms).

What is possible here is, when the clustered queue was defined the channels were not running and hence the queue info was not propogated to the full repos qms. But, what i would expect is the partial repos qm trying to send a publish message to the full repos(only if it knows about the repos qms, though. which would mean at some point in time all the 3 qms should have had fine running channels). In the event clussdr channels not running, it would put the message into the cluster tq on QM3(partial repos). Check with the guys who manage QM3 to see if they see the cluster transmission queue on their qm having some messages(if the channels are not already in "running" state).

As for your java question. Well, unless you know what channel(svrconn) is defined for you to use and the port the listener is listening on you CANNOT connect to ANY queue manager using clients. Unless of course you have client channel table.

So, to answer your question, you need to know the channel name and the port for you to connect as a client.

But again, why do you want to test this out anyways. This has nothing to do with the problem you are facing. The problem is purely clustering and queue not being published.

Hope this helps.

Cheers
Kumar
Back to top
View user's profile Send private message Send e-mail Visit poster's website
peterw686
PostPosted: Thu Jan 22, 2004 11:20 am    Post subject: Reply with quote

Acolyte

Joined: 26 Sep 2002
Posts: 73

Thanks Kumar.

As I was told, if there is no activity, the cluster channel would stop automatically. If there is new message, it will start by itself. Is that true?
Back to top
View user's profile Send private message
mqonnet
PostPosted: Thu Jan 22, 2004 12:29 pm    Post subject: Reply with quote

Grand Master

Joined: 18 Feb 2002
Posts: 1114
Location: Boston, Ma, Usa.

Yes it would. Unless there is some error and the channels were already in a funny state.

Moreover the channels should have gone into inactive state by themselves, not by user intervention(stopping channel etc).

Cheers
Kumar
Back to top
View user's profile Send private message Send e-mail Visit poster's website
PeterPotkay
PostPosted: Thu Jan 22, 2004 2:22 pm    Post subject: Reply with quote

Poobah

Joined: 15 May 2001
Posts: 7717

Peter, for your JAVA question, lets says QM3 lives on Server3, listening on port 1433. The SVRCONN channel on QM3 is called SVRCONN.INTO.QM3. This how you would code your MQEnvironment class:

Code:

MQEnvironment.hostname = Server3;
MQEnvironment.port = 1433;
MQEnvironment.channel = SRRCONN.TO.QM3;
MQEnvironment.properties.put(MQC.TRANSPORT_PROPERTY,MQC.TRANSPORT_MQSERIES_CLIENT);
MyQM = new MQQueueManager(QM3);



As far as the clustering is concerned, KUMAR is definitly right. QM1 and QM2, being full repositories, should see every queue on every other QM in the cluster, as long as that queue is in fact clustered. So first thing is make sure they put the right cluster name on that queue. Then you have to make sure they made a correct CLUSRRCVR on QM3, (clustered it), and then made a CLUSSNDR to one of your full repositories, and again, clustered that CLUSSNDR.

If they did that, you will see automatic CLUSSNDRs from QM3 to both QM1 and QM2, and the clustered queues will show up on QM1 and QM2.
_________________
Peter Potkay
Keep Calm and MQ On
Back to top
View user's profile Send private message
peterw686
PostPosted: Fri Jan 23, 2004 8:20 am    Post subject: Reply with quote

Acolyte

Joined: 26 Sep 2002
Posts: 73

Thank you all.

I have a difficulty hope you guys can help me out.

As a describled before, our set up is like this;

QM1<-------- joined in cluster -----------> QM3 (third party) ask for USERID "MQXXX"
ReplyQ <-------- cluster queue -------------> RequestQ


My JMS application needs to send a request to RequestQ. The message is sending to QM1 first, because it's a not a local queue of QM1, the cluster will forward this message to QM3.

If I use MQXXX as user id at first call, I will get 2035 error because QM1 doesn't have such user ID setup. If I don't use MQXXX, I can pass through the QM1, however, when it forward message to QM3, QM3 will return it back for unknown user.

That's why I tried many other options to work around it. Really thank your help.
Back to top
View user's profile Send private message
mqonnet
PostPosted: Fri Jan 23, 2004 8:34 am    Post subject: Reply with quote

Grand Master

Joined: 18 Feb 2002
Posts: 1114
Location: Boston, Ma, Usa.

Peter, i answered to your recent question in the other thread that you started.

http://www.mqseries.net/phpBB2/viewtopic.php?t=12983&highlight=

You need to answer the questions that i raised there and read through my comments on how it(authorizations) is supposed to work in a cluster.

In the example that you mentioned here, if you are connecting to QM1 and trying to open and put to RequestQ which is a cluster queue(that is known and publicized) then there is no Question of authorizations involved here(on QM1).

And as i mentioned in your other thread, the authorizations need to be set, if at all, on QM3. You need to define a userid/principal on QM3 with the same name as your logged on userid that you use to connect to QM1 on your local system. And then use setmqaut to grant authorities to this principal to access RequestQ on QM3.

All this is needed because (i assume and as you say) the RequestQ on QM3 is secured such that it could be accessed by only a specific userid.

Hope this clarifies the point.

Cheers
Kumar
Back to top
View user's profile Send private message Send e-mail Visit poster's website
peterw686
PostPosted: Fri Jan 23, 2004 8:51 am    Post subject: Reply with quote

Acolyte

Joined: 26 Sep 2002
Posts: 73

Hi Kumar,

However in our case, QM1 is logon as "mqm", I didn't set up other principle. On QM3 which is managered by our partner, they only process the request message with USERID "MQXXX".

Quote:
3) You dont need any setmqauts/refresh security on your qm, unless your local qm is the destination qm. Security comes into picture only for the remote queue manager where you have to have a principal defined with the same name as the logon id on the local system.


Does this mean on QM1 local machine, we should define a user "MQXXX"?
Back to top
View user's profile Send private message
mqonnet
PostPosted: Fri Jan 23, 2004 9:20 am    Post subject: Reply with quote

Grand Master

Joined: 18 Feb 2002
Posts: 1114
Location: Boston, Ma, Usa.

Well, you havent answered my question yet, to figure out the exact scenario. All of the questions here for QM3. Here are a few more.

1) What userid created the Queue manager.
2) What userid owns the installation.
3) What O/s is Qm3 running on.
4) What does your partner exactly mean, when they say, "only process the request message with USERID "MQXXX"". Does this mean they set the MCAUSER of the clusrcvr on QM3 to be MQXXX. If not, how is this authorization being imposed and how is it being verified/checked. I am not clear at all about this bit. Explain this, as this is the key to the whole issue.


Clustering does not work the same way as a regular DQM set does. And hence its authentication process is different.


By the way...
""""""""""""""
Quote:
3) You dont need any setmqauts/refresh security on your qm, unless your local qm is the destination qm. Security comes into picture only for the remote queue manager where you have to have a principal defined with the same name as the logon id on the local system.



Does this mean on QM1 local machine, we should define a user "MQXXX"?
""""""""""""""

You got it just the opposite of what i meant and what it says.


Cheers
Kumar
Back to top
View user's profile Send private message Send e-mail Visit poster's website
Display posts from previous:   
Post new topic  Reply to topic Goto page 1, 2  Next Page 1 of 2

MQSeries.net Forum Index » Clustering » check remote cluster queue
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.