Create 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 starting
- 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.
- Install IBM i NetServer; see i5/OS NetServer.
- Create procedures to transfer the independent ASP from the failed queue manager to the standby that is taking over. We 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.
Procedure
- Do the task, Create a network share for queue manager data using NetServer on IBM i.
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.
CRTMQM MQMNAME(QM1) UDLMSGQ(SYSTEM.DEAD.LETTER.QUEUE) MQMDIRP(' /QNTC/GAMMA/WMQ ')The path, /QNTC/GAMMA/WMQ , uses NetServer to create the queue manager data in /QIBM/UserData/mqm/qmgrs.
- Use the command, DSPF, to inspect the IBM MQ configuration data created by CRTMQM for QM1 on ALPHA.
The information is needed in the next step.
In this example, the following configuration is created in /QIBM/UserData/mqm/mqs.ini on ALPHA for QM1:Name=QM1 Prefix=/QIBM/UserData/mqm Library=QMQM1 Directory=QM1 DataPath= /QNTC/GAMMA/WMQ /QM1- 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.
ADDMQMINF MQMNAME(QM1) PREFIX('/QIBM/UserData/mqm') MQMDIR(QM1) MQMLIB(QMQM1) DATAPATH(' /QNTC/GAMMA/WMQ /QM1 ')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
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.
Parent topic: Switched independent ASP journal configuration on IBM i