| Author | 
		  Message
		 | 
		
		  | svu | 
		  
		    
			  
				 Posted: Mon Jan 30, 2006 7:35 am    Post subject: Max Message Size for clustered queues | 
				     | 
			   
			 
		   | 
		
		
		   Voyager
 
 Joined: 30 Jan 2006 Posts: 99
  
  | 
		  
		    
			  
				| I am trying to use standard Java API methods (MQQueue.getMaxMessageSize and MQQueue.inquire) to get the maximum message size for the queue. If the queue is local, non-shareable - it works like a breeze. But if I share the queue - I get the MQRC_SELECTOR_NOT_FOR_TYPE warning (and -1 as result). Is there any way to obtain the queue size for clustered queues using Java API? How is standard MQ Explorer GUI doing it? | 
			   
			 
		   | 
		
		
		  | Back to top | 
		  
		  	
		   | 
		
		
		    | 
		
		
		  | PeterPotkay | 
		  
		    
			  
				 Posted: Mon Jan 30, 2006 9:37 am    Post subject:  | 
				     | 
			   
			 
		   | 
		
		
		    Poobah
 
 Joined: 15 May 2001 Posts: 7723
  
  | 
		  
		    
			  
				Use the MQ_SET option along with the MQ_INQ option when opening the queue. 
 
 
Also, I don't think an app should be doing this anyway. You have a message to send, send it. If its to big, the put will fail with a very specific error code saying its to big. Waste of time I think always asking how big a messsage could be. The q shouldn't determine this for you, your business requirements should (and the q built acordingly). _________________ Peter Potkay
 
Keep Calm and MQ On | 
			   
			 
		   | 
		
		
		  | Back to top | 
		  
		  	
		   | 
		
		
		    | 
		
		
		  | wschutz | 
		  
		    
			  
				 Posted: Mon Jan 30, 2006 9:49 am    Post subject:  | 
				     | 
			   
			 
		   | 
		
		
		    Jedi Knight
 
 Joined: 02 Jun 2005 Posts: 3316 Location: IBM (retired) 
  | 
		  
		    
			  
				I agree with Peter, what will you do if the maxmsgl on the queue is smaller than the message you need to put?
 
 
However, I do have a question about your post...when you say "If I share the queue", what exactly do you mean?  Do you mean "make the queue a cluster queue" or do you mean setting the SHARED attribute on the queue?
 
 
EDIT: I just saw the topic name, so I take it you mean "putting the queue into a cluster".  So, then the question becomes: do you leave it as a local queue to your java application or do you remove it locally?   I'd bet that you remove it locally, which is why you can't query the maxmsgl. _________________ -wayne | 
			   
			 
		   | 
		
		
		  | Back to top | 
		  
		  	
		   | 
		
		
		    | 
		
		
		  | svu | 
		  
		    
			  
				 Posted: Mon Jan 30, 2006 10:06 am    Post subject:  | 
				     | 
			   
			 
		   | 
		
		
		   Voyager
 
 Joined: 30 Jan 2006 Posts: 99
  
  | 
		  
		    
			  
				
   
	| PeterPotkay wrote: | 
   
  
	| Use the MQ_SET option along with the MQ_INQ option when opening the queue.  | 
   
 
 
Ghm it works. But it looks a bit strange to me - why would I enable "set" access to the parameters if I only need "get"?
 
 
   
	| Quote: | 
   
  
	| Also, I don't think an app should be doing this anyway. You have a message to send, send it. If its to big, the put will fail with a very specific error code saying its to big. Waste of time I think always asking how big a messsage could be. The q shouldn't determine this for you, your business requirements should (and the q built acordingly). | 
   
 
 
In general, I agree - I am just trying to detect the problems at early stages of the processing, before actual submitting. But may be you are right - probably I should better look at MQExceptions...
 
 
Thanks for your help. | 
			   
			 
		   | 
		
		
		  | Back to top | 
		  
		  	
		   | 
		
		
		    | 
		
		
		  | svu | 
		  
		    
			  
				 Posted: Mon Jan 30, 2006 10:08 am    Post subject:  | 
				     | 
			   
			 
		   | 
		
		
		   Voyager
 
 Joined: 30 Jan 2006 Posts: 99
  
  | 
		  
		    
			  
				
   
	| wschutz wrote: | 
   
  
	| I agree with Peter, what will you do if the maxmsgl on the queue is smaller than the message you need to put? | 
   
 
 
I just wanted to save some time by not submitting it;)
 
 
   
	| Quote: | 
   
  
	| EDIT: I just saw the topic name, so I take it you mean "putting the queue into a cluster".  So, then the question becomes: do you leave it as a local queue to your java application or do you remove it locally?   I'd bet that you remove it locally, which is why you can't query the maxmsgl. | 
   
 
 
The queue remains local to the application, as far as I can see. | 
			   
			 
		   | 
		
		
		  | Back to top | 
		  
		  	
		   | 
		
		
		    | 
		
		
		  | PeterPotkay | 
		  
		    
			  
				 Posted: Mon Jan 30, 2006 10:10 am    Post subject:  | 
				     | 
			   
			 
		   | 
		
		
		    Poobah
 
 Joined: 15 May 2001 Posts: 7723
  
  | 
		  
		    
			  
				
   
	| svu wrote: | 
   
  
	
   
	| wschutz wrote: | 
   
  
	| I agree with Peter, what will you do if the maxmsgl on the queue is smaller than the message you need to put? | 
   
 
 
I just wanted to save some time by not submitting it;)
 
 | 
   
 
 
So you save time on the very rare occasion that the message is to big, and waste time the majority of the time checking a value you really don't have to.    _________________ Peter Potkay
 
Keep Calm and MQ On | 
			   
			 
		   | 
		
		
		  | Back to top | 
		  
		  	
		   | 
		
		
		    | 
		
		
		  | PeterPotkay | 
		  
		    
			  
				 Posted: Mon Jan 30, 2006 10:11 am    Post subject:  | 
				     | 
			   
			 
		   | 
		
		
		    Poobah
 
 Joined: 15 May 2001 Posts: 7723
  
  | 
		  
		    
			  
				
   
	| svu wrote: | 
   
  
	
   
	| PeterPotkay wrote: | 
   
  
	| Use the MQ_SET option along with the MQ_INQ option when opening the queue.  | 
   
 
 
Ghm it works. But it looks a bit strange to me - why would I enable "set" access to the parameters if I only need "get"?
 
 | 
   
 
 
Yeah, I think this is annoying and weird too. I have to give +set authority for apps that only need to do inquiry. But thats the way IBM made it for clustered queues.    _________________ Peter Potkay
 
Keep Calm and MQ On | 
			   
			 
		   | 
		
		
		  | Back to top | 
		  
		  	
		   | 
		
		
		    | 
		
		
		  | wschutz | 
		  
		    
			  
				 Posted: Mon Jan 30, 2006 10:11 am    Post subject:  | 
				     | 
			   
			 
		   | 
		
		
		    Jedi Knight
 
 Joined: 02 Jun 2005 Posts: 3316 Location: IBM (retired) 
  | 
		  
		    
			  
				
   
	| Quote: | 
   
  
	| The queue remains local to the application, as far as I can see. | 
   
 
so you're saying you believe it remains local and simply added to the cluster.  Why arent' you "sure" of this, is someone else doing the admin work? _________________ -wayne | 
			   
			 
		   | 
		
		
		  | Back to top | 
		  
		  	
		   | 
		
		
		    | 
		
		
		  | svu | 
		  
		    
			  
				 Posted: Mon Jan 30, 2006 10:14 am    Post subject:  | 
				     | 
			   
			 
		   | 
		
		
		   Voyager
 
 Joined: 30 Jan 2006 Posts: 99
  
  | 
		  
		    
			  
				
   
	| PeterPotkay wrote: | 
   
  
	
 
So you save time on the very rare occasion that the message is to big, and waste time the majority of the time checking a value you really don't have to.    | 
   
 
 
Well, probably my assumptions about "what's expensive and what is cheap" are not exactly accurate:) | 
			   
			 
		   | 
		
		
		  | Back to top | 
		  
		  	
		   | 
		
		
		    | 
		
		
		  | svu | 
		  
		    
			  
				 Posted: Mon Jan 30, 2006 10:16 am    Post subject:  | 
				     | 
			   
			 
		   | 
		
		
		   Voyager
 
 Joined: 30 Jan 2006 Posts: 99
  
  | 
		  
		    
			  
				
   
	| wschutz wrote: | 
   
  
	| so you're saying you believe it remains local and simply added to the cluster.  Why arent' you "sure" of this, is someone else doing the admin work? | 
   
 
 
 
I am doing the admin work for a moment. The queue remains local and simply added to the cluster. At least as far as MQ Explorer is concerned. | 
			   
			 
		   | 
		
		
		  | Back to top | 
		  
		  	
		   | 
		
		
		    | 
		
		
		  | 
		    
		   |