|   | 
	 
  
    | 
RSS Feed - WebSphere MQ Support
 | 
RSS Feed - Message Broker Support
 |   
 
  
	     | 
	 | 
   
 
  
	|  Send values to MQMD: error | 
	« View previous topic :: View next topic »  | 
   
  
  	
	  
		
		
		  | Author | 
		  Message
		 |  
		
		  | krustyelpayaso | 
		  
		    
			  
				 Posted: Wed Jun 14, 2006 1:23 am    Post subject: Send values to MQMD: error | 
				     | 
			   
			 
		   | 
		 
		
		   Apprentice
 
 Joined: 24 Oct 2005 Posts: 26
  
  | 
		  
		    
			  
				Hi everybody   ,
 
 
I'm newer into the "world of Java MQ" and i have a problem.
 
I have the next code:
 
 
   
	| Code: | 
   
  
	
 
try {
 
   long messageLength = xmlByteArray.length;
 
 
 
   // Set connection options...
 
   MQEnvironment.hostname = queueInfo.getHost();
 
   MQEnvironment.properties.put(MQC.TRANSPORT_PROPERTY,MQC.TRANSPORT_MQSERIES_CLIENT);
 
   MQEnvironment.channel = queueInfo.getChannel();
 
   try {
 
      MQEnvironment.port = queueInfo.getPort();
 
   } catch (NumberFormatException e) {
 
      log.warn("Cannot parse mq port: using " + HxmQueueInfo.DEFAULT_PORT);
 
      MQEnvironment.port = HxmQueueInfo.DEFAULT_PORT;
 
   }
 
   try {
 
      MQEnvironment.CCSID = queueInfo.getCSSID();
 
      log.info("Set CCSID to " + queueInfo.getCSSID());
 
   } catch (NumberFormatException e) {
 
      log.warn("Cannot parse 'cssid': using " + HxmQueueInfo.DEFAULT_CSSID);
 
      MQEnvironment.CCSID = HxmQueueInfo.DEFAULT_CSSID;
 
   }
 
 
   // Open queue manager for writing...
 
   MQQueueManager qMgr = new MQQueueManager(queueInfo.getManager());
 
   int openOptions = MQC.MQOO_OUTPUT;
 
   MQQueue mqQueue = qMgr.accessQueue(queueInfo.getName(), openOptions, null, null, null);
 
   MQPutMessageOptions pmo = new MQPutMessageOptions();
 
 
   // Prepare message
 
   MQMessage message = new MQMessage();
 
   message.clearMessage();
 
   message.correlationId = MQC.MQCI_NONE; // Reset MessageID & CorrelationID
 
   message.messageId = MQC.MQMI_NONE;
 
   message.format = MQC.MQFMT_STRING;     // Set format to STRING
 
   
 
   String ApplicationName = "TOTO";
 
   message.putApplicationName = ApplicationName ;  // MQCHAR28      
 
   message.applicationIdData =  ApplicationName ;
 
   message.userId = ApplicationName;
 
   message.applicationOriginData = ApplicationName;
 
         
 
   message.priority = 0;                  // Set priority=0
 
   try {
 
      message.encoding = queueInfo.getEncoding();
 
      log.info("Set Encoding to " + queueInfo.getEncoding());
 
   } catch (NumberFormatException e) {
 
      log.warn("Cannot parse 'encoding': using " + HxmQueueInfo.DEFAULT_ENCODING);
 
      message.encoding = HxmQueueInfo.DEFAULT_ENCODING;
 
   }
 
   try {
 
      message.characterSet = queueInfo.getCSSID();
 
   } catch (NumberFormatException e) {
 
      log.warn("Cannot parse 'cssid': using " + HxmQueueInfo.DEFAULT_CSSID);
 
      message.characterSet = HxmQueueInfo.DEFAULT_CSSID;
 
   }
 
   message.write(xmlByteArray);
 
   xmlByteArray = null;
 
   System.gc();
 
 
   // Send message & close queue manager
 
   log.info("Put into queue a " + (messageLength / 1024) + " Kb message");
 
 
   //--pmo.options = MQC.MQPMO_NONE;         
 
   pmo.options = MQC.MQPMO_SET_ALL_CONTEXT;
 
         
 
   mqQueue.put(message, pmo);
 
   mqQueue.close();
 
   qMgr.disconnect();
 
         
 
   log.info("XML successfully sent to queue!");      
 
 
   } catch (MQException x) {
 
      throw new IOException(
 
         "Connection to MQSeries is broken on queue(manager/channel)@host:port\n"
 
                     + queueInfo.getName() + "(" + queueInfo.getManager() + "/"
 
                     + MQEnvironment.channel + ")@"
 
                     + MQEnvironment.hostname + ":" + MQEnvironment.port);
 
   }
 
 
}
 
 
 | 
   
 
 
 
I try to send to the MQMD header the value "TOTO". I've tried it with this code into differents variables.
 
 
String ApplicationName = "TOTO";
 
message.putApplicationName = ApplicationName ;	
 
message.applicationIdData =  ApplicationName ;
 
message.userId = ApplicationName;
 
message.applicationOriginData = ApplicationName;
 
 
I've read at the forum that i must change the options with the value MQC.MQPMO_SET_ALL_CONTEXT, because if i don't modify it (MQC.MQPMO_NONE) the differents variables will not be modify.
 
 
//--pmo.options = MQC.MQPMO_NONE;			
 
 
pmo.options = MQC.MQPMO_SET_ALL_CONTEXT;
 
 
I run the code and an error appears   
 
 
MQJE001: Completion Code 2, Reason 2095
 
		
 
If i change the code like this it goes OK: there's no error but the variables aren't changed  
 
 
pmo.options = MQC.MQPMO_NONE;			
 
 
//--pmo.options = MQC.MQPMO_SET_ALL_CONTEXT;
 
 
Can anybody help me?
 
 
A lot of thanks   | 
			   
			 
		   | 
		 
		
		  | Back to top | 
		  
		  	
		   | 
		 
		
		    | 
		 
		
		  | Vitor | 
		  
		    
			  
				 Posted: Wed Jun 14, 2006 1:33 am    Post subject:  | 
				     | 
			   
			 
		   | 
		 
		
		    Grand High Poobah
 
 Joined: 11 Nov 2005 Posts: 26093 Location: Texas, USA 
  | 
		  
		    
			  
				If you look up Reason Code 2095 in any of the many & various places it can be looked up, you'll see it means MQRC_NOT_OPEN_FOR_SET_ALL. 
 
 
From this you can deduce there's something wrong with the way the queue's been opened that inhibits the use of MQPMO_SET_ALL etc
 
 
Further hint - check out the context open options!    _________________ Honesty is the best policy.
 
Insanity is the best defence. | 
			   
			 
		   | 
		 
		
		  | Back to top | 
		  
		  	
		   | 
		 
		
		    | 
		 
		
		  | krustyelpayaso | 
		  
		    
			  
				 Posted: Wed Jun 14, 2006 5:01 am    Post subject:  | 
				     | 
			   
			 
		   | 
		 
		
		   Apprentice
 
 Joined: 24 Oct 2005 Posts: 26
  
  | 
		  
		    
			  
				OK. I've found the trouble. Seems to work. Thanks very much!    | 
			   
			 
		   | 
		 
		
		  | 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
  | 
  		 
	   
	 | 
   
 
  	 | 
	  |