IBM Websphere MQ經常使用命令及常見錯誤

MQSC: MQ Script Command  (不區分大小寫)html

註明: 下面命令行中的隊列管理器名字隊列名字分別用QmgrName, QName替代。web

下面標藍色的,都須要根據實際配置更改!服務器

 

打開MQ的對象管理,運行MQSeries命令 (打開cmd窗口,運行下面的命令)網站

  runmqsc QmgrNamespa

end 命令結束MQSC窗口。操作系統

 

經常使用的MQ命令有: define (等價於def)、display (等價於dis)、alter、set、ping.net

在MQSC窗口中,直接輸入上面的命令,會有相應提示。命令行

 

ql (等價於qlocal)、qr(等價於qremote)、chl(等價於channel)、server

 

定義語句:

1. 建立隊列管理器htm

  crtmqm [option] QmgrName

  經常使用選項:

  [-q]、[-d DefXmitQ]、[-u DeadQ]

  -q,表示建立缺省隊列管理器,一臺機器最多隻能有一個缺省隊列管理器。

  -d,表示指明隊列管理器的缺省傳輸隊列。

  -u,表示指明隊列管理器的死信隊列。

下面的REPLACE表示替換,所以下面的語句能夠重複運行;DEFPSIST(YES)表明持久化;

2. 定義本地隊列

  DEFINE QLOCAL(QName) DEFPSIST(YES) PUT(ENABLE) GET(ENABLE) REPLACE

3. 定義遠程隊列

  DEFINE QREMOTE(QName) RNAME(遠程隊列名) RQMNAME(遠程隊列管理器名) XMITQ(傳輸隊列名) DEFPSIST(YES) REPLACE

4. 定義本地傳輸隊列

  DEFINE QLOCAL(QName) USAGE(XMITQ) DEFPSIST(YES) PUT(ENABLE) GET(ENABLE) TRIGGER TRIGTYPE(EVERY) TRIGDATA(sdrChannel) INITQ(SYSTE.CHANNEL.INITQ) PROCESS(PROCESSNAME) REPLACE 

5. 定義死信隊列

  DEFINE QLOCAL(QName) DEFPSIST(YES) REPLACE

6. 定義進程

  DEFINE PROCESS(PRONAME) DESCR('STRING') APPLTYPE(WINDOWSNT) APPLICID('runmqchl -c sdr_chl -m QmgrName')

  其中APPLTYPE的值能夠是:CICS、UNIX、WINDOWS、WINDOWSNT等

7. 設定隊列管理器的死信隊列

  ALTER QMGR DEADQ(deadQName)

下面的CHLTYPE能夠是:SDR、SVR、RCVR、RQSTR、CLNTCONN、SVRCONN、CLUSSDR和CLUSRCVR。

8. 建立服務器鏈接通道

  DEFINE CHANNEL(chlName) CHLTYPE(SVRCONN) MCAUSER('MUSR_MQADMIN') TRPTYPE(TCP) REPLACE

9. 建立發送方通道

  DEFINE CHANNEL(chlName) CHLTYPE(SDR) CONNAME(127.0.0.1(1010)) XMITQ(傳輸隊列名) TRPTYPE(TCP) REPLACE

10. 建立接收方通道

  DEFINE CHANNEL(chlName) CHLTYPE(RCVR) TRPTYPE(TCP) REPLACE

11. 定義偵聽器

  DEFINE LISTENER(listenerName) TRPTYPE(TCP) CONTROL(QMGR) PORT(port) REPLACE

12. 運行偵聽器

  START LISTENER(listenerName)

 

啓動、中止、刪除語句:

1. 啓動隊列管理器

  strmqm QmgrName

2. 中止隊列管理器

  endmqm QmgrName

3. 刪除隊列管理器

  dltmqm QmgrName

4.  啓動通道

  runmqchl -c chlName -m QmgrName

  START CHANNEL(channelName)

5. 啓動偵聽

  runmqlsr -t TYPE -p PORT -m QmgrName

  START LISTENER(listenerName)

6. 中止偵聽

  runmqlsr  -m QmgrName

7. 刪除隊列

  DELETE QLOCAL (QName)

  DELETE QREMOTE (QRName)

 

查詢顯示語句:

1. 顯示隊列管理器,以及當前狀態

  dspmq

2. 顯示隊列管理器的全部屬性(也能夠指定具體某一個屬性)

  DISPLAY QMGR ALL

3. 顯示隊列的全部屬性

  DISPLAY QUEUE (QName) ALL

4. 顯示隊列的所選屬性

  DISPLAY QUEUE (QName) DESCR GET PUT

  DISPLAY QUEUE (QName) MAXDEPTH CURDEPTH

5. 顯示進程定義

  DISPLAY PROCESS(PRONAME

6. 顯示文件名

  dspmqfls

7. 顯示通道的全部屬性(也能夠指定具體某一個屬性)

  DISPLAY CHANNEL (chlName) ALL

8. 顯示該IBM MQ軟件的版本號及安裝信息

  dspmqver

 

操做及修改語句:

1. 往隊列中放消息

  amqsput QName QmgrName

  若是隊列是默認隊列管理器中的隊列,能夠不帶其隊列管理器的名字

2. 從隊列中取出消息

  amqsget QName QmgrName

  若是隊列是默認隊列管理器中的隊列,能夠不帶其隊列管理器的名字

3. 清除隊列中的全部消息

  CLEAR QLOCAL (QName)

4. 修改channel的認證信息

  SET CHAUTH(*) TYPE(BLOCKUSER) USERLIST('nobody', '*MQADMIN')

  解釋:把當前的blockuser(*MQADMIN)修改成nobody

 

參考連接:具體能夠到IBM官網看developer center

https://www.ibm.com/developerworks/cn/websphere/library/techarticles/loulijun/0402_mqsysm/mqsysm.html

MQ 7.5 官方網站資料

 


 

常見錯誤代碼

Reason Code: 2035      

  錯誤大概意思是: 此用戶沒有鏈接權限

  緣由1:server connetion channel上沒有配置MACUSER 用戶標識, 如MUSR_MQADMIN; 必定要確保MUSR_MQADMIN用戶爲mqm組的成員。

  方法1:在服務器端的服務鏈接通道定義中設置MCAUSER屬性的值爲MUSR_MQADMIN,  或者經過修改實現。

  方法2: 

  若保持MQ服務器端的通道定義的MCAUSER屬性值爲缺省值,即爲空,則可將MQ客戶端所使用的用戶添加
  到MQ服務器所在的操做系統中。
  例如,若MQ客戶端使用的用戶爲ADMIN,則在MQ服務器端添加用戶ADMIN,並保證此用戶在MQ服務器端的mqm組中,以及有執行隊列管理器上的操做所必需的權限。

Reason Code: 2059

  首先,須要肯定隊列管理器的端口,是運行的,代碼中配置的也是同樣的;還有就是檢查CCSID的值,隊列管理器和代碼中的配置是否一致。

https://www.cnblogs.com/siwei1988/p/5923038.html

http://blog.csdn.net/VincentLee_/article/details/17012761

相關文章
相關標籤/搜索