MQ Java Binding方式使用JNI(Java Native Interface)類似於MQ 伺服器應用程式。 MQSeries Java客戶機伺服器連線最快的方式是MQ Java Binding方式,這種方式要求MQ Java應用和MQ Server在同一臺機器上。使用MQ Java Binding方式避免了建立網路連線的開銷,因此,當連線對效能影響很大時,應當選用MQ Java Binding方式。 MQ Java Client方式透過Server端定義的伺服器連線通道連線,伺服器方需要啟動偵聽程式。MQ Java Client方式用於Java客戶程式和伺服器不在同一臺機器時進行連線。 客戶端連線,建立MQEnvironment類 MQEnvironment.hostname 以下是,客戶端連線例子 // =========================================================================== // // Licensed Materials - Property of IBM // // 5639-C34 // // (c) Copyright IBM Corp. 1995,1999 // // =========================================================================== // WebSphere MQ M"z Java f sample applet // // This sample runs as an applet using the appletviewer and HTML file, // using the command :- // appletviewer MQSample.html // Output is to the command line, NOT the applet viewer window. // // Note. If you receive WebSphere MQ error 2 reason 2059 and you are sure your // WebSphere MQ and TCP/IP setup is correct, // you should click on the "Applet" selection in the Applet viewer window // select properties, and change "Network access" to unrestricted. import com.ibm.mq.*; // Include the WebSphere MQ classes for Java package public class MQSample extends java.applet.Applet { private String hostname = "your_hostname"; // define the name of your // host to connect to private String channel = "server_channel"; // define name of channel // for client to use // Note. assumes WebSphere MQ Server // is listening on the default // TCP/IP port of 1414 private String qManager = "your_Q_manager"; // define name of queue // manager object to // connect to. private MQQueueManager qMgr; // define a queue manager object // When the class is called, this initialization is done first. public void init() { // Set up WebSphere MQ environment MQEnvironment.hostname = hostname; // Could have put the // hostname & channel MQEnvironment.channel = channel; // string directly here! MQEnvironment.properties.put(MQC.TRANSPORT_PROPERTY,//Set TCP/IP or server MQC.TRANSPORT_MQSERIES);//Connection } // end of init public void start() { try { // Create a connection to the queue manager qMgr = new MQQueueManager(qManager); // Set up the options on the queue we wish to open... // Note. All WebSphere MQ Options are prefixed with MQC in Java. int openOptions = MQC.MQOO_INPUT_AS_Q_DEF | MQC.MQOO_OUTPUT ; // Now specify the queue that we wish to open, and the open options... MQQueue system_default_local_queue = qMgr.accessQueue("SYSTEM.DEFAULT.LOCAL.QUEUE", openOptions); // Define a simple WebSphere MQ message, and write some text in UTF format.. MQMessage hello_world = new MQMessage(); hello_world.writeUTF("Hello World!"); // specify the message options... MQPutMessageOptions pmo = new MQPutMessageOptions(); // accept the defaults, // same as // MQPMO_DEFAULT // constant // put the message on the queue system_default_local_queue.put(hello_world,pmo); // get the message back again... // First define WebSphere MQ message buffer to receive the message into.. MQMessage retrievedMessage = new MQMessage(); retrievedMessage.messageId = hello_world.messageId; // Set the get message options.. MQGetMessageOptions gmo = new MQGetMessageOptions(); // accept the defaults // same as // MQGMO_DEFAULT // get the message off the queue.. system_default_local_queue.get(retrievedMessage, gmo); // And prove we have the message by displaying the UTF message text String msgText = retrievedMessage.readUTF(); System.out.println("The message is: " + msgText); // Close the queue system_default_local_queue.close(); // Disconnect from the queue manager qMgr.disconnect(); } // If an error has occurred in the above, try to identify what went wrong. // Was it WebSphere MQ error? } applet (2/3) >}zk 62 WebSphere MQ 9C Java >}&CLrzk TBzkN]>;vr%D&CLr,|9Cs(==: 1. ,S=SP\mw 2. +{"Ek SYSTEM.DEFAULT.LOCAL.QUEUE 3. YN!5XD{" catch (MQException ex) { System.out.println("WebSphere MQ error occurred : Completion code " + ex.completionCode + " Reason code " + ex.reasonCode); } // Was it a Java buffer space error? catch (java.io.IOException ex) { System.out.println("An error occurred whilst writing to the message buffer: " + ex); } } // end of start } // end of sample
MQ Java Binding方式使用JNI(Java Native Interface)類似於MQ 伺服器應用程式。 MQSeries Java客戶機伺服器連線最快的方式是MQ Java Binding方式,這種方式要求MQ Java應用和MQ Server在同一臺機器上。使用MQ Java Binding方式避免了建立網路連線的開銷,因此,當連線對效能影響很大時,應當選用MQ Java Binding方式。 MQ Java Client方式透過Server端定義的伺服器連線通道連線,伺服器方需要啟動偵聽程式。MQ Java Client方式用於Java客戶程式和伺服器不在同一臺機器時進行連線。 客戶端連線,建立MQEnvironment類 MQEnvironment.hostname 以下是,客戶端連線例子 // =========================================================================== // // Licensed Materials - Property of IBM // // 5639-C34 // // (c) Copyright IBM Corp. 1995,1999 // // =========================================================================== // WebSphere MQ M"z Java f sample applet // // This sample runs as an applet using the appletviewer and HTML file, // using the command :- // appletviewer MQSample.html // Output is to the command line, NOT the applet viewer window. // // Note. If you receive WebSphere MQ error 2 reason 2059 and you are sure your // WebSphere MQ and TCP/IP setup is correct, // you should click on the "Applet" selection in the Applet viewer window // select properties, and change "Network access" to unrestricted. import com.ibm.mq.*; // Include the WebSphere MQ classes for Java package public class MQSample extends java.applet.Applet { private String hostname = "your_hostname"; // define the name of your // host to connect to private String channel = "server_channel"; // define name of channel // for client to use // Note. assumes WebSphere MQ Server // is listening on the default // TCP/IP port of 1414 private String qManager = "your_Q_manager"; // define name of queue // manager object to // connect to. private MQQueueManager qMgr; // define a queue manager object // When the class is called, this initialization is done first. public void init() { // Set up WebSphere MQ environment MQEnvironment.hostname = hostname; // Could have put the // hostname & channel MQEnvironment.channel = channel; // string directly here! MQEnvironment.properties.put(MQC.TRANSPORT_PROPERTY,//Set TCP/IP or server MQC.TRANSPORT_MQSERIES);//Connection } // end of init public void start() { try { // Create a connection to the queue manager qMgr = new MQQueueManager(qManager); // Set up the options on the queue we wish to open... // Note. All WebSphere MQ Options are prefixed with MQC in Java. int openOptions = MQC.MQOO_INPUT_AS_Q_DEF | MQC.MQOO_OUTPUT ; // Now specify the queue that we wish to open, and the open options... MQQueue system_default_local_queue = qMgr.accessQueue("SYSTEM.DEFAULT.LOCAL.QUEUE", openOptions); // Define a simple WebSphere MQ message, and write some text in UTF format.. MQMessage hello_world = new MQMessage(); hello_world.writeUTF("Hello World!"); // specify the message options... MQPutMessageOptions pmo = new MQPutMessageOptions(); // accept the defaults, // same as // MQPMO_DEFAULT // constant // put the message on the queue system_default_local_queue.put(hello_world,pmo); // get the message back again... // First define WebSphere MQ message buffer to receive the message into.. MQMessage retrievedMessage = new MQMessage(); retrievedMessage.messageId = hello_world.messageId; // Set the get message options.. MQGetMessageOptions gmo = new MQGetMessageOptions(); // accept the defaults // same as // MQGMO_DEFAULT // get the message off the queue.. system_default_local_queue.get(retrievedMessage, gmo); // And prove we have the message by displaying the UTF message text String msgText = retrievedMessage.readUTF(); System.out.println("The message is: " + msgText); // Close the queue system_default_local_queue.close(); // Disconnect from the queue manager qMgr.disconnect(); } // If an error has occurred in the above, try to identify what went wrong. // Was it WebSphere MQ error? } applet (2/3) >}zk 62 WebSphere MQ 9C Java >}&CLrzk TBzkN]>;vr%D&CLr,|9Cs(==: 1. ,S=SP\mw 2. +{"Ek SYSTEM.DEFAULT.LOCAL.QUEUE 3. YN!5XD{" catch (MQException ex) { System.out.println("WebSphere MQ error occurred : Completion code " + ex.completionCode + " Reason code " + ex.reasonCode); } // Was it a Java buffer space error? catch (java.io.IOException ex) { System.out.println("An error occurred whilst writing to the message buffer: " + ex); } } // end of start } // end of sample