zoukankan      html  css  js  c++  java
  • WebSphere MQ For JAVA编程实例请求/回复样例

    Requester.java源码:

    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源码如下:

    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();
            }
        }
    }
  • 相关阅读:
    14_java之变量|参数|返回值|修饰符
    NYOJ 202 红黑树 (二叉树)
    NYOJ 138 找球号(二) (哈希)
    NYOJ 136 等式 (哈希)
    NYOJ 133 子序列 (离散化)
    NYOJ 129 树的判定 (并查集)
    NYOJ 117 求逆序数 (树状数组)
    NYOJ 93 汉诺塔 (数学)
    HDU 2050 折线分割平面 (数学)
    天梯赛L2-008 最长对称子串 (字符串处理)
  • 原文地址:https://www.cnblogs.com/windows/p/2701620.html
Copyright © 2011-2022 走看看