1. 程式人生 > >IBM WebSphere MQ 在AIX環境服務端和模擬客戶端配置步驟

IBM WebSphere MQ 在AIX環境服務端和模擬客戶端配置步驟

                           IBM WebSphere MQ 在AIX環境配置服務端和模擬客戶端的步驟

首先,配置AIX的本地服務端佇列管理器,建立接收佇列、接收通道、傳送佇列、遠端傳送佇列、遠端傳送通道,建立監聽等。

其次,在本地配製另一佇列管理器,模擬WINDOWS客戶端或者遠端MQ伺服器,與本地服務端佇列管理器進行通訊。配置步驟基本同本地的服務端相同,對應好兩邊的通道,佇列,監聽埠即可。

這樣就省了WIiNDOWS客戶端或者遠端MQ伺服器等另外一臺機器的安裝。

具體步驟如下:

 *********************************
------一、   AIX的本地服務端配置

*********
Aix下建立mq佇列的步驟說明
1. 安裝mqm程式包
2. 建立佇列管理器:QMECDS,注意/usr/mqm/log/是日誌存放路徑,要求mqm使用者有寫許可權。
#crtmqm -ld /usr/mqm/log/ -lc -lp 10 -ls 5 QMECDS

3. 啟動佇列管理器
#strmqm QMECDS

4. 進行佇列管理器命令窗
#runmqsc QMECDS

5. 建立一個接收佇列(本地):ECDS_RCVL
def ql(ECDS_RCVL) maxdepth(10000) defpsist(yes) replace

6. 建立一個接收通道: ECDS_CHLR   應對對方的遠端傳送通道
def chl(TEST_CHLR) chltype(rcvr) trptype(tcp) replace

7. 建立一個傳送佇列(本地): ECDS_SNDL
def ql(ECDS_SNDL) usage(XMITQ) defpsist(YES) maxdepth(10000) trigger trigtype(FIRST) trigdata(ECDS_CHLS) initq(SYSTEM.CHANNEL.INITQ) replace

8. 建立一個傳送佇列(遠端): ECDS_SNDR,注意TEST_RCVL,QMTEST是對方模擬器的本地接收佇列,與佇列管理器名。
def qr(ECDS_SNDR) rname(TEST_RCVL) rqmname(QMTEST) xmitq ( ECDS_SNDL ) defpsist(yes) replace

9. 建立一個傳送通道: ECDS_CHLS
def chl(ECDS_CHLS) chltype(SDR) conname('130.1.9.126(9000)') xmitq(ECDS_SNDL) trptype(tcp) shortrty(10000) shorttmr(30) longtmr(300) longrty(999999999) batchsz(50) replace

10. 建立一個偵聽器
def listener(ECDS_LISTEN) TRPTYPE(TCP) PORT(9001) CONTROL(MANUAL) BACKLOG(0)
start listener(ECDS_LISTEN)

11. 建立一個死信佇列
def ql(DEADQ) defpsist(yes) maxdepth(20000) replace
alter qmgr deadq(DEADQ)

12. 建立一個錯誤佇列
def ql(ERRMSG) defpsist(yes) maxdepth(20000) replace

13. 修改ccsid為1386,否則無法將傳輸特殊漢字如:弢
alter qmgr force ccsid(1386)

14. 退出mq命令窗
end
15. 重啟mqm
endmqm QMECDS
strmqm QMECDS
16. 

*********************
**  二、 模擬客戶端配置
*********************
2. 建立佇列管理器:QMtest,注意/usr/mqm/log/是日誌存放路徑,要求mqm使用者有寫許可權。
#crtmqm -ld /usr/mqm/log/ -lc -lp 10 -ls 5 QMTEST

3. 啟動佇列管理器
#strmqm QMTEST

4. 進行佇列管理器命令窗
#runmqsc QMTEST

5. 建立一個接收佇列(本地):TEST_RCVL
def ql(TEST_RCVL) maxdepth(10000) defpsist(yes) replace

6. 建立一個接收通道: ECDS_CHLS      應對對方的遠端通道
def chl(ECDS_CHLS) chltype(rcvr) trptype(tcp) replace

7. 建立一個傳送佇列(本地): TEST_SNDL
def ql(TEST_SNDL) usage(XMITQ) defpsist(YES) maxdepth(10000) trigger trigtype(FIRST) trigdata(TEST_CHLR) initq(SYSTEM.CHANNEL.INITQ) replace

8. 建立一個傳送佇列(遠端): TEST_SNDR,注意ECDS_RCVL,QMECDS是對方模擬器的本地接收佇列,與佇列管理器名。
def qr(TEST_SNDR) rname(ECDS_RCVL) rqmname(QMECDS) xmitq ( TEST_SNDL ) defpsist(yes) replace

9. 建立一個傳送通道:ECDS_CHLR 對應對方接收通道。
def chl(TEST_CHLR) chltype(SDR) conname('130.1.9.126(9001)') xmitq(TEST_SNDL) trptype(tcp) shortrty(10000) shorttmr(30) longtmr(300) longrty(999999999) batchsz(50) replace

10. 建立一個偵聽器
def listener(TEST_LISTEN) TRPTYPE(TCP) PORT(9000) CONTROL(MANUAL) BACKLOG(0)
start listener(TEST_LISTEN)

11. 建立一個死信佇列
def ql(TEST_DEADQ) defpsist(yes) maxdepth(20000) replace
alter qmgr deadq(TEST_DEADQ)

12. 建立一個錯誤佇列
def ql(TEST_ERRMSG) defpsist(yes) maxdepth(20000) replace

13. 修改ccsid為1386,否則無法將傳輸特殊漢字如:弢
alter qmgr force ccsid(1386)

14. 退出mq命令窗
end

15. 重啟mqm
endmqm QMTEST
strmqm QMTEST
***************************
******三、   AIX的本地服務端配置步驟執行結果
 $ pwd
/usr/mqm/bin
$ crtmqm -ld /usr/mqm/log/ -lc -lp 10 -ls 5 QMECDS
WebSphere MQ queue manager created.
Creating or replacing default objects for QMECDS.
Default objects statistics : 40 created. 0 replaced. 0 failed.
Completing setup.
Setup completed.
$ strmqm QMECDS
WebSphere MQ queue manager 'QMECDS' starting.
5 log records accessed on queue manager 'QMECDS' during the log replay phase.
Log replay for queue manager 'QMECDS' complete.
Transaction manager state recovered for queue manager 'QMECDS'.
WebSphere MQ queue manager 'QMECDS' started.
$ runmqsc QMECDS
5724-H72 (C) Copyright IBM Corp. 1994, 2005.  ALL RIGHTS RESERVED.
Starting MQSC for queue manager QMECDS.


def ql(ECDS_RCVL) maxdepth(10000) defpsist(yes) replace
     1 : def ql(ECDS_RCVL) maxdepth(10000) defpsist(yes) replace
AMQ8006: WebSphere MQ queue created.
def chl(TEST_CHLR) chltype(rcvr) trptype(tcp) replace
     2 : def chl(TEST_CHLR) chltype(rcvr) trptype(tcp) replace
AMQ8014: WebSphere MQ channel created.
def ql(ECDS_SNDL) usage(XMITQ) defpsist(YES) maxdepth(10000) trigger trigtype(FIRST) trigdata(ECDS_CHLS) initq(SYSTEM.CHANNEL.INITQ) replace
     3 : def ql(ECDS_SNDL) usage(XMITQ) defpsist(YES) maxdepth(10000) trigger trigtype(FIRST) trigdata(ECDS_CHLS) initq(SYSTEM.CHANNEL.INITQ) replace
AMQ8006: WebSphere MQ queue created.
def qr(ECDS_SNDR) rname(TEST_RCVL) rqmname(QMTEST) xmitq ( ECDS_SNDL ) defpsist(yes) replace
     4 : def qr(ECDS_SNDR) rname(TEST_RCVL) rqmname(QMTEST) xmitq ( ECDS_SNDL ) defpsist(yes) replace
AMQ8006: WebSphere MQ queue created.
def chl(ECDS_CHLS) chltype(SDR) conname('130.1.9.126(9000)') xmitq(ECDS_SNDL) trptype(tcp) shortrty(10000) shorttmr(30) longtmr(300) longrty(999999999) batchsz(50) replace
     5 : def chl(ECDS_CHLS) chltype(SDR) conname('130.1.9.126(9000)') xmitq(ECDS_SNDL) trptype(tcp) shortrty(10000) shorttmr(30) longtmr(300) longrty(999999999) batchsz(50) replace
AMQ8014: WebSphere MQ channel created.
def listener(ECDS_LISTEN) TRPTYPE(TCP) PORT(9001) CONTROL(MANUAL) BACKLOG(0)
     6 : def listener(ECDS_LISTEN) TRPTYPE(TCP) PORT(9001) CONTROL(MANUAL) BACKLOG(0)
AMQ8626: WebSphere MQ listener created.
start listener(ECDS_LISTEN)
     7 : start listener(ECDS_LISTEN)
AMQ8021: Request to start WebSphere MQ Listener accepted.
def ql(DEADQ) defpsist(yes) maxdepth(20000) replace
     8 : def ql(DEADQ) defpsist(yes) maxdepth(20000) replace
AMQ8006: WebSphere MQ queue created.
alter qmgr deadq(DEADQ)
     9 : alter qmgr deadq(DEADQ)
AMQ8005: WebSphere MQ queue manager changed.
def ql(ERRMSG) defpsist(yes) maxdepth(20000) replace
    10 : def ql(ERRMSG) defpsist(yes) maxdepth(20000) replace
AMQ8006: WebSphere MQ queue created.
alter qmgr force ccsid(1386)
    11 : alter qmgr force ccsid(1386)
AMQ8005: WebSphere MQ queue manager changed.
end
    12 : end
11 MQSC commands read.
No commands have a syntax error.
All valid MQSC commands were processed.
$ endmqm QMECDS
Quiesce request accepted. The queue manager will stop when all outstanding work
is complete.
$ strmqm QMECDS
WebSphere MQ queue manager 'QMECDS' starting.
5 log records accessed on queue manager 'QMECDS' during the log replay phase.
Log replay for queue manager 'QMECDS' complete.
Transaction manager state recovered for queue manager 'QMECDS'.
WebSphere MQ queue manager 'QMECDS' started.
$
*******************************************************
****** 四、 模擬客戶端配置步驟執行結果

$ crtmqm -ld /usr/mqm/log/ -lc -lp 10 -ls 5 QMTEST
WebSphere MQ queue manager created.
Creating or replacing default objects for QMTEST.
Default objects statistics : 40 created. 0 replaced. 0 failed.
Completing setup.
Setup completed.
$ strmqm QMTEST
WebSphere MQ queue manager 'QMTEST' starting.
5 log records accessed on queue manager 'QMTEST' during the log replay phase.
Log replay for queue manager 'QMTEST' complete.
Transaction manager state recovered for queue manager 'QMTEST'.
WebSphere MQ queue manager 'QMTEST' started.

$ runmqsc QMTEST
5724-H72 (C) Copyright IBM Corp. 1994, 2005.  ALL RIGHTS RESERVED.
Starting MQSC for queue manager QMTEST.


def ql(TEST_RCVL) maxdepth(10000) defpsist(yes) replace
     1 : def ql(TEST_RCVL) maxdepth(10000) defpsist(yes) replace
AMQ8006: WebSphere MQ queue created.

       :
def chl(ECDS_CHLS) chltype(rcvr) trptype(tcp) replace
     2 : def chl(ECDS_CHLS) chltype(rcvr) trptype(tcp) replace
AMQ8014: WebSphere MQ channel created.

       :
def ql(TEST_SNDL) usage(XMITQ) defpsist(YES) maxdepth(10000) trigger trigtype(FIRST) trigdata(TEST_CHLR) initq(SYSTEM.CHANNEL.INITQ) replace
     3 : def ql(TEST_SNDL) usage(XMITQ) defpsist(YES) maxdepth(10000) trigger trigtype(FIRST) trigdata(TEST_CHLR) initq(SYSTEM.CHANNEL.INITQ) replace
AMQ8006: WebSphere MQ queue created.

       :
def qr(TEST_SNDR) rname(ECDS_RCVL) rqmname(QMECDS) xmitq ( TEST_SNDL ) defpsist(yes) replace
     4 : def qr(TEST_SNDR) rname(ECDS_RCVL) rqmname(QMECDS) xmitq ( TEST_SNDL ) defpsist(yes) replace
AMQ8006: WebSphere MQ queue created.

       :
def chl(TEST_CHLR) chltype(SDR) conname('130.1.9.126(9001)') xmitq(TEST_SNDL) trptype(tcp) shortrty(10000) shorttmr(30) longtmr(300) longrty(999999999) batchsz(50) replace
     5 : def chl(TEST_CHLR) chltype(SDR) conname('130.1.9.126(9001)') xmitq(TEST_SNDL) trptype(tcp) shortrty(10000) shorttmr(30) longtmr(300) longrty(999999999) batchsz(50) replace
AMQ8014: WebSphere MQ channel created.

       :
def listener(TEST_LISTEN) TRPTYPE(TCP) PORT(9000) CONTROL(MANUAL) BACKLOG(0)
     6 : def listener(TEST_LISTEN) TRPTYPE(TCP) PORT(9000) CONTROL(MANUAL) BACKLOG(0)
AMQ8626: WebSphere MQ listener created.

       :
start listener(TEST_LISTEN)
     7 : start listener(TEST_LISTEN)
AMQ8021: Request to start WebSphere MQ Listener accepted.

       :
def ql(TEST_DEADQ) defpsist(yes) maxdepth(20000) replace
     8 : def ql(TEST_DEADQ) defpsist(yes) maxdepth(20000) replace
AMQ8006: WebSphere MQ queue created.

       :
alter qmgr deadq(TEST_DEADQ)
     9 : alter qmgr deadq(TEST_DEADQ)
AMQ8005: WebSphere MQ queue manager changed.

       :
def ql(TEST_ERRMSG) defpsist(yes) maxdepth(20000) replace
    10 : def ql(TEST_ERRMSG) defpsist(yes) maxdepth(20000) replace
AMQ8006: WebSphere MQ queue created.

       :
alter qmgr force ccsid(1386)
    11 : alter qmgr force ccsid(1386)
AMQ8005: WebSphere MQ queue manager changed.

       :
end
    12 : end
11 MQSC commands read.
No commands have a syntax error.
All valid MQSC commands were processed

$ endmqm QMTEST
Quiesce request accepted. The queue manager will stop when all outstanding work
is complete.

$ strmqm QMTEST
WebSphere MQ queue manager 'QMTEST' starting.
5 log records accessed on queue manager 'QMTEST' during the log replay phase.
Log replay for queue manager 'QMTEST' complete.
Transaction manager state recovered for queue manager 'QMTEST'.
WebSphere MQ queue manager 'QMTEST' started.
$
*******************************************************
**************************************
------ 五、測試    2010年09月08   測試完成 ------
A、aix伺服器端
$ ./amqsput ECDS_SNDR QMECDS
Sample AMQSPUT0 start
target queue is ECDS_SNDR
qweasd123456
86970

Sample AMQSPUT0 end

$ ./amqsget ECDS_RCVL QMECDS
Sample AMQSGET0 start
message <123456 >
message <OK>

no more messages
Sample AMQSGET0 end

B、模擬客戶端
$ ./amqsget TEST_RCVL QMTEST
Sample AMQSGET0 start
message <qweasd123456>
message <86970>

no more messages
Sample AMQSGET0 end

$ ./amqsput TEST_SNDR QMTEST
Sample AMQSPUT0 start
target queue is TEST_SNDR
123456
OK

Sample AMQSPUT0 end
$

**************************************

**** 六、其他相關命令


    刪除佇列管理器

    dltmqm QmgrName

    啟動佇列管理器

    strmqm QmgrName

    如果是啟動預設的佇列管理器,可以不帶其名字

    停止佇列管理器

    endmqm QmgrName 受控停止

    endmqm – i QmgrName 立即停止

    endmqm – p QmgrName 強制停止

    顯示佇列管理器

    dspmq –m QmgrName

*******************************************************

 轉貼請註明出處。