WebSphere MQ For JAVA编程实例----请求/回复---样例

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();

}

}

}

以上是 WebSphere MQ For JAVA编程实例----请求/回复---样例 的全部内容, 来源链接: utcz.com/z/393598.html

回到顶部