1.關於websphere MQ的常用名詞(針對Websphere MQ7.5版本) 隊列管理器:為應用程式提供消息傳遞服務的程式。使用消息隊列介面(MQI)的應用程式可以將消息放置到隊列並可從隊列中獲得消息,隊列管理器確保消息可以發送至正確的隊列或傳遞至另一個隊列管理器。 本地隊列:隊列管理器接收 ...
1.關於websphere MQ的常用名詞(針對Websphere MQ7.5版本)
隊列管理器:為應用程式提供消息傳遞服務的程式。使用消息隊列介面(MQI)的應用程式可以將消息放置到隊列並可從隊列中獲得消息,隊列管理器確保消息可以發送至正確的隊列或傳遞至另一個隊列管理器。
本地隊列:隊列管理器接收消息的位置。
傳輸隊列:特殊的本地隊列,當隊列管理器將消息發送至遠程隊列管理器上的隊列時,傳輸隊列在本地存儲此消息,直到遠程隊列管理器上的隊列可用。創建傳輸隊列,只需創建一個本地隊列將其用法屬性改為“傳輸”。
遠程隊列定義:屬於另一個隊列管理器的隊列的本地隊列管理器上的定義。要將消息發送至遠程隊列管理器上的隊列,發送方隊列管理器必須具有目標隊列的遠程定義。
別名隊列:不是隊列,是現有隊列的附加定義。比如:當應用程式的隊列名與隊列管理器的隊列名不一致。不能更改的前提下,可以創建別名隊列指向需要的隊列。
模型隊列:如果想要隊列管理器根據需要動態創建隊列的模板,這樣當應用程式嘗試將消息放置到模型隊列時,隊列管理器將動態地創建與模型隊列同名的本地隊列。
發送方通道:隊列管理器用來將消息發送至其他隊列管理器的消息通道。要使用發送方通道來發送消息,還必須在另一隊列管理器上創建與此發送通道同名的接收方通道。
接收方通道:隊列管理器用來從其他隊列管理器接收消息的消息通道。前提是已經在另一個隊列管理器創建同名發送方通道或伺服器通道。
請求方通道:隊列管理器用來將消息發送到其他隊列管理器的消息通道。要使用請求方通道發送消息,必須在另一隊列管理器創建發送方通道(實現回調機制)或伺服器通道。
伺服器通道:隊列管理器用來將消息發送到其他隊列管理器的消息通道。要使用伺服器通道來發送消息,必須在另一隊列管理器創建與此伺服器通道同名的接收方通道。
伺服器連接通道:應用程式操作本地隊列的通道。
2.使用MQSC創建MQ
a.打開命令提示符 輸入 crtmqm QM_APPLE,其中QM_APPLE是隊列管理器名稱。
b. 輸入strmqm QM_APPLE 啟動隊列管理器
c. 輸入runmqsc QM_APPLE 啟用MQSC命令
創建本地隊列 define qlocal(Q1),其中Q1為本地隊列名。
輸入end 結束MQSC命令。
d. 將測試消息放入本地隊列。 在cmd 命令行中輸入amqsput Q1 QM_APPLE,在本地隊列中可以看到隊列深度為1.
e. 取出本地隊列的消息。在cmd 命令行中輸入amqsget Q1 QM_APPLE
f. 創建伺服器連接通道 在cmd命令行輸入runmqsc QM_APPLE ,然後輸入define channel(CLIENT.QM_APPLE) chltype(SVRCONN) trptype (TCP) mcauser('administrator'),其中的administrator是Windows登錄名(或有效的mqm用戶名)。這裡牽扯到mq的用戶組,在安裝websphere mq 時會安裝名為mqm的用戶組。輸入end結束。
g. 關於應用程式所在主機的MQ配置。
h.偵聽埠可以通過cmd命令行中輸入start listener(system.default.listener.tcp)啟動,預設埠為1414,如果占用可以使用 alert listener(system.default.listener.tcp) trptype(tcp) port(1418),其中1418為你想改變的埠號,然後再執行start listener(system.default.listener.tcp)。
下篇介紹c#客戶端收發消息