當前位置:首頁 » 存儲配置 » ibmmq怎麼配置

ibmmq怎麼配置

發布時間: 2022-11-30 07:32:07

A. Spring Boot 與 IBM WebSphere MQ集成配置

[TOC]

Spring Boot作為簡化Spring開發的框架,已經為我們集成了ActiveMQ和RabbitMQ。只需在Spring Boot配置幾個MQ的連接方式即可開箱即用。大大簡化了開發配置過程。
Spring的javaConfig相比傳統的XML的配置方式使得配置更加的可靠和方便。
本文將會說明如何用JavaConfig的方式將Spring與IBM WebSphere MQ(以下簡稱IBM MQ)集成配置,也可以作為其他MQ的配置參考。

17年後官方maven倉庫以有相關依賴

IBM MQ相關的連接依賴包為 com.ibm.mq.allclient.jar ,該包不存在於公共Maven倉庫,所以我們需要找到該依賴包並手動安裝到我們本機的Maven倉庫中。
該依賴包位於 [IBM MQ 安裝路徑]javalib 下,Windows下的默認安裝路徑為 C:Program FilesIBMWebSphere MQ ,Linux下的默認安裝路徑為 /opt/mqm/ 。可以將該包復制到開發機上。
通過以下命令安裝該包到本地倉庫

在Idea中可以按四次Shift鍵調出全局搜索框,鍵入Execute Maven Goal,等待搜索結果後按回車,即可執行Maven命令, 在此執行命令時不需要鍵入命令開頭的 mvn

編輯項目pom.xml文件,添加以下三個依賴,分別為

配置Spring Boot配置文件,application.yml,此處用的是yaml格式配置文件,application.properties的配置方法可以參考Spring Boot的說明。

建立 JmsConfig 類,添加註解 @Configuration ,並將以上屬性注入到此類。

在JmsConfig類添加以下方法。

不配置該類則每次與MQ交互都需要重新創建連接,大幅降低速度。

不使用事務可以跳過該步驟。如需使用事務,可添加註解 @EnableTransactionManagement 到程序入口類中,事務的具體用法可參考Spring Trasaction。

JmsOperations為JmsTemplate的實現介面。

重要:不設置setReceiveTimeout時,當隊列為空,從隊列中取出消息的方法將會一直掛起直到隊列內有消息

可直接使用jmsOperations的convertAndSend(String, Object)方法,第一個參數為隊列名稱,第二個參數為需發送的對象。

重要:發送的對象需實現序列化介面

可直接使用jmsOperations的receiveAndConvert(String)方法,第一個參數為隊列名稱。

如需使用事務,只需在方法添加註解 @Transactional(value = "jmsTransactionManager") 即可。

有問題請留言

B. Redhat7安裝IbmMq

機器建議使用紅帽7版本,我用的是Redhat7.4版本,並配置Ip為192.168.53.185;將IBM_MQ_9.1_LINUX_X86-64.tar.gz上傳至/root目錄下

由於IBM MQ 7.1以後啟用了增強的通道安全策略默認禁止mqm用戶進行登錄,需要設置一下.

說明:在添加地址訪問認證許可權時,可以指定寬泛的地址,如192.168.53.0,則代表一個子網

C. ibm組別添加成員

1、啟動管理控制台。
2、瀏覽至要將IBMMQ伺服器添加至的匯流排的匯流排成員列表。
3、單擊服務集成->匯流排->bus_name->[拓撲]匯流排成員。
4、單擊添加。將顯示「添加新的匯流排成員」向導。選擇要添加至匯流排的IBMMQ伺服器:
5、選擇IBMMQ伺服器。
6、在下拉列表中,選擇要添加的伺服器。
7、單擊下一步。
8、指定虛擬隊列管理器名稱。
9、將消息發送至IBMMQ時,IBMMQ網關隊列管理器會將匯流排視為遠程隊列管理器。虛擬隊列管理器名稱將作為此遠程隊列管理器的名稱傳遞至IBMMQ。預設值是匯流排的名稱。如果此值對於IBMMQ隊列管理器並非有效名稱,或者另一現有IBMMQ隊列管理器具有相同名稱,那麼應將預設值替換為另一個值,該值是對IBMMQ隊列管理器有效的唯一名稱。該名稱必須符合以下條件才有效:
10、它必須包含1到48個字元。
11、它必須遵循IBMMQ隊列命名規則(請參閱IBMMQ信息中心中的「IBMMQ對象的命名規則」主題)。
12、要覆蓋伺服器連接設置,請選擇覆蓋IBMMQ伺服器連接屬性復選框。選擇此選項時,伺服器的連接屬性變為可用,所以您可將它們更改為特定於此匯流排成員的設置。有關這些連接屬性的更多信息,請參閱IBMMQ伺服器匯流排成員[設置]。
13、如果已更改伺服器連接設置,可單擊測試連接來測試與相關IBMMQ網路的連接。
14、單擊下一步。
15、單擊完成以進行確認。
16、將更改保存至主配置。

D. 通過命令行配置IBM MQ

amqsget 應用讀完消息30秒後會結束

參考資料: https://www.ibm.com/support/knowledgecenter/zh/SSFKSJ_8.0.0/com.ibm.mq.pro.doc/q121700_.htm

E. 如何正確設置IBM WebSphere MQ 實現群發消息

1.現在的問題是建立了共享隊列INPUTQ 後,在QMGRI裡面壓根看不到共享隊列。。
誰能告訴我為什麼么?

大哥你怎麼看的?QL CLUSTER屬性設置對了嗎?
DEF QL(YOURQNAME) CLUSTER(REPOS_NAME)
你看的是QCLUSTER嗎?
DIS QC(*)

2.往一個隊列管理器里的隊列里發消息,
其他的所有對立管理器的本地隊列都能收到消息
太簡單了,注意RFHUTIL裡面有個BIND屬性,不要設置成OPEN,必須是NOT_FIXED;或者多次使用amqsputc多次打開,不要一次拚命放消息,都可以看到分發效果,默認負載均衡的演算法是ROUND_ROBIN

3.好了,上面的問題解決了。。
不過現在對WebSphere MQ的功能產生了懷疑,

我真想捧腹大笑

4.應用程序只能主動去詢問MQ,指定的隊列中有消息否。要是這樣的話,那不是要輪詢指定的隊列?難道不能讓MQ將消息直接推送到應用程序么?

去看看TRIGGER, MDB有關的資料,我不想費口舌了。當你學會基礎之前STOP MAKING JUDGEMENTS.

F. ibmmq無法更新注冊表值

原因如下:
1、如果配置了MQ以使運行該服務的用戶不在本地mqm組中,則可能會導致此問題,盡管那不是一件好事,所以可能要修復它,要解決此問題,您將顯示一個提升許可權的命令提示符並發出。
2、在Windows更新後,該更新重置了MQ安裝先前已更新的鍵上的注冊表許可權,從而阻止了隊列管理器啟動時對其進行更新。

熱點內容
晶元如何編程 發布:2023-02-02 05:29:05 瀏覽:314
android密碼隱藏顯示 發布:2023-02-02 05:28:23 瀏覽:236
分布式資料庫mysql 發布:2023-02-02 05:26:28 瀏覽:290
在腳本中定期更改文件名 發布:2023-02-02 05:25:36 瀏覽:122
大家怎麼看待安卓 發布:2023-02-02 05:24:14 瀏覽:786
安卓快捷應用在哪裡打開 發布:2023-02-02 05:16:49 瀏覽:452
F150XLT版是哪個配置 發布:2023-02-02 05:09:57 瀏覽:366
穿越火線和生死狙擊哪個配置更高 發布:2023-02-02 05:09:53 瀏覽:239
低配置手機如何玩吃雞流暢 發布:2023-02-02 05:09:49 瀏覽:135
python27中文api 發布:2023-02-02 05:05:25 瀏覽:733