WebSphere MQ For JAVA编程实例----请求/回复---样例
Requester.java源码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 | import com.ibm.mq.*; public class Requester { public static void main(String args[]) { try { String hostName = "127.0.0.1" ; String channel = "CHAN1" ; String qManager = "QM1" ; String requestQueue = "QL1" ; String replyToQueue = "REPLYQ" ; String replyToQueueManager = "QM1" ; // Set up the MQEnvironment properties for Client Connections MQEnvironment.hostname = hostName; MQEnvironment.channel = channel; MQEnvironment.properties.put(MQC.TRANSPORT_PROPERTY, MQC.TRANSPORT_MQSERIES); MQEnvironment.CCSID = 1381 ; // Connection To the Queue Manager MQQueueManager qMgr = new MQQueueManager(qManager); int openOptions = MQC.MQOO_OUTPUT | MQC.MQOO_FAIL_IF_QUIESCING; // Open the queue MQQueue queue = qMgr.accessQueue(requestQueue, openOptions, null , null , null ); // Set the put message options , we will use the default setting. MQPutMessageOptions pmo = new MQPutMessageOptions(); pmo.options = pmo.options + MQC.MQPMO_NEW_MSG_ID; pmo.options = pmo.options + MQC.MQPMO_SYNCPOINT; MQMessage outMsg = new MQMessage(); // Create the message buffer outMsg.format = MQC.MQFMT_STRING; // Set the MQMD format field. outMsg.messageFlags = MQC.MQMT_REQUEST; outMsg.replyToQueueName = replyToQueue; outMsg.replyToQueueManagerName = replyToQueueManager; // Prepare message with user data String msgString = "Test Request Message from Requester program " ; outMsg.writeString(msgString); // Now we put The message on the Queue queue.put(outMsg, pmo); // Commit the transaction. qMgr.commit(); System.out .println( " The message has been Sussesfully putnn#########" ); // Close the the Request Queue queue.close(); // Set openOption for response queue openOptions = MQC.MQOO_INPUT_SHARED | MQC.MQOO_FAIL_IF_QUIESCING; MQQueue respQueue = qMgr.accessQueue(replyToQueue, openOptions, null , null , null ); MQMessage respMessage = new MQMessage(); MQGetMessageOptions gmo = new MQGetMessageOptions(); gmo.options = gmo.options + MQC.MQGMO_SYNCPOINT; // Get messages under syncpoint control gmo.options = gmo.options + MQC.MQGMO_WAIT; // Wait for Response Message gmo.matchOptions = MQC.MQMO_MATCH_CORREL_ID; gmo.waitInterval = 10000 ; respMessage.correlationId = outMsg.messageId; System.out.println( "The response message correlID : " + respMessage.correlationId); // Get the response message. respQueue.get(respMessage, gmo); String response = respMessage.readString(respMessage .getMessageLength()); System.out.println( "The response message is : " + response); qMgr.commit(); respQueue.close(); qMgr.disconnect(); } catch (MQException ex) { System.out.println( "An MQ Error Occurred: Completion Code is :t" + ex.completionCode + "nn The Reason Code is :t" + ex.reasonCode); ex.printStackTrace(); } catch (Exception e) { e.printStackTrace(); } } } |
Responder.java源码如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 | import com.ibm.mq.*; public class Responder { public static void main(String args[]) { try { String hostName = "127.0.0.1" ; String channel = "CHAN1" ; String qManager = "QM1" ; String qName = "QL1" ; // Set up the MQEnvironment properties for Client // Connections MQEnvironment.hostname = hostName; MQEnvironment.channel = channel; MQEnvironment.properties.put(MQC.TRANSPORT_PROPERTY, MQC.TRANSPORT_MQSERIES); MQEnvironment.CCSID = 1381 ; // Connection To the Queue Manager MQQueueManager qMgr = new MQQueueManager(qManager); /* * Set up the open options to open the queue for out put and * additionally we have set the option to fail if the queue manager * is quiescing. */ int openOptions = MQC.MQOO_INPUT_SHARED | MQC.MQOO_FAIL_IF_QUIESCING; // Open the queue MQQueue queue = qMgr.accessQueue(qName, openOptions, null , null , null ); // Set the put message options. MQGetMessageOptions gmo = new MQGetMessageOptions(); gmo.options = gmo.options + MQC.MQGMO_SYNCPOINT; // Get messages under syncpoint control gmo.options = gmo.options + MQC.MQGMO_WAIT; // Wait if no messages on the Queue gmo.options = gmo.options + MQC.MQGMO_FAIL_IF_QUIESCING; // Fail if QeueManager Quiescing gmo.waitInterval = 3000 ; // Sets the time limit for the wait. /* * Next we Build a message The MQMessage class encapsulates the data * buffer that contains the actual message data, together with all * the MQMD parameters that describe the message. * To * Build a new message, create a new instance of MQMessage class and * use writxxx (we will be using writeString method). The put() * method of MQQueue also takes an instance of the * MQPutMessageOptions class as a parameter. */ MQMessage inMsg = new MQMessage(); // Create the message buffer Get the message from the queue on to the message buffer. queue.get(inMsg, gmo); // Read the User data from the message. String msgString = inMsg.readString(inMsg.getMessageLength()); System.out.println( " The Message from the Queue is : " + msgString); // Check if message if of type request message and reply to the // request. if (inMsg.messageFlags == MQC.MQMT_REQUEST) { System.out.println( "Preparing To Reply To the Request " ); String replyQueueName = inMsg.replyToQueueName; System.out.println( "The reply queue: " + replyQueueName); openOptions = MQC.MQOO_OUTPUT | MQC.MQOO_FAIL_IF_QUIESCING; MQQueue respQueue = qMgr.accessQueue(replyQueueName, openOptions, inMsg.replyToQueueManagerName, null , null ); MQMessage respMessage = new MQMessage(); respMessage.correlationId = inMsg.messageId; System.out.println( "The response CorrelID " + respMessage.correlationId); MQPutMessageOptions pmo = new MQPutMessageOptions(); respMessage.format = MQC.MQFMT_STRING; respMessage.messageFlags = MQC.MQMT_REPLY; String response = "Reply from the Responder Program " ; respMessage.writeString(response); respQueue.put(respMessage, pmo); System.out.println( "The response Successfully send " ); qMgr.commit(); respQueue.close(); } queue.close(); qMgr.disconnect(); } catch (MQException ex) { System.out.println( "An MQ Error Occurred: Completion Code is :t" + ex.completionCode + "nn The Reason Code is :t" + ex.reasonCode); ex.printStackTrace(); } catch (Exception e) { e.printStackTrace(); } } } |
posted on 2012-09-25 15:22 jay.windows 阅读(4278) 评论(0) 编辑 收藏 举报
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步