|   | 
	 
  
    | 
RSS Feed - WebSphere MQ Support
 | 
RSS Feed - Message Broker Support
 |   
 
  
	     | 
	 | 
   
 
  
	|  MQOPEN call fails with a 2035 on a CLUSTER ALIAS queue | 
	« View previous topic :: View next topic »  | 
   
  
  	
	  
		
		
		  | Author | 
		  Message
		 |  
		
		  | klingelb | 
		  
		    
			  
				 Posted: Fri Feb 28, 2003 5:03 pm    Post subject: MQOPEN call fails with a 2035 on a CLUSTER ALIAS queue | 
				     | 
			   
			 
		   | 
		 
		
		    Apprentice
 
 Joined: 25 Sep 2002 Posts: 28
  
  | 
		  
		    
			  
				Environment:
 
QM names:  QM1, QM2, LOADBALANCER on three different machines(AIX,AIX,Windows)
 
Q names: Q1, Q1alias exist on QM1 and QM2 and are advertised to the cluster
 
Cluster name: MQCLS
 
Full Repository holders: QM1, LOADBALANCER
 
Partial Repository: QM2
 
users: user1, user2 both are members of grp1 and they exist on all 3 machines
 
groups: grp1
 
 
The cluster was successfully setup and the following users have the following authorizations:
 
 
dspmqaut -m QM1 -t qmgr -g grp1 .... returns connect, inq, and setid
 
dspmqaut -m QM2 -t qmgr -g grp1 .... returns connect, inq, and setid
 
dspmqaut -m LOADBALANCER -t qmgr -g grp1 .... returns connect, inq, and setid
 
 
dspmqaut -m QM1 -t q -n Q1alias -g grp1 .... returns put and inq
 
dspmqaut -m QM2 -t q -n Q1alias -g grp1 .... returns put and inq
 
Q1alias is only visible as a cluster alias queue on LOADBALANCER
 
 
API CALL:
 
first I successfully connect to the LOADBALANCER qmgr with uid user1
 
then I...
 
setQOpenOpt(MQC.MQOO_FAIL_IF_QUIESCING | MQC.MQOO_ALTERNATE_USER_AUTHORITY | MQC.MQOO_OUTPUT | MQC.MQOO_BIND_AS_Q_DEF);
 
this.q = this.qmgr.accessQueue(this.qname, this.qOpenOpt, "", "", this.uid);
 
 
In the above code this.uid = user1
 
                    and  this.qname = Q1alias
 
                    and  this.qOpenOpt = the options seen above
 
...
 
the result is that I can connect to the LOADBALANCER qmgr, but I get a 2035 when trying to open the cluster alias queue Q1alias with user1 on LOADBALANCER.  I want my java client to send to LOADBALANCER so that it will perform load balancing and send to QM1 and QM2, where the alias queue actually exist, as appropriate.
 
 
I've tried granting grp1 setid and passid authority on the Q1alias queues on QM1 and QM2 and thus in the API call adding the corresponding MQOO options, but this did not work.  Any ideas? | 
			   
			 
		   | 
		 
		
		  | Back to top | 
		  
		  	
		   | 
		 
		
		    | 
		 
		
		  | klingelb | 
		  
		    
			  
				 Posted: Sat Mar 01, 2003 1:11 pm    Post subject: I figured it out | 
				     | 
			   
			 
		   | 
		 
		
		    Apprentice
 
 Joined: 25 Sep 2002 Posts: 28
  
  | 
		  
		    
			  
				I need to have the following authorizations for grp1:
 
 
For QM1: +connect +inq +altusr
 
For QM2: +connect +inq +altusr
 
For LOADBALANCER: +connect +inq +altusr
 
 
For SYSTEM.CLUSTER.TRANSMIT.QUEUE on LOADBALANCER: +put +inq
 
 
For Q1alias on QM1 and QM2: +put +inq
 
 
And it works. | 
			   
			 
		   | 
		 
		
		  | Back to top | 
		  
		  	
		   | 
		 
		
		    | 
		 
		
		  | 
		    
		   | 
		 
	   
	 | 
   
 
  
	     | 
	 | 
	Page 1 of 1 | 
   
 
 
 
  
  	
	  
		
		  
 
  | 
		  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
  | 
  		 
	   
	 | 
   
 
  	 | 
	  |