天天看點

WebSphere MQ 學習筆記(2) - Administrator

管理“隊列管理器”

1. Control commands

1)Queue manager commands

每個結點都應改有一個預設隊列管理器

crtmqm -q MQM_NAME

每個隊列管理器都應改有一個死信隊列,以防止資訊不能傳遞時阻塞通道和傳輸隊列。

crtmqm -u dead-letter_queue MQM_NAME

每個隊列管理器都應改有一個傳輸隊列

crtmqm -d 用于指定傳輸隊列,但是并沒有建立,仍需要顯式建立。

建立多個隊列管理器時,要注意記憶體沖突

These shared memory problems do not occur if the different logical volumes

are created such that they have different minor device numbers.

EXAMPLE:

crtmqm -q -d MY.DEFAULT.XMIT.QUEUE -u SYSTEM.DEAD.LETTER.QUEUE SATURN.QUEUE.MANAGER

NOTE: 傳輸隊列沒有真正建立

備份隊列管理器的配置檔案

amqmdain

UNIX下面更改檔案mqs.ini

關閉隊列管理器

endmqm -c MQM_NAME (同 endmqm MQM_NAME)

endmqm -w MQM_NAME (等待所有的應用都停止了,隊列管理器才停止)

endmqm -i MQM_NAME (立即關閉隊列管理器)

endmqm -p MQM_NAME (強制關閉隊列管理器,慎用)

删除隊列管理器

dltmqm MQM_NAME

2)Channel commands

3)Utility commands

2. 使用MQSC

使用 <, > 對輸入輸出重定向

Example:c:>runmqsc < define.mq

1) 定義

DEFINE QLOCAL (ORANGE.LOCAL.QUEUE);

當在一行裡面,指令過長時,

使用(-)表示指令從下一行的開始處連結

使用(+)表示指令從下一行的第一個非空位元組開始

2) 驗證指令,但是不執行。

runmqsc -v < define.mq > myprog.out

3) 如果是遠端隊列管理器,則

runmqsc -w MQM_NAME

4) 列出隊列管理器的屬性

display QMGR

5) 更改隊列管理器屬性

ALTER QMGR DEADQ (ANOTHERDLQ) INHIBTEV (ENABLED)

6) 顯示對象屬性

display queue(ORANGE.LOCAL.QUEUE) +

MAXDEPTH +

MAXMSGL +

CURDEPTH;

7) 拷貝本地隊列

define qlocal (MAGENTA.QUEUE) like (ORANGE.LOCAL.QUEUE)

8) 更改隊列屬性

a) ALTER QLOCAL (ORANGE.LOCAL.QUEUE) MAXMSGL(10000)

b) DEFINE QLOCAL(ORANGE.LOCAL.QUEUE) MAXMSGL(10000) REPLACE

NOTE: b方法重新定義了隊列,這樣隊列的其他屬性就變成預設隊列的屬性了.

9) 清空隊列

CLEAR QLOCAL (MAGENTA.QUEUE)

10) 删除隊列

隻有當隊列中不含未完成送出的資訊時,才能删除. 如果隊列中含有已經完成送出的資訊, 删除時必需添加PURGE參數

DELETE QLOCAL (PINK.QUEUE) PURGE

添加NOPURGE參數,可以防止删除含有資訊的隊列.

12) 定義别名隊列

DEFINE QALIAS (MY.ALIAS.QUEUE) TARGQ (YELLOW.QUEUE)

ALTER QALIAS (MY.ALIAS.QUEUE) TARGQ (MAGENTA.QUEUE) FORCE

NOTE: 使用FORCE是指,即使隊列正在使用中,也能夠改變.

13) 定義模闆隊列

模闆隊列和本地隊列的差別是, 模闆隊列可以指定由其産生的動态隊列的生命期.

DEFINE QMODEL (GREEN.MODEL.QUEUE) DEFTYPE(PERMDYN)

14) 使用服務對象(service object)

a) server服務對象, 一個隊列管理器隻能有一個server服務對象在運作. 使用 display svstatus來監控他的狀态.

b) command服務對象, 可以有多個同時運作, 但是不能監控狀态.

3. 用于觸發器的對象管理

1) 定義用于觸發器的應用隊列

DEFINE QLOCAL(MOTOR.INSURANCE.QUEUE) +

PROCESS(MOTOR.INSURANCE.QUOTE.PROCESS) +

MAXMSGL(2000) +

DEFPSIST(YES) +

INITQ(MOTOR.INS.INIT.QUEUE) +

TRIGGER +

TRIGTYPE(DEPTH) +

TRIGDPTH(2) +

TRIGMPRI(5)

2) 定義初始化隊列

DEFINE QLOCAL(MOTOR.INS.INIT.QUEUE) +

GET(ENABLED) +

NOSHARE +

NOTRIGGER +

MAXMSGL(2000) +

MAXDEPTH(1000)

3) 定義過程

DEFINE PROCESS (MOTOR.INSURANCE.QUOTE.PROCESS) +

DESCR('Insurance request message processing') +

APPLICID('/home/sean/HP_UX/test/mq/2session/mqgeta') +

USERDATA('open, close, 235')

繼續閱讀