http://www.ibm.com/developerworks/websphere/library/techarticles/1104_murthy/1104_murthy.html?ca=drs-
MQ V7이상의 새로운 확장성 기능을 사용하여, multi-instance queue manager를 위한 구성정보 및 데이터(message / data)를 NAS에 위치하며, NFS(Network File System) 프로토콜 V4이상을 통해 접근하여 구성한다. multi instance는 active & Standby mode로 물리적으로 분리된 위치에 거주한다. active queue manager(qmgr) instance는 AP나 다른 qmgr로 부터의 connection 연결 또는 메시지 처리를 수행한다. 이 시점의 active QMGR은 NAS의 구성정보 및 데이터를 저장하고 있는 파일 시스템을 lock을 점유하고 있다. standby qmgr은 주기적으로 active qmgr instance가 running 상태인지 상태 점검을 하며, 만일 active qmgr의 상태가 fail이거나 연결되지 않는 경우, active qmgr이 공유 저장 공간에서 점유하고 있는 data를 release한 시점에 active 상태로 변경된다.
- Multi-instance가 구성될 두 장비에 MQ V7.0.1 이상을 설치 및 구성한다.
- 해당 machine에는 mqm group의 mqm user를 생성.
- 두 머신의 mqm user 및 mqm group은 uid / gid를 가져야 함..
- Machine1:
id mqm: uid=301(mqm), gid=301(mqm)
- Machine2:
id mqm: uid=301(mqm), gid=301(mqm)
In
this example, NFS server = axion
,
exported directory = /HA
, and NFS
client = hurlqc
.
28: root/root
29: administrator/root
http://www.ibm.com/developerworks/websphere/library/techarticles/1011_gupta/1011_gupta.html
mkdir -p /nas/WMQ/OZA/data
mkdir -p /nas/WMQ/OZA/logs
mkdir -p /nas/WMB/OZA
mkdir -p /nas/WMQ/OZB/data
mkdir -p /nas/WMQ/OZB/logs
1번 서버.
1) crtmqm -md /nas/WMQ/OZA/data -ld /nas/WMQ/OZA/logs -lp 5 -ls 3 -lc -lf 16384 OZA
2) wmb1:/var/mqm>dspmqinf -o command OZA
addmqinf -s QueueManager -v
Name=OZA -v Directory=OZA -v Prefix=/var/mqm -v
DataPath=/nas/WMQ/OZA/data/OZA
2번 서버
3) addmqinf -s QueueManager -v Name=OZA -v Directory=OZA -v Prefix=/var/mqm -v DataPath=/nas/WMQ/OZA/data/OZA
4) crtmqm -md /nas/WMQ/OZB/data -ld /nas/WMQ/OZB/logs -lp 5 -ls 3 -lc -lf 16384 OZB
5) dspmqinf -o command OZB
addmqinf -s QueueManager -v Name=OZB -v
Directory=OZB -v Prefix=/var/mqm -v DataPath=/nas/WMQ/OZB/data/OZB
1번서버
6) addmqinf -s QueueManager -v Name=OZB -v Directory=OZB -v Prefix=/var/mqm
-v DataPath=/nas/WMQ/OZB/data/OZB
WebSphere MQ configuration information
added.
7) 확인
1번서버) dspmq
wmb1:/var/mqm>dspmq
QMNAME(TEST)
STATUS(Running)
QMNAME(OZA)
STATUS(Ended
immediately)
QMNAME(OZB)
STATUS(Ended immediately)
2번서버) dspmq
QMNAME(OZA)
STATUS(Ended
immediately)
QMNAME(OZB)
STATUS(Ended immediately)
* Start MI QMGR
1) 1번서버: strmqm -x OZA -> endmqm -si OZA
2) 2번서버: strmqm -x OZB
3) 1번서버: strmqm -x OZB
4) 2번 서버: strmqm -x OZA
* Create WMQ Cluster
1) 1번서버 OZA: define listener(OZALISTENER1) trptype(tcp) port(1414) control(qmgr) => start listener(OZALISTENER1)
2) 2번서버 OZB: define listener(OZBLISTENER2) trptype(tcp) port(1415) control(qmgr) => start listener(OZBLISTENER2)
1번/2번서버에서: ALTER QMGR REPOS(OZCLUSTER)
Create channels between full repository and partial repository queue managers
1번서버)
DEFINE CHANNEL (TO.OZA) CHLTYPE(CLUSRCVR) TRPTYPE(TCP) CONNAME('wmb1(1414), wmb2(1414)') CLUSTER(OZCLUSTER)
DEFINE CHANNEL(TO.OZB) CHLTYPE(CLUSSDR) TRPTYPE(TCP) CONNAME('wmb1(1415), wmb2(1415)') CLUSTER(OZCLUSTER)
2번서버)
DEFINE CHANNEL(TO.OZB) CHLTYPE(CLUSRCVR) TRPTYPE(TCP) CONNAME('wmb1(1415), wmb2(1415)') CLUSTER(OZCLUSTER)
DEFINE CHANNEL(TO.OZA) CHLTYPE(CLUSSDR) TRPTYPE(TCP) CONNAME('wmb1(1414), wmb2(1414)') CLUSTER(OZCLUSTER)
Configuring WebSphere Message Broker
1) 1번서버: mqsicreatebroker OZA -q OZA -e /nas/WMB/OZA
2) 2번서버: mqsicreatebroker OZB -q OZB -e /nas/WMB/OZB
3) 2번서버: mqsiaddbrokerinstance OZA -e /nas/WMB/OZA
4) 1번 서버: mqsiaddbrokerinstance OZB -e /nas/WMB/OZB
* 시작
1) 1번서버: mqsistart OZA => 2번서버: mqsistart OZA
2) 2번서버: mqsistart OZB ==> 1번서버: mqsistart OZB
* Create DataFlowEngine
1번서버: mqsicreateexecutiongroup OZA -e OZEG
2번서버: mqsicreateexecutiongroup OZB -e OZEG
http://www.ibm.com/developerworks/websphere/library/techarticles/1108_gupta/1108_gupta.html?ca=drs-
define qlocal(NAME.IN) cluster(OZCLUSTER)
define qlocal(NAME.OUT) cluster(OZCLUSTER)
define qlocal(MST.IN) cluster(OZCLUSTER)
define qlocal(MST.OUT) cluster(OZCLUSTER)
define qlocal(ITN.IN) cluster(OZCLUSTER)
define qlocal(ITN.OUT) cluster(OZCLUSTER)
define qlocal(SRH.IN) cluster(OZCLUSTER)
define qlocal(SRH.OUT) cluster(OZCLUSTER)
define qlocal(SRH.RTN.IN) cluster(OZCLUSTER)
define qlocal(SRH.RTN.OUT) cluster(OZCLUSTER)
define qlocal(NAME.EVENT.IN) cluster(OZCLUSTER)
define qlocal(NAME.EVENT.OUT) cluster(OZCLUSTER)
define qlocal(FTP.NAME.IN)
define qlocal(FTP.NAME.OUT)
define qlocal(FTP.MST.IN)
define qlocal(FTP.MST.OUT)
define qlocal(FTP.ITN.IN)
define qlocal(FTP.ITN.OUT)
define qlocal(FTP.SSR.IN)
define qlocal(FTP.SSR.OUT)
Partially Cluster
1) crtmqm -lp 5 -ls 3 -lc -lf 16384 OZD
2) define listener(OZLISTENER4) trptype(tcp) port(1417) control(qmgr)
define listener(OZCLISTENER3) trptype(tcp) port(1416) control(qmgr)
start listener(OZCLISTENER3)
DEFINE CHANNEL(TO.OZC) CHLTYPE(CLUSRCVR) TRPTYPE(TCP) CONNAME('wmb3(1416)') CLUSTER(OZCLUSTER)
DEFINE CHANNEL(TO.OZA) CHLTYPE(CLUSSDR) TRPTYPE(TCP) CONNAME('wmb1(1414), wmb2(1414)') CLUSTER(OZCLUSTER)
start chl(TO.OZC)
dis clusqmgr(*)
DISPLAY CHSTATUS(*)
* Monitor QMGR 연계
1. OZA / OZB / OZC
def ql(EVENT.XQ) usage(XMITQ)
define qremote(EVENT.RQ) rname(EVENT.LQ) rqmname(OZM) xmitq(EVENT.XQ)
define channel(OZB.TO.OZM) chltype(SDR) conname('mon(1417)') trptype(TCP) xmitq(EVENT.XQ)
ping channel(OZA.TO.OZM)
//-----------
define qlocal(NAME.OUT) cluster(OZCLUSTER)
define qlocal(MST.OUT) cluster(OZCLUSTER)
define qlocal(ITN.OUT) cluster(OZCLUSTER)
//------------
OZA / OZB
define qremote(SRH.OUT.RQ) rname(SRH.OUT.ALQ) rqmname(OZM) xmitq(EVENT.XQ)
define qremote(SRH.OUT.RQ) rname(SRH.OUT.BLQ) rqmname(OZM) xmitq(EVENT.XQ)
OZM
define ql(SRH.OUT.ALQ)
define ql(SRH.OUT.BLQ)
define ql(EVENT.ALQ)
define ql(EVENT.BLQ)
OZM
def ql(SRH.AXQ) usage(XMITQ)
def ql(SRH.BXQ) usage(XMITQ)
define qremote(SRH.RTN.ARQ) rname(SRH.RTN.IN) rqmname(OZA) xmitq(SRH.AXQ)
define qremote(SRH.RTN.BRQ) rname(SRH.RTN.IN) rqmname(OZB) xmitq(SRH.BXQ)
define channel(OZM.TO.OZA) chltype(SDR) conname('wmb1(1414)') trptype(TCP) xmitq(SRH.AXQ)
define channel(OZM.TO.OZA) chltype(SDR) conname('wmb2(1414)') trptype(TCP) xmitq(SRH.AXQ)
define channel(OZM.TO.OZB) chltype(SDR) conname('wmb2(1415)') trptype(TCP) xmitq(SRH.BXQ)
define channel(OZM.TO.OZB) chltype(SDR) conname('wmb1(1415)') trptype(TCP) xmitq(SRH.BXQ)
OZA
define channel(OZM.TO.OZA) chltype(RCVR)
OZB
define channel(OZM.TO.OZB) chltype(RCVR)
2. OZM
crtmqm -lp 5 -ls 3 -lc -lf 16384 -u OZM.DQ OZM
define qlocal(OZM.DQ)
define channel(OZA.TO.OZM) chltype(RCVR)
define channel(OZB.TO.OZM) chltype(RCVR)
define listener(OZMLISTENER) trptype(tcp) port(1417) control(qmgr)
define chl(SYSTEM.ADMIN.SVRCONN) chltype(SVRCONN)
* HttpListener
mqsichangeproperties OZB -b httplistener -o HTTPConnector -n maxKeepAliveRequests -v 30000
mqsichangeproperties OZB -b httplistener -o HTTPConnector -n port -v 7081
mqsichangeproperties OZA -b httplistener -o HTTPListener -n startListener -v true
mqsireportproperties OZA -b httplistener -o HTTPConnector -r
mqsireportproperties OZB -b httplistener -o HTTPConnector -r
mqsireportproperties OZB -b httplistener -o HTTPListener -a
mqsichangeproperties OZA -b httplistener -o HTTPConnector -n maxKeepAliveRequests -v 0
mqsichangeproperties OZA -b httplistener -o HTTPConnector -n maxThreads -v 2000
qm.ini
Channels:
MaxChannels=65535
MaxActiveChannels=65535
MQIBINDTYPE=FASTPATH
AdoptNewMCA=ALL
*MB DB
mqsisetdbparms OZB -n OZORACLEODS -u bis_ods -p oracle
mqsichangebroker OZB -t
* Channel initiator
transmission Queue : QM4
DEFINE QLOCAL(QM2) DESCR('Transmission queue to QM2') USAGE(XMITQ)
DEFINE QLOCAL(QM4) TRIGGER INITQ(SYSTEM.CHANNEL.INITQ) PROCESS(P1) USAGE (XMITQ)
DEFINE PROCESS(P1) USERDATA(QM3.TO.QM4)
/usr/mqm/bin/runmqchi
OZA to OZM OZM
1) remote queue: EVENT.RQ -> local queue: EVENT.ALQ
2) transmission queue: EVENT.XQ -> transmission queue:
3) sender channel: OZA.TO.OZM -> sender channel:
4) receiver channel: OZM.TO.OZA -> recever channel:
5) reply to queue
'IBM' 카테고리의 다른 글
MQ & WAS(Websphere or weblogic)연동 가이드. (0) | 2011.09.26 |
---|---|
WebSphere Application Server - SIBus Link (0) | 2011.09.21 |
WebLogic & WebSphere EJB 연동. (0) | 2011.08.17 |