空間站

          北極心空

            BlogJava :: 首頁 :: 聯(lián)系 :: 聚合  :: 管理
            15 Posts :: 393 Stories :: 160 Comments :: 0 Trackbacks

          從上周開始看websphere mq,從一無所知到現(xiàn)在終于有所了解,寫了個(gè)簡單的傳送消息代碼,
          我現(xiàn)在是通過在兩個(gè)隊(duì)列管理器間設(shè)置遠(yuǎn)程隊(duì)列來進(jìn)行消息傳遞的,
          這兩天寫了一個(gè)傳送一百多M文件的程序,
          還沒有在遠(yuǎn)程機(jī)器上測(cè)試過,不知道傳送效果如何?
          先把傳送消息的代碼貼出來:

          /*==============================================================================<br>
          ?* 版權(quán):? 版權(quán)所有 (c) 2004 - 2005<br>
          ?* 文件包:Message<br>
          ?* 所含類:<br>
          ?* 編寫人員:alaxing<br>
          ?* 創(chuàng)建日期:2004-10-23<br>
          ?* 功能說明:兩個(gè)MQ隊(duì)列管理器間進(jìn)行消息傳送的簡單程序?qū)崿F(xiàn)<br>
          ?* 更新記錄:<br>
          ?*? 日期????????? 作者?????????? 內(nèi)容<br>
          ?* =============================================================================<br>
          ?*
          ?* ==============================================================================*/

          import com.ibm.mq.*;

          public class Message {

          ? private MQQueueManager qMgr;
          ? private MQQueue mqQueue;

          ? public Message() {

          ? }


          ? /**
          ?? * 從主機(jī)名為chenj1的MQ發(fā)送消息到主機(jī)名為linxf的MQ上
          ?? */
          ? public void putMsg() {
          ??? try {
          ????? //源方主機(jī)名
          ????? String hostName = "chenj1";
          ????? //源方服務(wù)器連接通道
          ????? String channel = "S_chenj1";
          ????? //源方隊(duì)列管理器
          ????? String qManager = "QM_chenj1";
          ????? //遠(yuǎn)程隊(duì)列管理器 定義遠(yuǎn)程隊(duì)列管理器為QM_linxf ,遠(yuǎn)程隊(duì)列為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;

          ????? //連接到隊(duì)列管理器
          ????? 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("成功關(guān)閉Queue");
          ?}
          ?if (qMgr != null) {
          ?? qMgr.close();
          ?? qMgr.disconnect();
          ?? System.out.println("成功關(guān)閉、斷開QueueManager");
          ?}
          ????? }
          ????? catch (MQException ex) {

          ????? } //end try-catch

          ??? } //end try-catch

          ? }


          ? /**
          ?? * 從主機(jī)名為linxf的MQ上接收消息
          ?? */
          ? public void getMsg() {

          ??? try {
          ????? //接收方主機(jī)名
          ????? String hostName = "linxf";
          ????? //接收方服務(wù)器連接通道
          ????? String channel = "S_linxf";
          ????? //接收方隊(duì)列名稱
          ????? String qManager = "QM_linxf";
          ????? //接收方接收的本地隊(duì)列
          ????? 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("成功關(guān)閉Queue");
          ?}
          ?if (qMgr != null) {
          ?? qMgr.close();
          ?? qMgr.disconnect();
          ?? System.out.println("成功關(guān)閉、斷開qMgr");
          ?}
          ????? }
          ????? catch (MQException ex) {

          ????? } //end try-catch

          ??? } //end try-catch

          ? }

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



          Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=152448

          posted on 2006-12-15 20:18 蘆葦 閱讀(650) 評(píng)論(0)  編輯  收藏 所屬分類: JAVA其他
          主站蜘蛛池模板: 莲花县| 临漳县| 珲春市| 太保市| 尉犁县| 苍山县| 独山县| 长治市| 盖州市| 惠来县| 吴桥县| 景东| 鹤岗市| 南安市| 诏安县| 饶河县| 科尔| 宝兴县| 阳西县| 长葛市| 芦山县| 谷城县| 抚远县| 天水市| 蓬溪县| 湘潭县| 青冈县| 剑河县| 乌拉特后旗| 鄂伦春自治旗| 寿阳县| 长顺县| 新晃| 姜堰市| 申扎县| 柏乡县| 锡林郭勒盟| 灵川县| 富平县| 西乡县| 清镇市|