空間站

          北極心空

            BlogJava :: 首頁 :: 聯系 :: 聚合  :: 管理
            15 Posts :: 393 Stories :: 160 Comments :: 0 Trackbacks

          由于最近開發一個MQ接口項目,故用到了IBM的Websphere MQ中間件,關于MQ的一些常規性知識我這里不作敘述,這些也不屬本站經驗篇范疇之內,MQ支持眾多語言,本文是JAVA的API。現以列表體現:

          1、給消息定義標識(ID)的方法:

          ?? //使發送的消息標識為 200601??
          ??? String id="200601";??
          ??? MQMessage inMsg = new MQMessage(); //創建消息緩沖區
          ??? inMsg.messageId=id.getBytes();
          ??? String msgString=null;????
          ??? queue.set(inMsg,gmo);

          ??? //接受標識為 200601的消息,其它的將不接受。
          ?? ?MQMessage inMsg = new MQMessage(); //創建消息緩沖區
          ??? inMsg.messageId=id.getBytes();
          ??? String msgString=null;????
          ??? queue.get(inMsg,gmo);

          ? 以messageId來給消息一個標識,這個標識是字符型的,即String類型的。

          2、正確讀取整條消息內容

          ?? String msgString;
          ?? msgString=inMsg.readStringOfByteLength(inMsg.getDataLength());


          ??? inMsg.messageId=id.getBytes();
          ??? String msgString=null;
          ????queue.get(inMsg,gmo);
          ? ? //msgString=inMsg.readUTF();
          ????String msgString;
          ??? msgString=inMsg.readStringOfByteLength(inMsg.getDataLength());

          ?? 讀取消息常用的方法有:
          ??? readString(長度)
          ??? readStringOfByteLength(長度)
          ??? //以上兩個方法為適用于讀出整個消息
          ??? readLine()
          ??? //讀取一行
          ? 大多數教程中,均使用readString方法,但這個方法有些問題,現在不推薦使用,有些文件可以讀,有些文件由于其長度getDataLength獲得不對,所以導致出錯。所以,我們用readStringOfByteLength來獲得整個消息。其參數可以為消息的長度。

          3、獲得消息內容的長度:

          ? getDataLength
          ? getMessageLength
          ? 這兩個方法都是獲得消息長度,getDataLength是未讀出的消息長度,比較,你已經用read方法讀取了2000長度的消息,那么getDataLength就是消息總找度減去已讀的這部分。而getMessageLength是整個消息的長度。無論是否read它的值是不變的。

          inMsg.messageId=id.getBytes();
          ??? String msgString=null;
          ???
          ???
          ? queue.get(inMsg,gmo);
          ?
          ?//String k=new String(inMsg.messageId,"gb2312");
          ?//System.out.println(k.trim());
          ?
          ? //msgString=inMsg.readUTF();
          ? String msg;
          ? msgString=inMsg.readStringOfByteLength(inMsg.getDataLength());
          ?
          ? System.out.println("消息:\n" + msgString);
          ? System.out.println("\n消息長度:\n" + inMsg.getMessageLength());
          ? System.out.println("\n消息長度getDataLength:\n" + inMsg.getDataLength());
          ? qMgr.commit();//提交事務處理
          posted on 2006-12-15 15:53 蘆葦 閱讀(1408) 評論(0)  編輯  收藏 所屬分類: JAVA其他
          主站蜘蛛池模板: 平塘县| 喀什市| 金门县| 深水埗区| 九龙城区| 东至县| 云梦县| 称多县| 七台河市| 垦利县| 墨竹工卡县| 哈尔滨市| 张家界市| 美姑县| 星座| 米泉市| 天津市| 荃湾区| 资源县| 忻城县| 化州市| 遂昌县| 宜阳县| 锡林浩特市| 东乌珠穆沁旗| 扎兰屯市| 乐东| 遂昌县| 永善县| 星子县| 镇原县| 广元市| 巍山| 松江区| 彭州市| 兰坪| 金平| 怀仁县| 张家港市| 垫江县| 司法|