• 軟件測試技術
  • 軟件測試博客
  • 軟件測試視頻
  • 開源軟件測試技術
  • 軟件測試論壇
  • 軟件測試沙龍
  • 軟件測試資料下載
  • 軟件測試雜志
  • 軟件測試人才招聘
    暫時沒有公告

字號: | 推薦給好友 上一篇 | 下一篇

Websphere編程之路--MQ編程初探

發布: 2008-2-21 14:26 | 作者: 雷霖 | 來源: blog | 查看: 131次 | 進入軟件測試論壇討論

領測軟件測試網 IBM Websphere MQ 編程主要有兩部分:一是 MQ 系統管理編程;一是 MQ 應用開發編程。

1、 MQ 編程概述

  IBM Websphere MQ 編程主要有兩部分:一是 MQ 系統管理編程;一是 MQ 應用開發編程。

MQ 系統管理編程:

  所謂的 MQ 系統管理編程是指使用 MQ 提供的編程接口,編制特定的應用程序,來進行對 MQ 各種對象的監控和管理,如:查詢通道的狀態、隊列的深度等運行時狀態,查詢隊列管理器的屬性,隊列的屬性或通道的屬性等靜態參數;以及對 MQ 進行各種操作,如:啟動 / 停止通道,創建 / 刪除各種對象,修改各種對象的屬性等。

  實際上, MQ 為我們提供了多種系統管理的手段,其中包括:

利用 MQ 的圖形管理界面進行操作、監控和管理: MQ 資源管理器為用戶提供了良好的管理界面,從而方便用戶對中間件系統的配置和管理工作,通過 MQ 資源管理器,用戶可以定義、修改、刪除中間件的各種資源、對象,察看各種對象的屬性,監控各種對象的運行狀態;
利用 MQSC 命令,通過命令行的方式對 MQ 進行操作、監控和管理,尤其值得一提的是 MQSC 命令在各個平臺上都是相同的,在一個有若干平臺共存的系統中大大地方便和簡化了系統管理的工作。
通過特定的系統管理工具進行監控和管理, MQ 不僅自身提供了 GUI 和文本化監控工具來監測和顯示對象的狀態 , 并且能夠利用各類系統管理軟件對整個網絡運行狀況實施監控;如 Tivoli Manager for MQ 就是一個功能強大的綜合管理工具:它為控制消息和應用程序框架提供了一個集中管理平臺。它捕獲和顯示 MQ 的事件,并能發現新的隊列管理器以及相應的對象,這些對象可以通過中央控制臺進行定義和配置。除此之外,許多第三方廠家也提供有類似的管理工具。
  除了以上這三種管理手段之外, MQ 還提供了系統管理的編程接口,通過該接口用戶可以編寫應用程序從而進行自動化的實時監控及管理。 MQ 的系統管理接口有兩種,即 Programmable Command Format (可編程命令格式,簡稱 PCF )和 MQ Administration Interface ( MQ 管理接口,簡稱 MQAI )。

MQ 應用開發編程:

  MQ 的應用開發編程主要是指使用 MQI , AMI , ActiveX 編程接口來進行消息的發送和接受以及相關的應用開發的工作。

MQI 即 Message Queue Interface :

  它提供的基礎而豐富的編程接口,而且也提供了最全面的操作組。。它的使用比較廣泛,支持大部分平臺和程序語言。

  比如:操作系統支持 AS/400 、 SunOS 、 AIX 、 Windows 等,編程語言支持 C 、 C++ 、 VB 、 PL/I 、 COBOL 、 RPG 、 Delphi 等。

  MQI 可以用來處理:

連接和斷開連接一個隊列管理器
打開和關閉隊列對象
發送、瀏覽和獲得消息
查詢和設置對象屬性
事務處理管理
消息分組

AMI 即 Application Message Interface :

  其可向程序員提供一種可以用于處理隊列管理器對象非常簡單的接口。利用 AMI ,程序員不必深入了解所有 MQI 調用,他們只要專注于應用程序的商業邏輯即可。這就意味著在編程時出現的錯誤更少,具有更高的處理業務及技術改變的靈活性。 AMI 減少了編寫新應用程序所需的代碼數量。

  可采用以下方式發送和接收消息 AMI :

發送 - 遺忘,不需要回復
分配表,將消息發送到多個目的地
請求 / 回復,發送消息的應用程序需要請求消息的回復
發布 / 預訂,由代理管理消息的分配

2、 MQ Delphi 開發

  由于網上關于 MQ 的開發資料比較少,在最近的一個項目中,有人需要用 MQ 來做開發,由于多 MQ 的編程不是很了解,所以不知道 Delphi 和 MQ 之間是如何關聯的。

  在 MQ 的編程模式中,目前我查證的資料中,只有 MQI 是支持 Delphi 開發的,另外由于 Delphi 的第三方組件也比較多,美國有一家公司提供了一個 Delphi for MQ 的組件,使用起來非常簡單,可惜該組件需要收費。

  Delphi 采用了 MQI 接口,官方也提供了文檔指導

http://www-1.ibm.com/support/docview.wss uid=swg24007060 ,文檔說明了 Delphi MQI 的 API 接口和 C 的類似,官方的編程 MQI 編程指導手冊對于 Delphi 同樣也很適用。在 C 語言中使用了指針并且使用了另外一種定義字符串長度的方式,就是在結尾處用 #0 做標記;在 Pascal 中, @ 操作符被用來傳遞指針的值。

3、 實例

MQI 的編程用的最多的主要是 13 個常見函數的調用:

MQCONN

MQCONNX

MQDISC

MQOPEN

MQCLOSE

MQPUT1

MQPUT

MQGET

MQINQ

MQSET

MQBEGIN

MQCMIT

MQBACK

MQCONN 演示

  今天展示的一個實例就是演示成功的打開對隊列管理器進行連接,并學習一些相關的概念。

系統環境: Win2000 Pro + SP4, MQ5.3,Delphi7

Delphi中需要創建一個窗體,一個Memo,一個Button

 

procedure TForm1.btnCoonClick(Sender: TObject);

var

Hconn : MQHCONN; //連接句柄

CompCode, Reason : MQLONG; //完成代碼,原因代碼

QMgrName : string; //隊列管理器的名字,這里沒有用MQ的自定義類型變量

begin

QMgrName := 'DMQ';//
MQCONN ( PChar(QMgrName),

// pchar相當于C里面的char *,以#0結尾,但在使用中不必為它分配內存

HConn,

Compcode,

Reason);


{CompCode有四種狀態:
MQCC_OK = 0;
MQCC_WARNING = 1;
MQCC_FAILED = 2;
MQCC_UNKNOWN = -1;
}
if CompCode = MQCC_FAILED then

begin

Memo1.Lines.Add('連接失敗');

Memo1.Lines.Add('連接的隊列管理器的名字是:'+QMgrname);

Memo1.Lines.Add(IntToStr(Reason));

end;

if CompCode = MQCC_WARNING then

begin

Memo1.Lines.Add('警告');

end;

if CompCode = MQCC_OK then

Memo1.Lines.Add('連接成功');

end;


  看看,其實很簡單吧?下次我們在研究其他的函數,來進行MQ的消息發送和獲得的演示。

延伸閱讀

文章來源于領測軟件測試網 http://www.anti-gravitydesign.com/

TAG: WebSphere websphere Websphere


關于領測軟件測試網 | 領測軟件測試網合作伙伴 | 廣告服務 | 投稿指南 | 聯系我們 | 網站地圖 | 友情鏈接
版權所有(C) 2003-2010 TestAge(領測軟件測試網)|領測國際科技(北京)有限公司|軟件測試工程師培訓網 All Rights Reserved
北京市海淀區中關村南大街9號北京理工科技大廈1402室 京ICP備10010545號-5
技術支持和業務聯系:info@testage.com.cn 電話:010-51297073

軟件測試 | 領測國際ISTQBISTQB官網TMMiTMMi認證國際軟件測試工程師認證領測軟件測試網

国产97人人超碰caoprom_尤物国产在线一区手机播放_精品国产一区二区三_色天使久久综合给合久久97