2013-03-02 31 views
1

我們有一種情況,我們已經有一個供應商通過遠程隊列向我們發送消息的工作設置。我們今天只有一個消費者從隊列中消費這些消息。具有多個使用者的遠程WebSphere MQ配置

我們想在我們這邊添加另一位消費者,以消費相同的消息。我們的目標是在不影響向我們發送消息的供應商的情況下實現這一目標(或者可能影響最小)。

在這種情況下,您可以請幫助建議如何使用新配置(使用我們這邊的分發列表)。這可以在供應商不需要做任何改變的情況下實現。

當前配置很簡單。傳輸Q已在供應商一側(在其Q MGR下)設置,並將其發送給MCA發送方 - 這反過來又被我方的MCA接收方接收,並將其放入最終目的地Q.這就是我們所在的位置希望能夠讓變化能夠被第二個消費者接受。

更新:

羅布您好,感謝答案。要在同一頁面上。這是當前的拓撲結構。

Vendor Side Producer --> Proxy QA inside Q Mgr MAGR1 --> 
Sender MCA (with a channel defined) --> (Over the Internet) --> (Receiver MCA) --> 
QA inside Q Mgr MAGR2 --> Consumer. 

您的建議是我們做..

Vendor Side Producer --> Proxy QA inside Q Mgr MAGR1 --> 
Sender MCA (with a channel defined) --> (Over the Internet) --> (Receiver MCA) --> 
NEW_TOPIC inside Q Mgr MAGR2 --> 
Two subscribers before the Two queues QA.1 and QA.2 --> to two consumers. 

你能請詳細說明什麼是Sub1的和分公司2?

只是試圖確保沒有代碼寫在我們身邊。也沒有代碼更改供應商方面。只是供應商方面的渠道需要反彈。我們在接受方面。再次感謝您的反饋。我將在週一將這個建議提交給MQ小組。

Rob非常感謝 - 非常感謝您的幫助。 最後一個問題。我可以看到,我們現在正在將原始質量檢查更改爲類型主題。 您是否認爲供應商代碼(無論是MQ代碼/ JMS代碼)沒有改變來反映這一點。

+0

請添加您使用的消息隊列系統的品牌,答案將是相當產品特定的。 – fvu 2013-03-02 01:05:37

+0

其IBM MQ。對不起,我忘了在原始問題中提到它。另外,我不確定供應商是使用JMS API還是傳統的MQ API。我們正試圖不要求供應商更改代碼或配置,以將消息傳遞到我們一方的新分發列表(除非這是最後一個選項)。謝謝你的幫助/建議。 – 2013-03-02 01:31:09

+0

我修改了問題標籤以包含websphere-mq,這應該可以提高您獲得答案的機會。我不熟悉IBM的MQ產品,因此我無法幫助您,對不起。 – fvu 2013-03-02 01:42:52

回答

1

這對於WebSphere MQ來說相當簡單,雖然不如定義網橋那麼直截了當。

爲了說明,假設目標隊列目前QA這樣......

Producer --> QA --> Consumer1 

做你想做什麼,轉換QA同名的別名,指向一個主題,然後設置了行政訂閱了兩個新端點:

(Receiver MCA) --> QA --> TopicA --> Sub1 --> QA.1 --> Consumer1 
          | 
          +------> Sub2 --> QA.2 --> Consumer2 

你需要斷開本地連接到隊列中的應用程序,或關閉任何RCVR/RQSTR/CLUSRCVR通道可能打開它。但是,一旦轉換爲主題,您可以隨意添加或刪除訂閱,而不會中斷任何內容。基於該響應

響應更新,這將是很容易做到。無需停止供應商方面的渠道,甚至不需要與供應商協調。無需在您身邊編寫代碼或更改應用程序。

runmqsc MAGR1 


STOP CHL(RCVRMCA) 
DEFINE QL(QA1) 
DEFINE QL(QA2) 
DELETE QL(QA) 
DEFINE QALIAS(QA) TARGTYPE(TOPIC) TARGET(QA.TOPIC) 
DEF TOPIC(QA.TOPIC) TOPICSTR(QA) 
DEFINE SUB(QA1) TOPICSTR(QA) DEST(QA1) 
DEFINE SUB(QA2) TOPICSTR(QA) DEST(QA2) 
START CHL(RCVRMCA) 
END 

C:\>AMQSPUT QA JMSDEMO 
Sample AMQSPUT0 start target queue is QA 
Hello world! 

Sample AMQSPUT0 end 

C:\>AMQSGET QA1 JMSDEMO 
Sample AMQSGET0 start 
message <Hello world!> 
no more messages 
Sample AMQSGET0 end 

C:\>AMQSGET QA2 JMSDEMO 
Sample AMQSGET0 start 
message <Hello world!> 
no more messages 
Sample AMQSGET0 end 

C:\ 

設置安全性比定義子和主題要先進一點,所以我猜你的隊列管理器可能需要被鎖定。請參閱Secure Messaging Scenarios With WebSphere MQ,特別是關於強化隊列管理器以保護管理訪問和B2B使用的章節。請注意,如果QMgr沒有被鎖定,任何有TCP路由的人都可以匿名管理它並在底層服務器上遠程執行代碼。

+0

非常感謝Rob。安全方面,我們已經設定好了,因爲這是生產中的一個現有設置。但是再次感謝,我會通過您發佈的鏈接。 – 2013-03-04 00:26:10