• 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();
            }
        }
    }
  • 相关阅读:
    Java switch 枚举
    (八十七)AutoLayout的简单介绍与实例
    ptime概述
    如何让大数据从发现价值到创造价值
    什么是数据分析?数据分析的6个关键步骤!
    什么是数据分析?数据分析的6个关键步骤!
    数据分析方法汇总(2)
    数据分析方法汇总(2)
    数据分析方法汇总(1)
    人工智能能力提升指导总结
  • 原文地址:https://www.cnblogs.com/windows/p/2701620.html
Copyright © 2020-2023  润新知