|   | 
	 
  
    | 
RSS Feed - WebSphere MQ Support
 | 
RSS Feed - Message Broker Support
 |   
 
  
	     | 
	 | 
   
 
  
	|  Executing PCF Command using MQ Client | 
	« View previous topic :: View next topic »  | 
   
  
  	
	  
		
		
		  | Author | 
		  Message
		 |  
		
		  | jigjim | 
		  
		    
			  
				 Posted: Tue Apr 20, 2004 2:11 pm    Post subject: Executing PCF Command using MQ Client | 
				     | 
			   
			 
		   | 
		 
		
		   Apprentice
 
 Joined: 30 Mar 2004 Posts: 41
  
  | 
		  
		    
			  
				Hi,
 
 
I am using the below code to put a PCF Command on the Client. I am not able to see the message on any Q's on mainframe.  The error log on mainframe shows the follwing lines:
 
 
   
	| Code: | 
   
  
	17.42.28 STC00700  +CSQX208E &MQO1 CSQXRESP Error receiving data,  683
 
   683              channel SYSTEM.DEF.SVRCONN,
 
   683              connection 104.154.69.132
 
   683              (queue manager ????)
 
   683              TRPTYPE=TCP RC=00000461
 
17.42.28 STC00700  +CSQX599E &MQO1 CSQXRESP Channel SYSTEM.DEF.SVRCONN ended ab | 
   
 
 
 
 
Can somebody pls help me with this? Do I need set the Msg Charachter set so that the system Q understands the command and sends appropriate reply to the reply Q. 
 
 
Thanks Jigs
 
 
 
   
	| Code: | 
   
  
	public class PCFClient_Trial { 
 
   public static void main (String [] args) { 
 
      System.out.println("***  In PCFClient_Trial  ***"); 
 
      MQQueueManager qmgr;
 
      MQQueue sendQ, replyQ;
 
      MQPutMessageOptions pmo = new MQPutMessageOptions ();
 
      MQGetMessageOptions gmo = new MQGetMessageOptions ();    
 
      MQMessage sendM, recvM;
 
        String name = null; 
 
        Integer depth = null;
 
      String replyQueueName = "MQO1LV5.QL.ICRS_TO_XRM"; 
 
       
 
       int [] attrs = { CMQC.MQCA_Q_NAME, CMQC.MQIA_CURRENT_Q_DEPTH }; 
 
        MQCFH cfh; 
 
        PCFParameter p; 
 
 
        System.out.print ("Connecting to queue manager at " + 
 
         args [0] + ":" + args [1] + " over channel " + 
 
          args [2] + "... "); 
 
        MQEnvironment.hostname = args [0];       
 
       MQEnvironment.port = Integer.parseInt (args [1]); 
 
        MQEnvironment.channel = args [2]; 
 
       
 
        MQEnvironment.properties.put(MQC.TRANSPORT_PROPERTY, 
 
                       MQC.TRANSPORT_MQSERIES); 
 
        
 
        try { 
 
         qmgr = new MQQueueManager ("MQO1"); 
 
          System.out.println ("Connected to: " + qmgr.name); 
 
             
 
             String a = qmgr.getCommandInputQueueName();
 
             System.out.println("Command Q for MQO1 is : " + a);
 
             
 
             // MQC.MQOO_OUTPUT
 
             // MQC.MQOO_INPUT_AS_Q_DEF
 
      // MQC.MQOO_INPUT_SHARED
 
      // MQC.MQOO_INPUT_EXCLUSIVE
 
         
 
   int openOptions = MQC.MQOO_OUTPUT ; 
 
          
 
             // SYSTEM.CLUSTER.COMMAND.QUEUE 
 
             // SYSTEM.DEFAULT.LOCAL.QUEUE
 
             // SYSTEM.COMMAND.INPUT
 
          sendQ = qmgr.accessQueue(
 
            "SYSTEM.COMMAND.INPUT",openOptions,null,null,"");                
 
          
 
          sendM = new MQMessage(); 
 
          // message.writeUTF("Hello World!");       
 
 
         sendM.messageType = MQC.MQMT_REQUEST;
 
         sendM.characterSet = 37;
 
         // sendM.
 
         sendM.expiry = 100; 
 
         sendM.feedback = MQC.MQFB_NONE; 
 
         sendM.format = MQC.MQFMT_ADMIN;
 
         sendM.replyToQueueManagerName = "MQO1";
 
         sendM.replyToQueueName = replyQueueName; 
 
 
           MQCFH.write (sendM, CMQCFC.MQCMD_INQUIRE_Q, 3);   // 3 parameters follow 
 
          MQCFST.write (sendM, CMQC.MQCA_Q_NAME, "*"); 
 
          MQCFIN.write (sendM, CMQC.MQIA_Q_TYPE, CMQC.MQQT_ALL); 
 
          MQCFIL.write (sendM, CMQCFC.MQIACF_Q_ATTRS, attrs); 
 
                
 
          System.out.print ("Sending PCF request... "); 
 
          sendQ.put(sendM, pmo); 
 
          System.out.println ("Sent.");  | 
   
 
 | 
			   
			 
		   | 
		 
		
		  | Back to top | 
		  
		  	
		   | 
		 
		
		    | 
		 
		
		  | EddieA | 
		  
		    
			  
				 Posted: Tue Apr 20, 2004 2:32 pm    Post subject:  | 
				     | 
			   
			 
		   | 
		 
		
		    Jedi
 
 Joined: 28 Jun 2001 Posts: 2453 Location: Los Angeles 
  | 
		  
		    
			  
				Based on the error part, that's z/OS you're trying to connect to.  Guess what, z/OS doesn't support PCF messages.
 
 
Take a look at the PCF manual for how you "talk" to z/OS remotely.  You send in "clear text" commands, and parse out "clear text" replies.  Fun.
 
 
But, that's not you're problem.  I'm not sure what is though.  Do you have the CAF installed.
 
 
Cheers, _________________ Eddie Atherton
 
IBM Certified Solution Developer - WebSphere Message Broker V6.1
 
IBM Certified Solution Developer - WebSphere Message Broker V7.0 | 
			   
			 
		   | 
		 
		
		  | Back to top | 
		  
		  	
		   | 
		 
		
		    | 
		 
		
		  | jefflowrey | 
		  
		    
			  
				 Posted: Tue Apr 20, 2004 5:50 pm    Post subject:  | 
				     | 
			   
			 
		   | 
		 
		
		   Grand Poobah
 
 Joined: 16 Oct 2002 Posts: 19981
  
  | 
		  
		    
			  
				Yes, again, you can't use PCF messages against a Z/OS queue manager.
 
 
You have to put MQSC commands onto the command queue. _________________ I am *not* the model of the modern major general. | 
			   
			 
		   | 
		 
		
		  | Back to top | 
		  
		  	
		   | 
		 
		
		    | 
		 
		
		  | jigjim | 
		  
		    
			  
				 Posted: Wed Apr 21, 2004 7:53 am    Post subject:  | 
				     | 
			   
			 
		   | 
		 
		
		   Apprentice
 
 Joined: 30 Mar 2004 Posts: 41
  
  | 
		  
		    
			  
				Hi,
 
 
I am investigating on how to send MQSC commands on z/os SYSTEM.COMMAND.INPUT Q.
 
 
Does anybody have sameple code in JAVA for the same. A sample code whic can be excuted is DISPLAY QMR
 
 
Thanks
 
 
Jignesh | 
			   
			 
		   | 
		 
		
		  | Back to top | 
		  
		  	
		   | 
		 
		
		    | 
		 
		
		  | jefflowrey | 
		  
		    
			  
				 Posted: Wed Apr 21, 2004 8:00 am    Post subject:  | 
				     | 
			   
			 
		   | 
		 
		
		   Grand Poobah
 
 Joined: 16 Oct 2002 Posts: 19981
  
  | 
		  
		    
			  
				There's nothing to investigate.
 
 
You put the MQSC command into the body of the message, and put it on the queue. _________________ I am *not* the model of the modern major general. | 
			   
			 
		   | 
		 
		
		  | Back to top | 
		  
		  	
		   | 
		 
		
		    | 
		 
		
		  | jigjim | 
		  
		    
			  
				 Posted: Wed Apr 21, 2004 9:30 am    Post subject:  | 
				     | 
			   
			 
		   | 
		 
		
		   Apprentice
 
 Joined: 30 Mar 2004 Posts: 41
  
  | 
		  
		    
			  
				Hi,
 
 
Does the below code look correct? I am more of a java programmer then a MS Series guy and so am having difficulty in MQ stuff ..
 
 
Thanks
 
 
Jigs
 
 
   
	| Code: | 
   
  
	public class MQSCClient { 
 
   public static void main (String [] args) { 
 
      MQQueueManager qmgr;
 
      MQQueue sendQ, replyQ;
 
      MQPutMessageOptions pmo = new MQPutMessageOptions ();
 
      MQGetMessageOptions gmo = new MQGetMessageOptions ();    
 
      MQMessage sendM, recvM;
 
      String replyQueueName = "MQO1LV5.QL.ICRS_TO_XRM"; 
 
       
 
                                        // Channel = SYSTEM.DEF.SVRCONN
 
        MQEnvironment.hostname = args [0];       
 
       MQEnvironment.port = Integer.parseInt (args [1]); 
 
        MQEnvironment.channel = args [2]; 
 
       
 
        MQEnvironment.properties.put(MQC.TRANSPORT_PROPERTY, MQC.TRANSPORT_MQSERIES); 
 
        
 
        try { 
 
         qmgr = new MQQueueManager ("MQO1"); 
 
      int openOptions = MQC.MQOO_OUTPUT ; 
 
          
 
                                        sendQ = qmgr.accessQueue("SYSTEM.COMMAND.INPUT",openOptions,null,null,"");                
 
          
 
       sendM = new MQMessage(); 
 
       sendM.writeUTF("DISPLAY QMGR");       
 
 
      sendM.messageType = MQC.MQMT_REQUEST;
 
      sendM.expiry = 100; 
 
      sendM.feedback = MQC.MQFB_NONE; 
 
      sendM.format = MQC.MQFMT_ADMIN;
 
      sendM.replyToQueueManagerName = "MQO1";
 
      sendM.replyToQueueName = replyQueueName; 
 
 
      System.out.print ("Sending PCF request... "); 
 
      sendQ.put(sendM, pmo); 
 
      System.out.println ("Sent."); 
 
 
      replyQ = qmgr.accessQueue (replyQueueName, MQC.MQOO_INPUT_EXCLUSIVE, "", "", "");
 
                
 
      gmo.options = MQC.MQGMO_WAIT | MQC.MQGMO_CONVERT ;
 
      gmo.waitInterval = 1000; 
 
                       recvM = new MQMessage(); 
 
      recvM.messageId = sendM.messageId; 
 
          
 
      replyQ.get(recvM, gmo);  
 
      String msgText = recvM.readUTF();
 
      System.out.println("The message is : "+msgText);
 
                       sendQ.close();
 
      replyQ.close();
 
      qmgr.disconnect(); 
 
     }    
 
     catch (MQException mqe) { 
 
              if (mqe.reasonCode != MQException.MQRC_NO_MSG_AVAILABLE) { 
 
            System.err.println (mqe); 
 
          } 
 
        } 
 
        catch (IOException ioe) { 
 
          System.err.println (ioe); 
 
        } 
 
   } 
 
} | 
   
 
 | 
			   
			 
		   | 
		 
		
		  | Back to top | 
		  
		  	
		   | 
		 
		
		    | 
		 
		
		  | victorf | 
		  
		    
			  
				 Posted: Wed May 05, 2004 7:51 am    Post subject: MQ z/OS and java | 
				     | 
			   
			 
		   | 
		 
		
		   Newbie
 
 Joined: 05 May 2004 Posts: 1
  
  | 
		  
		    
			  
				Hi -
 
 
I have the same problem. Can you please post the code if you
 
have it working.
 
 
Regards,
 
 
Victor Fernandez
 
 
   
	| jigjim wrote: | 
   
  
	Hi,
 
 
Does the below code look correct? I am more of a java programmer then a MS Series guy and so am having difficulty in MQ stuff ..
 
 
Thanks
 
 
Jigs
 
 
   
	| Code: | 
   
  
	public class MQSCClient { 
 
   public static void main (String [] args) { 
 
      MQQueueManager qmgr;
 
      MQQueue sendQ, replyQ;
 
      MQPutMessageOptions pmo = new MQPutMessageOptions ();
 
      MQGetMessageOptions gmo = new MQGetMessageOptions ();    
 
      MQMessage sendM, recvM;
 
      String replyQueueName = "MQO1LV5.QL.ICRS_TO_XRM"; 
 
       
 
                                        // Channel = SYSTEM.DEF.SVRCONN
 
        MQEnvironment.hostname = args [0];       
 
       MQEnvironment.port = Integer.parseInt (args [1]); 
 
        MQEnvironment.channel = args [2]; 
 
       
 
        MQEnvironment.properties.put(MQC.TRANSPORT_PROPERTY, MQC.TRANSPORT_MQSERIES); 
 
        
 
        try { 
 
         qmgr = new MQQueueManager ("MQO1"); 
 
      int openOptions = MQC.MQOO_OUTPUT ; 
 
          
 
                                        sendQ = qmgr.accessQueue("SYSTEM.COMMAND.INPUT",openOptions,null,null,"");                
 
          
 
       sendM = new MQMessage(); 
 
       sendM.writeUTF("DISPLAY QMGR");       
 
 
      sendM.messageType = MQC.MQMT_REQUEST;
 
      sendM.expiry = 100; 
 
      sendM.feedback = MQC.MQFB_NONE; 
 
      sendM.format = MQC.MQFMT_ADMIN;
 
      sendM.replyToQueueManagerName = "MQO1";
 
      sendM.replyToQueueName = replyQueueName; 
 
 
      System.out.print ("Sending PCF request... "); 
 
      sendQ.put(sendM, pmo); 
 
      System.out.println ("Sent."); 
 
 
      replyQ = qmgr.accessQueue (replyQueueName, MQC.MQOO_INPUT_EXCLUSIVE, "", "", "");
 
                
 
      gmo.options = MQC.MQGMO_WAIT | MQC.MQGMO_CONVERT ;
 
      gmo.waitInterval = 1000; 
 
                       recvM = new MQMessage(); 
 
      recvM.messageId = sendM.messageId; 
 
          
 
      replyQ.get(recvM, gmo);  
 
      String msgText = recvM.readUTF();
 
      System.out.println("The message is : "+msgText);
 
                       sendQ.close();
 
      replyQ.close();
 
      qmgr.disconnect(); 
 
     }    
 
     catch (MQException mqe) { 
 
              if (mqe.reasonCode != MQException.MQRC_NO_MSG_AVAILABLE) { 
 
            System.err.println (mqe); 
 
          } 
 
        } 
 
        catch (IOException ioe) { 
 
          System.err.println (ioe); 
 
        } 
 
   } 
 
} | 
   
 
 | 
   
 
 | 
			   
			 
		   | 
		 
		
		  | Back to top | 
		  
		  	
		   | 
		 
		
		    | 
		 
		
		  | fjb_saper | 
		  
		    
			  
				 Posted: Thu May 06, 2004 11:11 am    Post subject:  | 
				     | 
			   
			 
		   | 
		 
		
		    Grand High Poobah
 
 Joined: 18 Nov 2003 Posts: 20768 Location: LI,NY 
  | 
		  
		    
			  
				From one of the different posts in the forum:
 
WriteUTF method puts additional stuff on the queue.
 
Check the other methods for writing text. Try using one of those.
 
 
Good luck   
 
F.J. | 
			   
			 
		   | 
		 
		
		  | 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
  | 
  		 
	   
	 | 
   
 
  	 | 
	  |