Java

本类阅读TOP10

·使用MyEclipse开发Struts框架的Hello World!(录像1)
·hibernate配置笔记
·AOP编程入门--Java篇
·linux下Tomcat 5.0.20 与 Apache 2 安装/集成/配置
·在win2003下整合了整合Tomcat5.5+ apache_2.0.53+ mod_jk_2.0.47.dll
·构建Linux下IDE环境--Eclipse篇
·Jsp 连接 mySQL、Oracle 数据库备忘(Windows平台)
·ASP、JSP、PHP 三种技术比较
·Tomcat5.5.9的安装配置
·AWT GUI 设计笔记(二)

分类导航
VC语言Delphi
VB语言ASP
PerlJava
Script数据库
其他语言游戏开发
文件格式网站制作
软件工程.NET开发
两个MQ队列管理器间进行消息传送的简单程序实现

作者:未知 来源:月光软件站 加入时间:2005-2-28 月光软件站

从上周开始看websphere mq,从一无所知到现在终于有所了解,写了个简单的传送消息代码,
我现在是通过在两个队列管理器间设置远程队列来进行消息传递的,
这两天写了一个传送一百多M文件的程序,
还没有在远程机器上测试过,不知道传送效果如何?
先把传送消息的代码贴出来:

/*==============================================================================<br>
 * 版权:  版权所有 (c) 2004 - 2005<br>
 * 文件包:Message<br>
 * 所含类:<br>
 * 编写人员:alaxing<br>
 * 创建日期:2004-09-20<br>
 * 功能说明:两个MQ队列管理器间进行消息传送的简单程序实现<br>
 * 更新记录:<br>
 *  日期          作者           内容<br>
 * =============================================================================<br>
 *
 * ==============================================================================*/

import com.ibm.mq.*;

public class Message {

  private MQQueueManager qMgr;
  private MQQueue mqQueue;

  public Message() {

  }


  /**
   * 从主机名为chenj1的MQ发送消息到主机名为linxf的MQ上
   */
  public void putMsg() {
    try {
      //源方主机名
      String hostName = "chenj1";
      //源方服务器连接通道
      String channel = "S_chenj1";
      //源方队列管理器
      String qManager = "QM_chenj1";
      //远程队列管理器 定义远程队列管理器为QM_linxf ,远程队列为file_linxf
      String qName = "remote_chenj_linxf";

      MQEnvironment.hostname = hostName;
      MQEnvironment.channel = channel;
      MQEnvironment.CCSID = 1381;
      MQEnvironment.properties.put(MQC.TRANSPORT_PROPERTY,
       MQC.TRANSPORT_MQSERIES);
      MQEnvironment.disableTracing();
      MQException.log = null;

      //连接到队列管理器
      qMgr = new MQQueueManager(qManager);

      System.out.println("成功连接QueueManager");


      int openOptions  =MQC.MQOO_OUTPUT | MQC.MQOO_FAIL_IF_QUIESCING;

      mqQueue = qMgr.accessQueue(qName, openOptions);
      MQPutMessageOptions mpmo = new MQPutMessageOptions();
      MQMessage mqMessage = new MQMessage();
      mqMessage.writeString(new java.util.Date().toString());
      mqQueue.put(mqMessage, mpmo);
    }
    catch (MQException ex) {
      System.out.println("Error Code : " + ex.reasonCode);
      ex.printStackTrace();
    }
    catch (java.io.IOException ex) {
      ex.printStackTrace();
    }
    finally {
      try {
 if (mqQueue != null) {
   mqQueue.close();
   System.out.println("成功关闭Queue");
 }
 if (qMgr != null) {
   qMgr.close();
   qMgr.disconnect();
   System.out.println("成功关闭、断开QueueManager");
 }
      }
      catch (MQException ex) {

      } //end try-catch

    } //end try-catch

  }


  /**
   * 从主机名为linxf的MQ上接收消息
   */
  public void getMsg() {

    try {
      //接收方主机名
      String hostName = "linxf";
      //接收方服务器连接通道
      String channel = "S_linxf";
      //接收方队列名称
      String qManager = "QM_linxf";
      //接收方接收的本地队列
      String qName = "file_linxf";

      MQEnvironment.properties.put(MQC.TRANSPORT_PROPERTY,
       MQC.TRANSPORT_MQSERIES);
      MQEnvironment.CCSID = 1381;
      MQEnvironment.hostname = hostName;
      MQEnvironment.channel = channel;

      MQQueueManager qMgr = new MQQueueManager(qManager);
      System.out.println("成功连接QueueManager");

      int openOptions = MQC.MQOO_INPUT_SHARED | MQC.MQOO_FAIL_IF_QUIESCING;
      mqQueue = qMgr.accessQueue(qName, openOptions);
      MQGetMessageOptions gmo = new MQGetMessageOptions();
      gmo.options = gmo.options + MQC.MQGMO_SYNCPOINT;
      gmo.options = gmo.options + MQC.MQGMO_WAIT;
      gmo.options = gmo.options + MQC.MQGMO_FAIL_IF_QUIESCING;
      gmo.waitInterval = 3000;
      MQMessage inMsg = new MQMessage();
      mqQueue.get(inMsg, gmo);
      String msg = inMsg.readString(inMsg.getMessageLength());
      System.out.println("this message  is " + msg);
      qMgr.commit();

    }
    catch (MQException ex) {
      System.out.println("Error Code : " + ex.reasonCode);
      ex.printStackTrace();
    }
    catch (java.io.IOException ex) {
      ex.printStackTrace();
    }
    finally {
      try {
 if (mqQueue != null) {
   mqQueue.close();
   System.out.println("成功关闭Queue");
 }
 if (qMgr != null) {
   qMgr.close();
   qMgr.disconnect();
   System.out.println("成功关闭、断开qMgr");
 }
      }
      catch (MQException ex) {

      } //end try-catch

    } //end try-catch

  }

  public static void main(String[] args) {
    Message msg = new Message();
    msg.putMsg();
    msg.getMsg();
  }
}




相关文章

相关软件