Monday, September 10, 2012

MQ Series: Configuration - Linux


Configuration


Prepare Share Storage for MQ Multi-Instance

Mount nfs volume to the servers for shared file system.
nfsserver:/vol/mqshare/GW  to  mqsvr01 and mqsvr02
nfsserver:/vol/mqshare/QM1 to  mqsvr03 and mqsvr04
nfsserver:/vol/mqshare/QM2 to  mqsvr05 and mqsvr06

7.3 Configure MQ Multi-Instance
7.3.1 Verify MQ Shared File System
NOTE: Execute following steps as user “mqm”
• Run amqmfsck on both App server per site (mqsvr01, mqsvr02), (mqsvr03, mqsvr04) (mqsvr05, mqsvr06)
amqmfsck /var/mqm/share
The tests on the directory completed successfully.
• Run amqmfsck -c
NOTE: Run on BOTH App server per site (mqsvr01, mqsvr02), (mqsvr03, mqsvr04) (mqsvr05, mqsvr06) at the SAME TIME
amqmfsck -c /var/mqm/share
Writing to test file. This will normally complete within about 60 seconds.
...........................................................
The tests on the directory completed successfully.
• Run amqmfsck -w
NOTE: Run on BOTH App server per site (mqsvr01, mqsvr02), (mqsvr03, mqsvr04) (mqsvr05, mqsvr06) at the SAME TIME
On one node you should see “File lock acquired” while on other node, it’s “Waiting for the file lock”
Hit Enter on the node which gets the file lock to release the lock. On the other node, you should see “File lock acquired”
amqmfsck -w /var/mqm/share
Start a second copy of this program with the same parameters on another server.
File lock acquired.
Press Enter or terminate this process to release the lock.
File lock released.
The tests on the directory completed successfully.
amqmfsck -w /var/mqm/share
Waiting for the file lock.
Waiting for the file lock.
Waiting for the file lock.
Waiting for the file lock.
Waiting for the file lock.
Waiting for the file lock.
File lock acquired.
Press Enter or terminate this process to release the lock.
File lock released.
The tests on the directory completed successfully.
7.3.2 Configure MQ Multi-Instance for ART MQ GateWay:
NOTE: Execute following steps as user “mqm”
• Create folder for MQ instance
mkdir -p /var/mqm/share/log
mkdir -p /var/mqm/share/qmgrs
• Create MQ instance on GW (mqsvr01)
crtmqm -ll -lf 32000 -lp 10 -ls 3 -u DL.ART.POCGW.QMGR01.DEAD.LETTER.QUEUE  \
-ld /var/mqm/share/log -md /var/mqm/share/qmgrs ART.POCGW.QMGR01

WebSphere MQ queue manager created.
Directory '/var/mqm/share/qmgrs/ART!POCGW!QMGR01' created.
Creating or replacing default objects for ART.POCGW.QMGR01.
Default objects statistics : 65 created. 0 replaced. 0 failed.
Completing setup.
Setup completed.
• Verify MQ instance on (mqsvr01)
strmqm ART.POCGW.QMGR01
WebSphere MQ queue manager 'ART.POCGW.QMGR01' starting.
11 log records accessed on queue manager 'ART.POCGW.QMGR01' during the log replay phase.
Log replay for queue manager 'ART.POCGW.QMGR01' complete.
Transaction manager state recovered for queue manager 'ART.POCGW.QMGR01'.
WebSphere MQ queue manager 'ART.POCGW.QMGR01' started.
dspmq
QMNAME(ART.POCGW.QMGR01)                                  STATUS(Running)
• Stop MQ instance on (mqsvr01)
endmqm ART.POCGW.QMGR01

Quiesce request accepted. The queue manager will stop when all outstanding work
is complete.
dspmq
QMNAME(ART.POCGW.QMGR01)                    STATUS(Ended normally)
• Verify MQ instance on (mqsvr01) with Multi-Instance Mode
strmqm -x ART.POCGW.QMGR01  

WebSphere MQ queue manager 'ART.POCGW.QMGR01' starting.
11 log records accessed on queue manager 'ART.POCGW.QMGR01' during the log replay phase.
Log replay for queue manager 'ART.POCGW.QMGR01' complete.
Transaction manager state recovered for queue manager 'ART.POCGW.QMGR01'.
WebSphere MQ queue manager 'ART.POCGW.QMGR01' started.

dspmq -x -m ART.POCGW.QMGR01
QMNAME(CTPQMGR1)                                          STATUS(Running)
    INSTANCE(ctp-bcclprapp03) MODE(Active)
• Start Listener for MQ instance on (mqsvr01)
NOTE: Change the port 1415 to production value
nohup runmqlsr -p 1414 -t tcp -m ART.POCGW.QMGR01 > /dev/null 2>&1 &

• Import MQ instance on (mqsvr02)
addmqinf -v Name= ART.POCGW.QMGR01 -v Directory= ART.POCGW.QMGR01 -v Prefix=/var/mqm \
-v DataPath=/var/mqm/share/qmgrs/ ART.POCGW.QMGR01
WebSphere MQ configuration information added.
• Verify MQ instance configuration on BOTH servers (mqsvr01 and mqsvr02)
NOTE: the output should be identical
dspmqinf ART.POCGW.QMGR01
QueueManager:
   Name=ART.POCGW.QMGR01
   Directory=ART!POCGW!QMGR01
   Prefix=/var/mqm
   DataPath=/var/mqm/share/qmgrs/ART!POCGW!QMGR01
• Start MQ instance on mqsvr02 with Multi-Instance Mode
strmqm -x ART.POCGW.QMGR01
WebSphere MQ queue manager 'CTPQMGR1' starting.
A standby instance of queue manager 'CTPQMGR1' has been started. The active
instance is running elsewhere.
• Check MQ instance on Both server (mqsvr01 and mqsvr02)
dspmq -x -m ART.POCGW.QMGR01
QMNAME(CTPQMGR1)                                          STATUS(Running as standby)
    INSTANCE(ctp-bcclprapp03) MODE(Active)
    INSTANCE(ctp-bcclprapp04) MODE(Standby)
• Start Listener for MQ instance on mqsvr02
NOTE: Change the port 1415 to production value
nohup runmqlsr -p 1414 -t tcp -m ART.POCGW.QMGR01 > /dev/null 2>&1 &
7.3.3 Verify Multi-Instance Failover
• Stop MQ instance on the Active node (mqsvr01)
endmqm -s ART.POCGW.QMGR01
Quiesce request accepted. The queue manager will stop when all outstanding work
is complete, permitting switchover to a standby instance.

dspmq -x -m ART.POCGW.QMGR01
QMNAME(ART.POCGW.QMGR01)                                  STATUS(Quiescing)
    INSTANCE(mqsvr01) MODE(Active)
    INSTANCE(mqsvr02) MODE(Standby)

dspmq -x -m ART.POCGW.QMGR01
QMNAME(ART.POCGW.QMGR01)                                  STATUS(Running elsewhere)
    INSTANCE(mqsvr02) MODE(Active)
7.3.4 Configure MQ for JMS
• Run following on the Active Node of MQ as mqm
runmqsc ART.POCGW.QMGR01 < /opt/mqm/java/bin/MQJMS_PSQ.mqsc

8 MQSC commands read.
No commands have a syntax error.
All valid MQSC commands were processed.
7.3.5 Configure MQ Multi-Instance for ART MQ B1
NOTE: Execute following steps as user “mqm”
• Create folder for MQ instance
mkdir -p /var/mqm/share/log
mkdir -p /var/mqm/share/qmgrs
• Create MQ instance on GW (mqsvr03)
crtmqm -ll -lf 32000 -lp 10 -ls 3 -u DL.ART.POCB1.QMGR01.DEAD.LETTER.QUEUE  \
-ld /var/mqm/share/log -md /var/mqm/share/qmgrs ART.POCB1.QMGR01

WebSphere MQ queue manager created.
Directory '/var/mqm/share/qmgrs/ART!POCB1!QMGR01' created.
Creating or replacing default objects for ART.POCB1.QMGR01.
Default objects statistics : 65 created. 0 replaced. 0 failed.
Completing setup.
Setup completed.
• Verify MQ instance on (mqsvr03)
strmqm ART.POCB1.QMGR01
WebSphere MQ queue manager 'ART.POCB1.QMGR01' starting.
11 log records accessed on queue manager 'ART.POCB1.QMGR01' during the log replay phase.
Log replay for queue manager 'ART.POCB1.QMGR01' complete.
Transaction manager state recovered for queue manager 'ART.POCB1.QMGR01'.
WebSphere MQ queue manager 'ART.POCB1.QMGR01' started.
dspmq
QMNAME(ART.POCB1.QMGR01)                      STATUS(Running)
• Stop MQ instance on (mqsvr03)
endmqm ART.POCB1.QMGR01

Quiesce request accepted. The queue manager will stop when all outstanding work
is complete.
dspmq
QMNAME(ART.POCB1.QMGR01)               STATUS(Ended normally)
• Verify MQ instance on (mqsvr03) with Multi-Instance Mode
strmqm -x ART.POCB1.QMGR01  

WebSphere MQ queue manager 'ART.POCB1.QMGR01' starting.
11 log records accessed on queue manager 'ART.POCB1.QMGR01' during the log replay phase.
Log replay for queue manager 'ART.POCB1.QMGR01' complete.
Transaction manager state recovered for queue manager 'ART.POCB1.QMGR01'.
WebSphere MQ queue manager 'ART.POCB1.QMGR01' started.

dspmq -x -m ART.POCB1.QMGR01
QMNAME(ART.POCB1.QMGR01)                                  STATUS(Running)
    INSTANCE(mqsvr03) MODE(Active)
• Start Listener for MQ instance on (mqsvr03)
NOTE: Change the port 1415 to production value
nohup runmqlsr -p 1414 -t tcp -m ART.POCB1.QMGR01 > /dev/null 2>&1 &
• Import MQ instance on (mqsvr04)
addmqinf -v Name=ART.POCB1.QMGR01 -v Directory='ART!POCB1!QMGR01' -v Prefix=/var/mqm -v DataPath='/var/mqm/share/qmgrs/ART!POCB1!QMGR01'
WebSphere MQ configuration information added.
• Verify MQ instance configuration on BOTH servers (mqsvr03 and mqsvr04)
NOTE: the output should be identical
dspmqinf ART.POCB1.QMGR01

QueueManager:
   Name=ART.POCB1.QMGR01
   Directory=ART!POCB1!QMGR01
   Prefix=/var/mqm
   DataPath=/var/mqm/share/qmgrs/ART!POCB1!QMGR01
• Start MQ instance on mqsvr04 with Multi-Instance Mode
strmqm -x ART.POCB1.QMGR01

WebSphere MQ queue manager 'ART.POCB1.QMGR01' starting.
A standby instance of queue manager 'ART.POCB1.QMGR01' has been started. The
active instance is running elsewhere.
• Check MQ instance on Both server (mqsvr03 and mqsvr04)
dspmq -x -m ART.POCB1.QMGR01
QMNAME(ART.POCB1.QMGR01)                                  STATUS(Running as standby)
    INSTANCE(mqsvr03) MODE(Active)
    INSTANCE(mqsvr04) MODE(Standby)
• Start Listener for MQ instance on mqsvr04
NOTE: Change the port 1415 to production value
nohup runmqlsr -p 1414 -t tcp -m ART.POCB1.QMGR01 > /dev/null 2>&1 &
7.3.6 Verify Multi-Instance Failover
• Stop MQ instance on the Active node (mqsvr03)
endmqm -s ART.POCB1.QMGR01
Quiesce request accepted. The queue manager will stop when all outstanding work
is complete, permitting switchover to a standby instance.

dspmq -x -m ART.POCB1.QMGR01
QMNAME(ART.POCB1.QMGR01)                                  STATUS(Quiescing)
    INSTANCE(mqsvr03) MODE(Active)
    INSTANCE(mqsvr04) MODE(Standby)

dspmq -x -m ART.POCB1.QMGR01

QMNAME(ART.POCB1.QMGR01)                                  STATUS(Running elsewhere)
    INSTANCE(mqsvr04) MODE(Active)

7.3.7 Configure MQ for JMS
• Run following on the Active Node of MQ as mqm
runmqsc ART.POCB1.QMGR01 < /opt/mqm/java/bin/MQJMS_PSQ.mqsc
8 MQSC commands read.
No commands have a syntax error.
All valid MQSC commands were processed.

7.3.8 Configure MQ Multi-Instance for ART MQ B2
NOTE: Execute following steps as user “mqm”
• Create folder for MQ instance
mkdir -p /var/mqm/share/log
mkdir -p /var/mqm/share/qmgrs
• Create MQ instance on GW (mqsvr05)
crtmqm -ll -lf 32000 -lp 10 -ls 3 -u DL.ART.POCB2.QMGR01.DEAD.LETTER.QUEUE  \
-ld /var/mqm/share/log -md /var/mqm/share/qmgrs ART.POCB2.QMGR01

WebSphere MQ queue manager created.
Directory '/var/mqm/share/qmgrs/ART!POCB2!QMGR01' created.
Creating or replacing default objects for ART.POCB2.QMGR01.
Default objects statistics : 65 created. 0 replaced. 0 failed.
Completing setup.
Setup completed.
• Verify MQ instance on (mqsvr05)
strmqm ART.POCB2.QMGR01
WebSphere MQ queue manager 'ART.POCB2.QMGR01' starting.
11 log records accessed on queue manager 'ART.POCB2.QMGR01' during the log replay phase.
Log replay for queue manager 'ART.POCB2.QMGR01' complete.
Transaction manager state recovered for queue manager 'ART.POCB2.QMGR01'.
WebSphere MQ queue manager 'ART.POCB2.QMGR01' started.
dspmq
QMNAME(ART.POCB2.QMGR01)                                  STATUS(Running)
• Stop MQ instance on (mqsvr05)
endmqm ART.POCB2.QMGR01

Quiesce request accepted. The queue manager will stop when all outstanding work
is complete.
dspmq
QMNAME(ART.POCB2.QMGR01)                  STATUS(Ended normally)
• Verify MQ instance on (mqsvr05) with Multi-Instance Mode
strmqm -x ART.POCB2.QMGR01  

WebSphere MQ queue manager 'ART.POCB2.QMGR01' starting.
11 log records accessed on queue manager 'ART.POCB2.QMGR01' during the log replay phase.
Log replay for queue manager 'ART.POCB2.QMGR01' complete.
Transaction manager state recovered for queue manager 'ART.POCB2.QMGR01'.
WebSphere MQ queue manager 'ART.POCB2.QMGR01' started.

dspmq -x -m ART.POCB2.QMGR01
QMNAME(ART.POCB2.QMGR01)                                  STATUS(Running)
    INSTANCE(mqsvr05) MODE(Active)
• Start Listener for MQ instance on (mqsvr05)
NOTE: Change the port 1415 to production value
nohup runmqlsr -p 1414 -t tcp -m ART.POCB2.QMGR01 > /dev/null 2>&1 &
• Import MQ instance on (mqsvr06)
addmqinf -v Name=ART.POCB2.QMGR01 -v Directory='ART!POCB2!QMGR01' -v Prefix=/var/mqm -v DataPath='/var/mqm/share/qmgrs/ART!POCB2!QMGR01'

WebSphere MQ configuration information added.
• Verify MQ instance configuration on BOTH servers (mqsvr05 and mqsvr06)
NOTE: the output should be identical
dspmqinf ART.POCB2.QMGR01
QueueManager:
   Name=ART.POCB2.QMGR01
   Directory=ART!POCB2!QMGR01
   Prefix=/var/mqm
   DataPath=/var/mqm/share/qmgrs/ART!POCB2!QMGR01

• Start MQ instance on mqsvr06 with Multi-Instance Mode
strmqm -x ART.POCB2.QMGR01
WebSphere MQ queue manager 'ART.POCB2.QMGR01' starting.
A standby instance of queue manager 'ART.POCB2.QMGR01' has been started. The
active instance is running elsewhere.
• Check MQ instance on Both server (mqsvr05 and mqsvr06)
dspmq -x -m ART.POCB2.QMGR01
QMNAME(ART.POCB2.QMGR01)                                  STATUS(Running as standby)
    INSTANCE(mqsvr05) MODE(Active)
    INSTANCE(mqsvr06) MODE(Standby)
• Start Listener for MQ instance on mqsvr06
NOTE: Change the port 1415 to production value
nohup runmqlsr -p 1414 -t tcp -m ART.POCB2.QMGR01 > /dev/null 2>&1 &
7.3.9 Verify Multi-Instance Failover:
• Stop MQ instance on the Active node (mqsvr05)
endmqm -s ART.POCB2.QMGR01
Quiesce request accepted. The queue manager will stop when all outstanding work
is complete, permitting switchover to a standby instance.

dspmq -x -m ART.POCB2.QMGR01
QMNAME(ART.POCB2.QMGR01)                                  STATUS(Quiescing)
    INSTANCE(mqsvr05) MODE(Active)
    INSTANCE(mqsvr06) MODE(Standby)


dspmq -x -m ART.POCB2.QMGR01
QMNAME(ART.POCB2.QMGR01)                                  STATUS(Ended normally)
    INSTANCE(mqsvr06) MODE(Active)

7.3.10 Configure MQ for JMS:
• Run following on the Active Node of MQ as mqm
runmqsc ART.POCB2.QMGR01 < /opt/mqm/java/bin/MQJMS_PSQ.mqsc
8 MQSC commands read.
No commands have a syntax error.
All valid MQSC commands were processed.


7.3.11 Configure Channels and Local Ques for Gateway MQ:
Run these on running instance QMgr.
• Define Server Channel:
DEFINE CHANNEL('SYSTEM.ADMIN.SVRCONN') CHLTYPE(SVRCONN) TRPTYPE(TCP)
• Define Dead Letter Queue:
DEFINE QLOCAL(DL.ART.POCGW.QMGR01.DEAD.LETTER.QUEUE) DESCR('Dead Letter Queue')
• Define Transmission Queue:
DEFINE QLOCAL('TQ.ART.POCB1.QMGR01')  TRIGGER INITQ(SYSTEM.CHANNEL.INITQ) TRIGDATA(POCGW.TO.POCB1) PROCESS(start.sndr.channel) DESCR('Transmission Queue to B1 Qmgr') USAGE(XMITQ) DEFPSIST(YES)

DEFINE QLOCAL('TQ.ART.POCB2.QMGR01') TRIGGER INITQ(SYSTEM.CHANNEL.INITQ) TRIGDATA(POCGW.TO.POCB1) PROCESS(start.sndr.channel.b2) DESCR('Transmission Queue to B2 Qmgr') USAGE(XMITQ) DEFPSIST(YES)
• Define local Queues:
DEFINE QLOCAL('LQ.ART.POCGW1') DESCR('Local Que ART.POCGW.QMGR01') DEFPSIST(YES) SHARE NOTRIGGER USAGE(NORMAL)
DEFINE QLOCAL('LQ.ART.POCGW2') DESCR('Local Que ART.POCGW.QMGR01') DEFPSIST(YES) SHARE NOTRIGGER USAGE(NORMAL)

• Define Remote Ques:
DEFINE QREMOTE('RQ.LQ.ART.POCB1') DESCR('Remote Q GWQmgr to B1Qmgr') RNAME('LQ.ART.POCB') RQMNAME('ART.POCB1.QMGR01') XMITQ('TQ.ART.POCB1.QMGR01') DEFPSIST(YES)

DEFINE QREMOTE('RQ.LQ.ART.POCB2') DESCR('Remote Q GWQmgr to B2Qmgr') RNAME('LQ.ART.POCB') RQMNAME('ART.POCB2.QMGR01') XMITQ('TQ.ART.POCB2.QMGR02') DEFPSIST(YES)
• Define Receiver Channels
DEFINE CHANNEL(POCB1.TO.POCGW) CHLTYPE(RCVR) TRPTYPE(TCP) DESCR('Receiver Channel from B1 queue manager')
DEFINE CHANNEL(POCB2.TO.POCGW) CHLTYPE(RCVR) TRPTYPE(TCP) DESCR('Receiver Channel from B1 queue manager')
• Define Sender Channels:
DEFINE CHANNEL('POCGW.TO.POCB1') CHLTYPE(SDR) TRPTYPE(TCP) CONNAME('10.193.28.12(1414),10.193.28.13(1414)') XMITQ('TQ.ART.POCB1.QMGR01') DESCR('Sender Channel to B1 queue manager')
DEFINE CHANNEL('POCGW.TO.POCB2') CHLTYPE(SDR) TRPTYPE(TCP) CONNAME('10.193.28.14(1414),10.193.28.15(1414)') XMITQ('TQ.ART.POCB2.QMGR01') DESCR('Sender Channel to B2 queue manager')

• Define auto sender channel start process:
DEFINE PROCESS(start.sndr.channel) DESCR('Autostart Sender Channel when message arrives') APPLTYPE(UNIX) APPLICID('CSQX START') USERDATA('POCGW.TO.POCB1')
DEFINE PROCESS(start.sndr.channel.b2) DESCR('Autostart Sender Channel when message arrives') APPLTYPE(UNIX) APPLICID('CSQX START') USERDATA('POCGW.TO.POCB2')


7.3.12 Configure Channels and Local Ques for B1 MQ:
Run these on running instance QMgr.
• Define Server Channel:
DEFINE CHANNEL('SYSTEM.ADMIN.SVRCONN') CHLTYPE(SVRCONN) TRPTYPE(TCP)
• Define Dead Letter Queue:
DEFINE QLOCAL(DL.ART.POCB1.QMGR01.DEAD.LETTER.QUEUE) DESCR('Dead Letter Queue')
• Define Transmission Queue:
DEFINE QLOCAL('TQ.ART.POCGW.QMGR01') TRIGGER INITQ(SYSTEM.CHANNEL.INITQ) TRIGDATA(POCB1.TO.POCGW) PROCESS(start.sndr.channel) DESCR('Transmission Queue') USAGE(XMITQ) DEFPSIST(YES)
• Define local Queues:
DEFINE QLOCAL('LQ.ART.POCB') DESCR('Local Que ART.POCB1.QMGR01') MAXDEPTH(10000) MAXMSGL(64512) MSGDLVSQ(FIFO) SHARE NOTRIGGER DEFPSIST(YES) USAGE(NORMAL)
• Define local Queue Alias:
DEFINE QALIAS('ART.POCB') DESCR('Local ART Que for B1Qmgr') TARGQ('LQ.ART.POCB')
• Define Remote Queues:
DEFINE QREMOTE('RQ.LQ.ART.POCGW1') DESCR('Remote Q B1Qmgr to GWQmgr') RNAME('LQ.ART.POCGW1') RQMNAME('ART.POCGW.QMGR01')
XMITQ('TQ.ART.POCGW.QMGR01') DEFPSIST(YES)
• Define Receiver Channel:
DEFINE CHANNEL(POCGW.TO.POCB1) CHLTYPE(RCVR) TRPTYPE(TCP) DESCR('Receiver Channel GW to B1 queue manager')
• Define Sender Channel:
DEFINE CHANNEL('POCB1.TO.POCGW') CHLTYPE(SDR) TRPTYPE(TCP) CONNAME('10.193.28.10(1414),10.193.28.11(1414)') XMITQ('TQ.ART.POCB1.01') DESCR('Sender Channel to Gateway queue manager')
• Define Process to auto start sender channel:
DEFINE PROCESS(start.sndr.channel)  DESCR(‘Autostart Sender Channel when message arrives’) APPLTYPE(UNIX) APPLICID(‘CSQX START’) USERDATA(‘POCB1.TO.POCGW’)

7.3.13 Configure Channels and Local Ques for B2 MQ:
Run these on running instance QMgr.
• Define Server Channel:
DEFINE CHANNEL('SYSTEM.ADMIN.SVRCONN') CHLTYPE(SVRCONN) TRPTYPE(TCP)
• Define Dead Letter Queue:
DEFINE QLOCAL(DL.ART.POCB2.QMGR01.DEAD.LETTER.QUEUE) DESCR('Dead Letter Queue')
• Define Transmission Queue:
DEFINE QLOCAL('TQ.ART.POCGW.QMGR01') TRIGGER INITQ(SYSTEM.CHANNEL.INITQ) TRIGDATA(POCB2.TO.POCGW) PROCESS(start.sndr.channel) DESCR('Transmission Queue to GW Qmgr') USAGE(XMITQ) DEFPSIST(YES)
• Define local Queues:
DEFINE QLOCAL('LQ.ART.POCB') DESCR('Local Que ART.POCB2.QMGR01') MAXDEPTH(10000) MAXMSGL(64512) MSGDLVSQ(FIFO) SHARE NOTRIGGER DEFPSIST(YES) USAGE(NORMAL)
• Define local Queue Alias:
DEFINE QALIAS('ART.POCB') DESCR('Local ART Que for B2Qmgr') TARGQ('LQ.ART.POCB')
• Define Remote Queues:
DEFINE QREMOTE('RQ.LQ.ART.POCGW2') DESCR('Remote Q B2Qmgr to GWQmgr') RNAME('LQ.ART.POCGW2') RQMNAME('ART.POCGW.QMGR01') XMITQ('TQ.ART.POCGW.QMGR01') DEFPSIST(YES)
• Define Receiver Channel:
DEFINE CHANNEL(POCGW.TO.POCB2) CHLTYPE(RCVR) TRPTYPE(TCP) DESCR('Receiver Channel GW to B2 queue manager')
• Define Sender Channel:
DEFINE CHANNEL('POCB2.TO.POCGW') CHLTYPE(SDR) TRPTYPE(TCP) CONNAME('10.193.28.10(1414),10.193.28.11(1414)') XMITQ('TQ.ART.POCGW.QMGR01') DESCR('Sender Channel to Gateway queue manager')
• Define Process to auto start Sender Channel:
DEFINE PROCESS(start.sndr.channel)  DESCR(‘Autostart Sender Channel when message arrives’) APPLTYPE(UNIX) APPLICID(‘CSQX START’) USERDATA(‘POCB2.TO.POCGW’)

7.3.14 Generate .binding files for GW MQ:
1 – Edit JMSAdmin.config file at /opt/mqm/java/bin/JMSAdmin.config
INITIAL_CONTEXT_FACTORY=com.sun.jndi.fscontext.RefFSContextFactory
PROVIDER_URL=file:/var/mqm/jndi
SECURITY_AUTHENTICATION=none
2 – Create jndi directory under /var/mqm
$mkdir /var/mqm/jndi
3 – Generate binding file
Cd /opt/mqm/java/bin
./setjmsenv64
MQ_JAVA_DATA_PATH is /var/mqm
MQ_JAVA_LIB_PATH is /opt/mqm/java/lib64
CLASSPATH is :/opt/mqm/java/lib/com.ibm.mq.jar:/opt/mqm/java/lib/com.ibm.mqjms.jar:/opt/mqm/samp/jms/samples:/opt/mqm/samp/wmqjava/samples
4 – Run JMSAdmin from /opt/mqm/java/bin
$./JMSAdmin
(if  you get NoClassDefFoundError Exception export CLASSPATH manually)
$export CLASSPATH=/opt/mqm/java/lib/com.ibm.mq.jar:/opt/mqm/java/lib/com.ibm.mqjms.jar:/opt/mqm/samp/jms/samples:/opt/mqm/samp/wmqjava/samples
$echo $CLASSPATH
/opt/mqm/java/lib/com.ibm.mq.jar:/opt/mqm/java/lib/com.ibm.mqjms.jar:/opt/mqm/samp/jms/samples:/opt/mqm/samp/wmqjava/samples
Run JMSAdmin again
$./JMSAdmin
(Create QCF and Q at InitCtx prompt)
InitCtx> DEF QCF(ARTQCF) QMGR(ART.POCGW.QMGR01) TRAN(CLIENT) CHAN(SYSTEM.DEF.SVRCONN) HOST(10.193.28.10) PORT(1414)
InitCtx> DEF Q(ARTQ) QMGR(ART.POCGW.QMGR01) QUEUE(LQ.ART.POCGW1)
InitCtx> end
5 – Copy JMS binding file onto Client (BW):
Copy binding file from /var/mqm/jndi/.binding
If required copy following libraries from /opt/mqm/java/lib folder
com.ibm.mq.jar
com.ibm.mq.jmqi.jar
com.ibm.mqjms.jar
connector.jar
dhbcore.jar
fscontext.jar
jms.jar
jndi.jar
jta.jar
providerutil.jar

7.3.15 Generate .binding files for B1 MQ:
1 – Edit JMSAdmin.config file at /opt/mqm/java/bin/JMSAdmin.config
INITIAL_CONTEXT_FACTORY=com.sun.jndi.fscontext.RefFSContextFactory
PROVIDER_URL=file:/var/mqm/jndi
SECURITY_AUTHENTICATION=none
2 – Create jndi directory under /var/mqm
$mkdir /var/mqm/jndi
3 – Generate binding file
Cd /opt/mqm/java/bin
./setjmsenv64
MQ_JAVA_DATA_PATH is /var/mqm
MQ_JAVA_LIB_PATH is /opt/mqm/java/lib64
CLASSPATH is :/opt/mqm/java/lib/com.ibm.mq.jar:/opt/mqm/java/lib/com.ibm.mqjms.jar:/opt/mqm/samp/jms/samples:/opt/mqm/samp/wmqjava/samples
4 – Run JMSAdmin from /opt/mqm/java/bin
$./JMSAdmin
(if  you get NoClassDefFoundError Exception export CLASSPATH manually)
$export CLASSPATH=/opt/mqm/java/lib/com.ibm.mq.jar:/opt/mqm/java/lib/com.ibm.mqjms.jar:/opt/mqm/samp/jms/samples:/opt/mqm/samp/wmqjava/samples
$echo $CLASSPATH
/opt/mqm/java/lib/com.ibm.mq.jar:/opt/mqm/java/lib/com.ibm.mqjms.jar:/opt/mqm/samp/jms/samples:/opt/mqm/samp/wmqjava/samples
Run JMSAdmin again
$./JMSAdmin
(Create QCF and Q at InitCtx prompt)
InitCtx> DEF QCF(ARTQCF) QMGR(ART.POCB1.QMGR01) TRAN(CLIENT) CHAN(SYSTEM.DEF.SVRCONN) HOST(10.193.28.12) port(1414)
InitCtx> DEF Q(ARTQ) QMGR(ART.POCB1.QMGR01) QUEUE(LQ.ART.POCB)
InitCtx> end
5 – Copy JMS binding file onto Client (BW):
Copy binding file from /var/mqm/jndi/.binding
If required copy following libraries from /opt/mqm/java/lib folder
com.ibm.mq.jar
com.ibm.mq.jmqi.jar
com.ibm.mqjms.jar
connector.jar
dhbcore.jar
fscontext.jar
jms.jar
jndi.jar
jta.jar
providerutil.jar

7.3.16 Generate .binding files for B2 MQ:
1 – Edit JMSAdmin.config file at /opt/mqm/java/bin/JMSAdmin.config
INITIAL_CONTEXT_FACTORY=com.sun.jndi.fscontext.RefFSContextFactory
PROVIDER_URL=file:/var/mqm/jndi
SECURITY_AUTHENTICATION=none
2 – Create jndi directory under /var/mqm
$mkdir /var/mqm/jndi
3 – Generate binding file
Cd /opt/mqm/java/bin
./setjmsenv64
MQ_JAVA_DATA_PATH is /var/mqm
MQ_JAVA_LIB_PATH is /opt/mqm/java/lib64
CLASSPATH is :/opt/mqm/java/lib/com.ibm.mq.jar:/opt/mqm/java/lib/com.ibm.mqjms.jar:/opt/mqm/samp/jms/samples:/opt/mqm/samp/wmqjava/samples
4 – Run JMSAdmin from /opt/mqm/java/bin
$./JMSAdmin
(if  you get NoClassDefFoundError Exception export CLASSPATH manually)
$export CLASSPATH=/opt/mqm/java/lib/com.ibm.mq.jar:/opt/mqm/java/lib/com.ibm.mqjms.jar:/opt/mqm/samp/jms/samples:/opt/mqm/samp/wmqjava/samples
$echo $CLASSPATH
/opt/mqm/java/lib/com.ibm.mq.jar:/opt/mqm/java/lib/com.ibm.mqjms.jar:/opt/mqm/samp/jms/samples:/opt/mqm/samp/wmqjava/samples
Run JMSAdmin again
$./JMSAdmin
(Create QCF and Q at InitCtx prompt)
InitCtx> DEF QCF(ARTQCF) QMGR(ART.POCB2.QMGR01) TRAN(CLIENT) CHAN(SYSTEM.DEF.SVRCONN) HOST(10.193.28.14) port(1414)
InitCtx> DEF Q(ARTQ) QMGR(ART.POCB2.QMGR01) QUEUE(LQ.ART.POCB)
InitCtx> end
5 – Copy JMS binding file onto Client (BW):
Copy binding file from /var/mqm/jndi/.binding
If required copy following libraries from /opt/mqm/java/lib folder
com.ibm.mq.jar
com.ibm.mq.jmqi.jar
com.ibm.mqjms.jar
connector.jar
dhbcore.jar
fscontext.jar
jms.jar
jndi.jar
jta.jar
providerutil.jar


No comments:

Post a Comment