我想設置一系列測試來測試QM的新安裝。他們中的大多數將處於「遠程」設置。我希望能夠向新QM發送消息並收到回覆。有沒有什麼辦法可以在正常的配置下進行「循環」(即不使用退出)?測試遠程WebSphereMQ隊列管理器
回答
我可以想到幾種方法來做到這一點。這取決於您是否要將MQPUT和MQGET包含在遠程系統目標隊列中。
- 將目標隊列定義爲QREMOTE,再次將真實QLOCAL指向原始系統作爲原始系統上的最終目的地。
- 使用諸如SupportPac MA01(Q程序)之類的東西在回到遠程系統上真正的QLOCAL隊列時回送消息。使用-e選項可讓您將消息反饋回ReplyToQ和ReplyToQMgr字段。
我的前僱主是一家銀行,我們有很多連接清理 房屋和其他供應商。在許多這些方面,我能夠讓業務合作伙伴在他們的最後設置回送隊列。這些由我的QMgr上的QRemote組成,指向另一側的QRemote,它指向我身邊原始QMgr上的QLocal。當一個消息是PUT
到QRemote流到另一邊,在那裏登陸QRemote,然後被導回到QLocal。
如果郵件沒有恢復,我們會啓動我們的入站通道(在我們這邊定義爲RQSTR
)。如果這導致通道啓動並且消息到達,那麼我們知道另一端的通道啓動器已關閉,但至少我們可以保持通道運行直到它被修復。但是,如果這不起作用,我們知道除了通道觸發之外,他們身邊還存在一些問題。
而且,是的,這是生產。我們認爲非事務性檢測消息在生產環境中是有效的。就我們而言,這與ping或羣集控制消息相同。當然,我們有一個網絡屏幕和其他儀器來啓動它,所以這個工具的使用被控制並被記錄下來。
也有類似的方法使用QMgr混疊,這可以大大減少大型網絡中所需的環回隊列的數量。不要試圖做到這一點!當我們使用指定完全限定目標的QRemotes時,他們所能做的就是在規定的隊列上發送和接收回送消息。但是,如果QRemote在沒有RQNAME
的情況下使用,那麼它可以用於發送消息到任何在相鄰QMgr上的隊列。
比方說,你有QMA
和QMB
:
runmqsc QMA
DEFINE QLOCAL(QMB.LOOPBACK) REPLACE
DEFINE QREMOTE(QMB.LOOPBACK.RMT) +
XMITQ(QMB) +
RQMNAME(QMB) +
RNAME(QMB.QMA.LOOPBACK.RMT) +
REPLACE
END
runmqsc QMB
DEFINE QREMOTE(QMB.QMA.LOOPBACK.RMT) +
XMITQ(QMA) +
RQMNAME(QMA) +
RNAME(QMB.LOOPBACK) +
REPLACE
現在你可以去託管QMA
服務器,並做到:
echo Hello World | amqsput QMB.LOOPBACK.RMT QMA
注意環回反射器上QMB
名下有它們都是 QMgr的名字。這是因爲您可能想要從雙方建立回合,並且不能使用QMB.LOOPBACK.RMT
作爲反射器和來啓動回送。在這種情況下,對象清單大致如下:
runmqsc QMA
DEFINE QLOCAL(QMB.LOOPBACK) REPLACE
DEFINE QREMOTE(QMB.LOOPBACK.RMT) +
XMITQ(QMB) +
RQMNAME(QMB) +
RNAME(QMB.QMA.LOOPBACK.RMT) +
REPLACE
DEFINE QREMOTE(QMA.QMB.LOOPBACK.RMT) +
XMITQ(QMB) +
RQMNAME(QMB) +
RNAME(QMA.LOOPBACK) +
REPLACE
END
runmqsc QMB
DEFINE QREMOTE(QMB.QMA.LOOPBACK.RMT) +
XMITQ(QMA) +
RQMNAME(QMA) +
RNAME(QMB.LOOPBACK) +
REPLACE
DEFINE QLOCAL(QMA.LOOPBACK) REPLACE
DEFINE QREMOTE(QMA.LOOPBACK.RMT) +
XMITQ(QMA) +
RQMNAME(QMA) +
RNAME(QMA.QMB.LOOPBACK.RMT) +
REPLACE
END
注意,所有的對象理清基於遠程QMGR的名稱。有些人更喜歡像LOOPBACK.QMB.RMT
這樣的名稱,以使所有環回隊列在對象列表或備份中聚集在一起。
所有這些都是自動化的偉大目標,因爲對象的名稱都可以從QMgrs的名稱派生而來。
- 1. 如何判斷WebsphereMQ消息是否傳遞到遠程隊列?
- 2. 如何使用MQExplorer 8.0連接到遠程隊列管理器
- 3. 帶身份驗證的遠程隊列管理器連接
- 4. 多線程作業隊列管理器
- 5. 如何查看客戶端應用程序針對WebSphereMQ隊列管理器使用的JMS消息選擇器
- 6. 異步隊列管理器
- 7. 遠程SQLite管理器
- 8. IBM Websphere:隊列管理器處理
- 9. Rails隊列管理
- 10. 管理TPL隊列
- 11. 遠程管理
- 12. 在遠程測試控制器上排隊Visual Studio負載測試錯誤
- 13. 在功能測試中測試任務隊列和管線API
- 14. 的JMeter遠程測試:.RemoteJMeterEngineImpl_Stub(無安全管理器:RMI類加載器禁用)
- 15. 能夠連接到遠程隊列管理器,但不能創建
- 16. 使用測試管理器測試桌面應用程序
- 17. 將遠程調用隊列隊列到Python Twisted透視代理?
- 18. 列出隊列管理器上的所有隊列
- 19. 處理隊列和隊列的測試用例
- 20. System.Runtime.InteropServices.COMException試圖管理遠程IIS7池
- 21. 更新隊列管理器的證書
- 22. CruiseControl.NET是否有隊列管理器?
- 23. 連接時,隊列管理器JMS
- 24. 多實例隊列管理器
- 25. 保存和恢復隊列管理器
- 26. C#:管理線程等待隊列
- 27. 隊列管理和新線程
- 28. python隊列併發進程管理
- 29. MQ:2隊列管理器下的相同隊列名稱
- 30. 連接到隊列時未指定隊列管理器名稱
具有Echo選項的MA01允許攻擊者向其發送帶有*任何* ReplyTo值的消息,並且假設它作爲MQ服務啓動並作爲'mqm'運行,則將其消息放置在任何隊列中。使用普通隊列和QRemotes的方法比較好,因爲消息可以嚴格包含在定義的路由中。我在我的回答中爲這種方法提供了示例對象定義,並提供了有關命名約定和安全性的一些想法,這些想法基於它在各個商店中的實現方式。 –