空間站

          北極心空

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

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

          /*==============================================================================<br>
          ?* 版權(quán):? 版權(quán)所有 (c) 2004 - 2005<br>
          ?* 文件包:Message<br>
          ?* 所含類:<br>
          ?* 編寫人員:alaxing<br>
          ?* 創(chuàng)建日期:2004-10-23<br>
          ?* 功能說明:兩個MQ隊列管理器間進(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() {

          ? }


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

          ? }


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

          ??? try {
          ????? //接收方主機名
          ????? String hostName = "linxf";
          ????? //接收方服務(wù)器連接通道
          ????? 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("成功關(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) 評論(0)  編輯  收藏 所屬分類: JAVA 、其他
          主站蜘蛛池模板: 宜章县| 喜德县| 英吉沙县| 江华| 克拉玛依市| 阿拉善盟| 凉山| 京山县| 新源县| 营口市| 芦溪县| 海口市| 易门县| 嘉峪关市| 泰来县| 临汾市| 岢岚县| 凌海市| 昌平区| 苏尼特左旗| 金湖县| 鄄城县| 长丰县| 临潭县| 曲水县| 东台市| 五台县| 鲁甸县| 含山县| 隆昌县| 建湖县| 津南区| 广昌县| 三原县| 浑源县| 江西省| 贺州市| 天镇县| 文水县| 沁阳市| 修文县|