本教程演示如何設置名爲
QM_ORANGE 的隊列管理器和名爲 QM_APPLE 的隊列管理器之間的消息傳遞。您可以通過將同一計算機上的發送隊列管理器設置爲目標隊列管理器,完成本教程並驗證環境。在發送隊列管理器上創建的消息會傳遞到接收隊列管理器上名爲
Q1 的隊列(此隊列稱爲遠程隊列)。
要點: 在本教程中,您必須使用在其中創建了隊列管理器 QM_APPLE 和本地隊列 Q1 的機器。
您必須在自己的計算機上設置隊列管理器和隊列(遠程隊列定義和傳輸隊列),然後定義消息通道。最後,將測試消息放入發送隊列管理器,並從接收隊列管理器上的隊列獲取該消息。
完成本教程後,您應該基本瞭解如何使用遠程隊列定義來設置和使用 WebSphere® MQ 消息傳遞。
一:在發送機器上創建隊列管理器
過程
- 啓動 WebSphere MQ 資源管理器。
- 在“導航器”視圖中,右鍵單擊隊列管理器文件夾,然後單擊 將打開“創建隊列管理器”嚮導。
- 在隊列管理器名稱字段中,輸入 QM_ORANGE。
- 單擊下一步兩次以轉至嚮導的“輸入配置選項”部分。
- 選擇創建服務器連接通道。
- 確保選擇自動啓動隊列管理器。
- 單擊下一步以轉至嚮導的步驟 4。
- 確保選中創建配置用於 TCP/IP 的偵聽器複選框。
- 如果完成按鈕不可用,那麼在偵聽端口號字段中輸入另一個端口號。 如果當前值爲 1414,那麼嘗試輸入
1415 或 1416
- 單擊完成。
結果
WebSphere MQ 資源管理器的“
導航器”視圖中的
隊列管理器文件夾中會顯示錶示此隊列管理器的圖標,並且在您創建隊列管理器後,該隊列管理器會自動開始運行。
使用 MQSC 創建發送隊列管理器
關於此任務
在發送機器上打開命令提示符,然後按照以下步驟操作:
過程
- 通過輸入以下命令來創建名爲
QM_ORANGE 的缺省隊列管理器:
crtmqm QM_ORANGE
此時會顯示消息,告訴您已經創建了隊列和缺省 WebSphere MQ 對象。 - 通過輸入以下命令來啓動此隊列管理器:
strmqm QM_ORANGE
此時會顯示一條消息,告訴您何時啓動了該隊列管理器。
二:在發送隊列管理器上創建隊列
過程
- 在“導航器”視圖中,展開隊列管理器文件夾。
- 展開隊列管理器
QM_ORANGE。
- 右鍵單擊隊列文件夾,然後單擊。 將打開“新建遠程隊列定義”嚮導。
- 在名稱字段中,輸入
Q1。
- 單擊下一步。
- 在遠程隊列字段中,輸入
Q1
- 在遠程隊列管理器字段中,輸入
QM_APPLE
- 在傳輸隊列字段中,輸入
QM_APPLE
- 單擊完成。 您現在已經創建了遠程隊列定義。
- 單擊 QM_ORANGE 隊列管理器。
- 右鍵單擊隊列文件夾,然後單擊 將打開“新建本地隊列”嚮導。
- 在名稱字段中,輸入
QM_APPLE
- 單擊下一步。
- 在用途字段中,選擇傳輸。
- 單擊完成。 您現在已經在本地機器上創建了傳輸隊列。
結果
“內容”視圖中將會顯示新隊列
Q1 和 QM_APPLE。
如果內容視圖中未顯示這些隊列,請單擊位於內容視圖頂部的“刷新”按鈕
。
使用 MQSC 來在發送隊列管理器上創建隊列
關於此任務
在發送機器上打開命令提示符,然後按照以下步驟操作:
過程
- 通過輸入以下命令來啓動 MQSC:
runmqsc
此時會顯示一條消息,告訴您 MQSC 會話已啓動。
- 通過輸入以下命令來定義名爲
QM_APPLE 的本地隊列:
define qlocal (QM_APPLE) usage (xmitq)
此時會顯示一條消息,告訴您何時創建了該隊列。
- 通過輸入以下命令來定義遠程隊列定義:
define qremote (Q1) rname (Q1) rqmname(QM_APPLE) xmitq (QM_APPLE)
結果
您現在已經在發送隊列管理器上創建了隊列。下一個任務是創建發送隊列管理器和接收隊列管理器之間的消息通道。
三:創建消息通道
過程
- 在接收隊列管理器
QM_APPLE 上,創建通道的接收方端:
- 在“導航器”視圖中,展開先前創建的隊列管理器
QM_APPLE.
- 右鍵單擊文件夾,然後單擊。 將打開“新建接收方通道”嚮導。
- 在名稱字段中,輸入
QM_ORANGE.QM_APPLE
- 單擊完成。 您現在已經在接收機器上創建了接收方通道。
- 在發送隊列管理器
QM_ORANGE 上,創建通道的發送方端:
- 展開先前創建的隊列管理器
QM_ORANGE.
- 右鍵單擊文件夾,然後單擊。 將打開“新建發送方通道”嚮導。
- 在名稱字段中,輸入
QM_ORANGE.QM_APPLE,然後單擊下一步。
- 在連接名稱字段中,輸入接收機器的計算機名稱或 IP 地址(您應該已經在系統管理員的幫助下獲得此信息)。
如果在創建 QM_APPLE 時未使用缺省端口號 1414,那麼“連接名稱”字段條目應採用以下格式:
con-name(port)
其中,con-name 是接收機器的計算機名稱或 IP 地址,port 是在設置接收隊列管理器時使用的端口號。
- 在傳輸隊列字段中,輸入
QM_APPLE
- 單擊完成。
- 單擊通道文件夾。
- 右鍵單擊
QM_ORANGE.QM_APPLE。
- 從彈出菜單中,單擊啓動。
- 單擊確定。 您現在已經在發送機器上創建了發送方通道。
注: 您不必啓動接收方通道,因爲它已在您設置發送方通道時自動啓動(在設置發送方通道時,您指定了接收方通道的 IP 地址)。
結果
現在,您已經在接收隊列管理器 QM_APPLE 上創建了接收方通道 QM_ORANGE.QM_APPLE,並且在發送隊列管理器 QM_ORANGE 上創建了發送方通道 QM_ORANGE.QM_APPLE。此外,您還已經啓動發送方通道,從而自動啓動了接收方通道。
使用 MQSC 創建消息通道
過程
- 在接收機器上打開命令提示符,然後按照以下步驟操作:
- 通過輸入以下命令來啓動 MQSC:
runmqsc
此時會顯示一條消息,告訴您 MQSC 會話已啓動。
- 通過輸入以下命令來定義接收通道:
define channel (QM_ORANGE.QM_APPLE) chltype (RCVR) trptype (TCP)
此時會顯示一條消息,告訴您何時創建了該通道。
- 打開新的命令窗口並查看哪些端口空閒。輸入下列命令:
netstat -an
這將顯示正在運行的進程的列表。查看每個進程的端口號以瞭解端口 1414 是否正在使用中;您可以通過查看本地地址列來找到它。該信息採用 ip_address:port_being _used 格式提供。
如果端口 1414 未使用,那麼稍後在驗證時使用 1414 作爲偵聽器和發送方通道的端口號。如果它在使用中,那麼選擇未使用的備用端口;例如,如果 1415 未被另一進程使用,那麼選擇該端口。
- 驗證要求您啓動缺省的 WebSphere MQ 偵聽器。缺省情況下,該偵聽器將偵聽端口 1414。如果在步驟
c 中發現端口 1414 空閒,那麼不需要執行任何操作即可繼續執行步驟
e。如果必須使用除 1414 之外的端口,那麼修改 SYSTEM.DEFAULT.LISTENER.TCP 的定義。例如,要使用端口 1415,請在 MQSC 窗口中輸入下列命令:
alter listener(system.default.listener.tcp) trptype(tcp) port(port_number)
其中
port_number 是應該對其運行偵聽器的端口的號碼。這必須與在該過程的步驟 2b 中定義發送方通道時使用的端口號相同。 - 在 MQSC 窗口中,通過輸入以下命令,啓動缺省的 WebSphere MQ 偵聽器:
start listener(system.default.listener.tcp)
- 通過輸入以下命令來停止 MQSC:
end
將顯示一些消息,然後會顯示命令提示符。
- 在發送機器上打開命令提示符,然後按照以下步驟操作:
- 通過輸入以下命令來啓動 MQSC:
runmqsc
此時會顯示一條消息,告訴您 MQSC 會話已啓動。
- 通過輸入以下命令來定義發送方通道:
define channel(QM_ORANGE.QM_APPLE) chltype(sdr) conname('con-name(port)') xmitq(QM_APPLE) trptype(tcp)
值
con-name 是接收方工作站的 TCP/IP 地址。值 port 是接收方機器上對其運行偵聽器的端口,缺省值是 1414。
- 通過輸入以下命令來啓動通道:
start channel (QM_ORANGE.QM_APPLE)
- 通過輸入以下命令來停止 MQSC:
end
將顯示一些消息,然後會顯示命令提示符。
結果
您現在已經創建了將消息從發送隊列管理器 QM_ORANGE 發送到接收隊列管理器 QM_APPLE 上的隊列 Q1 所需的全部 WebSphere MQ 對象。下一個任務是發送測試消息。
四:將測試消息放入隊列
您只能使用 MQSC 命令行界面來執行此任務:將測試消息放入隊列
將測試消息放入隊列
關於此任務
在發送機器(託管隊列管理器
QM_ORANGE 的機器)上執行此任務。
使用
amqsput 樣本程序來將消息放入您創建的隊列。
在 Windows 上,缺省情況下樣本程序隨 WebSphere® MQ 服務器或客戶機一起安裝。在 Linux 上,需要安裝樣本程序 RPM。
打開命令提示符,然後按照以下步驟操作:
過程
- 啓動
amqsput 樣本程序,如下所示:
- 在 Linux 上,更改到
/opt/mqm/samp/bin 目錄,然後輸入命令:
./amqsput Q1 QM_ORANGE
- 在 Windows 上,輸入命令:
amqsput Q1 QM_ORANGE
此時會顯示以下消息:
Sample amqsput0 start
target queue is Q1
- 在一行或多行上輸入某些消息文本,然後按
Enter 鍵兩次。 此時會顯示以下消息:
Sample amqsput0 end
結果:您現在已經創建了測試消息並將其放入遠程隊列。下一個任務是驗證是否已接收到測試消息。
五:驗證是否已發送測試消息
使用 WebSphere MQ 資源管理器來驗證是否已發送測試消息
關於此任務
在接收機器(主管隊列管理器
QM_APPLE 的機器)上執行此任務。
在接收隊列管理器上:
過程
- 在“導航器”視圖中,展開隊列管理器
QM_APPLE。
- 單擊隊列文件夾。
- 在“內容”視圖中,右鍵單擊隊列
Q1,然後單擊瀏覽消息。 將打開消息瀏覽器,顯示當前
Q1 上的消息列表。
- 雙擊列表中的最後一條消息以查看其屬性對話框。
結果
在屬性對話框的
數據頁上,
消息數據字段以人類可讀的格式顯示了消息的內容。
使用 MQSC 驗證是否已發送測試消息
關於此任務
您在接收機器(主管隊列管理器 QM_APPLE 的機器)上執行此任務。使用
amqsget 樣本程序來從隊列中取回消息。
打開命令提示符,然後按照以下步驟操作:
過程
啓動 amqsget 樣本程序,如下所示:
- 在 Linux 上,更改爲 MQ_INSTALLATION_PATH/samp/bin 目錄,其中
MQ_INSTALLATION_PATH 表示 WebSphere MQ 所安裝在的高級目錄。輸入以下命令:
./amqsget Q1
- 在 Windows 上,輸入命令:
amqsget Q1
結果
此時樣本程序會啓動,並且您的消息會與此隊列上的任何其他消息一起顯示。在短暫停留後,樣本程序結束,並再次顯示命令提示符。
您現在已經完成了本教程。