接收来自MQ的消息

来源:互联网 发布:雪梨开的淘宝店铺 编辑:程序博客网 时间:2024/05/20 13:40

import java.io.IOException;
import com.ibm.mq.MQC;
import com.ibm.mq.MQEnvironment;
import com.ibm.mq.MQException;
import com.ibm.mq.MQMessage;
import com.ibm.mq.MQPutMessageOptions;
import com.ibm.mq.MQQueue;
import com.ibm.mq.MQQueueManager;

/**
 * 接收来自MQ的消息
 *
 * @author amoretto
 *
 */
public class MQSender implements Runnable {
 
 private static final String MQ_MANAGER = "MQ_TEST";

 private static final String MQ_HOST_NAME = "10.7.61.241";

 private static final String MQ_CHANNEL = "TEST";

 private static final String MQ_QUEUE_NAME = "TEST_QUEUE";

 private static final int MQ_PROT = 1414;

 private static final int MQ_CCSID = 819;

 public void run() {
  MQQueueManager mqQueueManager = null;
  MQQueue mqQueue = null;
  try {
   // 建立MQ客户端调用上下文环境
   MQEnvironment.addConnectionPoolToken();
   MQEnvironment.hostname = MQ_HOST_NAME; // 服务器ip地址
   MQEnvironment.channel = MQ_CHANNEL;
   MQEnvironment.port = MQ_PROT; // 服务器MQ服务端口
   MQEnvironment.properties.put(MQC.TRANSPORT_PROPERTY,
     MQC.TRANSPORT_MQSERIES);
   MQEnvironment.CCSID = MQ_CCSID; // 服务器MQ服务使用的编码
   int sendOptions = MQC.MQOO_OUTPUT | MQC.MQOO_FAIL_IF_QUIESCING;
   mqQueueManager = new MQQueueManager(MQ_MANAGER); // 队列管理器名称
   mqQueue = mqQueueManager.accessQueue(MQ_QUEUE_NAME, sendOptions,
     null, null, null); // 队列名称
   MQPutMessageOptions mqPutMessageOptions = new MQPutMessageOptions(); // 消息属性
   MQMessage mqMessage = null;
   String putMessage = "test";
   mqMessage = new MQMessage();
   mqMessage.format = MQC.MQFMT_STRING; // 字符串
   mqMessage.write(putMessage.getBytes());
   mqQueue.put(mqMessage, mqPutMessageOptions);// 将消息写入队列
  } catch (MQException e) {
   e.printStackTrace();
  } catch (IOException e1) {
   e1.printStackTrace();
  } finally {
   if (mqQueue != null) {
    try {
     // 关闭队列
     mqQueue.close();
    } catch (MQException e) {
     e.printStackTrace();
    }
   }
   if (mqQueueManager != null) {
    try {
     // 关闭队列管理器
     mqQueueManager.close();
    } catch (MQException e) {
     e.printStackTrace();
    }
   }
  }
 }

 public static void main(String arg[]) {
  MQSender client = new MQSender();
  Thread mqClientThread = new Thread(client);
  mqClientThread.start();
 }
}