Creating a multi-instance queue manager using an independent ASP and NetServer on IBM i
Create a multi-instance queue manager to run on two IBM® i servers. The queue manager data is stored an IBM i server using NetServer. The queue manager journal is
stored on an independent ASP. Use IBM i clustering or
a manual procedure to transfer the independent ASP containing the queue manager journal to the other
IBM i server.
Before you begin
The task requires three IBM i servers.
Install IBM MQ on two of them, ALPHA and BETA in the
example. IBM MQ must be at least at version 7.0.1.1.
The third server is an IBM i server,
connected by NetServer to ALPHA and BETA. It is used to share the queue manager data. It does not
have to have an IBM MQ installation. It is useful to
install IBM MQ on the server as a temporary step, to set
up the queue manager directories and permissions.
Make sure that the QMQM user profile has the same password on all three
servers.
Create procedures to transfer the independent ASP from the failed queue manager to the standby
that is taking over. You might find some of the techniques in SupportPac MC41: Configuring
IBM MQ for iSeries for High Availability helpful in designing
your independent ASP transfer procedures.
Perform the following steps to create the configuration shown in Figure 1. The queue manager data is connected using IBM i
NetServer.
Create connections from ALPHA and BETA to the directory share on GAMMA that is to store
the queue manager data. The task also sets up the necessary permissions, user profiles and
passwords.
Create the queue manager QM1 on the IBM i server, ALPHA.
Add the queue manager control information for QM1 on the other
IBM i server, BETA.
Start the queue manager, permitting a standby instance.
As a result, ALPHA and BETA have a share, /QNTC/GAMMA/WMQ, that
points to /QIBM/UserData/mqm/qmgrs on GAMMA. The user profiles
QMQM and QMQMADM have the necessary permissions, and
QMQM has matching passwords on all three systems.
Create the queue manager QM1 on ALPHA, saving the queue manager data on
GAMMA.
Create a queue manager instance of QM1 on BETA using the ADDMQMINF command.
Run the following command on BETA to modify the queue manager control information in
/QIBM/UserData/mqm/mqs.ini on BETA.
Tip: Copy and paste the configuration information. The queue manager stanza is the same
on ALPHA and BETA.
Start the queue manager instances on ALPHA and BETA.
Start the first instance on ALPHA, making it the active instance. Enabling switching over to a
standby instance.
STRMQM MQMNAME(QM1) STANDBY(*YES)
Start the second instance on BETA, making it the standby instance.
STRMQM MQMNAME(QM1) STANDBY(*YES)
Results
Use WRKMQM to check queue manager status:
The status of the queue manager instance on ALPHA should be *ACTIVE.
The status of the queue manager instance on BETA should be *STANDBY.
Example
Figure 1. Transfer a queue manager journal using an independent ASP
What to do next
Verify that the active and standby instances switch over automatically. We can run
the sample high availability sample programs to test the switch over; see High availability sample programs.
The sample programs are 'C' clients. We can run them from a Windows or Unix platform.
Start the high availability sample programs.
On ALPHA, end the queue manager requesting switch over:
ENDMQM MQMNAME(QM1) OPTION(*IMMED) ALSWITCH(*YES)
Check that the instance of QM1 on BETA is active.
Restart QM1 on ALPHA
STRMQM MQMNAME(QM1) STANDBY(*YES)
Look at alternative high availability configurations:
Use NetServer to place the queue manager data on an IBM i server.
Instead of using an independent ASP to transfer the queue manager journal to the standby server,
use remote journaling to mirror the journal onto the standby server.