Applying maintenance level updates on IBM i
You apply maintenance level updates on the latest release by stopping IBM MQ and using the IBM i standard maintenance procedure.
Before starting
To find out what version you have currently installed, use the following commands:IBM MQ Product | Version command |
---|---|
IBM MQ Server |
DSPMQMVER |
IBM MQ Java | IBM MQ classes for Java:
java com.ibm.mq.MQJavaLevelNote: For this command to work, you might need to set the environment classpath to include:
IBM MQ classes for Java Message Service: java com.ibm.mq.jms.MQJMSLevelNote: For this command to work, you might need to set the environment classpath to include:
See Environment variables relevant to IBM MQ classes for Java and Environment variables relevant to IBM MQ classes for JMS. |
IBM MQ Client |
DSPMQMVER |
About this task
Maintenance updates for IBM i are supplied as PTFs (Program Temporary Fixes). They are available for download from the web as save files, which are normally stored in the QGPL library. IBM i PTF's can be found in Fix Central.Procedure
- Read the cover letter carefully to see if we need to take any special actions.
- Sign on to a new interactive IBM i session, ensuring that we are not accessing any IBM MQ objects.
-
Ensure that we have:
- *ALLOBJ authority, or object management authority for the QMQM library.
- Sufficient authority to use the ENDSBS command.
- Warn all users that we are going to stop IBM MQ.
-
Stop the mqweb server by entering the following command:
ENDMQWEB
-
Use the ENDMQM command to quiesce all queue managers:
ENDMQM MQMNAME(*ALL) OPTION(*CNTRLD) ENDCCTJOB(*YES) RCDMQMIMG(*YES) TIMEOUT( 15 )
Where 15 is a timeout value in seconds. If the ENDMQM command has not completed within a reasonable period (at least 10 minutes), use the WRKMQM command. This command identifies the queue managers that are still ending. Then force each one in turn to stop by issuing:ENDMQM MQMNAME( QMGRNAME ) OPTION(*IMMED)
Where QMGRNAME is the name of the queue manager. Complete the tidying up of shared memory by issuing the command:ENDMQM MQMNAME(*ALL) OPTION(*IMMED) ENDCCTJOB(*YES) RCDMQMIMG(*NO) TIMEOUT( 15 )
-
If the command in the previous step does not complete, end the subsystem immediately by issuing:
ENDSBS SBS(QMQM) OPTION(*IMMED)
-
If this command also fails, use the operating system command ENDJOB to end all jobs in the subsystem QMQM, as described in the following steps.
Note: Do not use ENDJOBABN unless you intend to perform an IPL on the machine before starting IBM MQ. Ending IBM MQ jobs using ENDJOBABN can lead to damaged semaphores, which in turn can prevent your queue manager from starting.
-
If a QMGR must be shut down manually, the recommended order of ending jobs (ENDJOB) is shown in the list that follows. Wait a few minutes for AMQA* or AMQZ* jobs to tidy up.
- RUNMQLSR - TCP listener (multi-threaded)
- AMQCLMAA - TCP listener (single-threaded)
- AMQRMPPA - Channel process pooling job
- RUNMQCHI - channel initiator
- AMQCRSTA - receiving MCA jobs
- RUNMQCHL - sending MCA jobs
- AMQCRS6B - LU62 receiver channel
- AMQPCSEA - command server
- RUNMQTRM - Application trigger monitor
- RUNMQDLQ - Dead letter queue handler
- AMQFCXBA - IBM Integration Bus Worker Job
- AMQFQPUB - Queued Publish/Subscribe Daemon
- RUNMQBRK - IBM Integration Bus Control Job
- AMQZMUC0 ('0' is a zero) - Utility Manager
- AMQZMUF0 ('0' is a zero) - Utility Manager
- AMQZMUR0 ('0' is a zero) - Utility Manager
- AMQZMGR0 ('0' is a zero) - Process Controller
- AMQRRMFA - cluster repository manager
- AMQZDMAA - deferred message manager
- AMQALMPX - Log Manager
- AMQZFUMA - object authority manager
- AMQZLSA0 ('0' is a zero) - LQM agents
- AMQZLAA0 ('0' is a zero) - LQM agents
- AMQZXMA0 ('0' is a zero) - Execution Controller
-
Issue the following command:
ENDMQM MQMNAME( QMGRNAME ) OPTION(*IMMED)
-
Issue the following command:
ENDMQM MQMNAME(*ALL) OPTION(*CNTRLD) ENDCCTJOB(*YES) RCDMQMIMG(*NO) TIMEOUT( 05 )
Where 05 is a timeout value in seconds. -
Manually clean up shared memory. Issue the following command:
EDTF '/QIBM/UserData/mqm/qmgrs'
then:- Take option 5 for &SYSTEM and check that the following directories are empty: isem, esem, msem, ssem, and shmem.
- Take option 5 for QMGRNAME and check that the following directories are empty:- isem, esem, msem, ssem, and shmem.
- Take option 5 for &ipcc in the QMGRNAME directory and check that the following directories are empty:- isem, esem, msem, ssem, and shmem.
- Take option 5 for &qmpersist in the QMGRNAME directory and check that the following directories are empty:- isem, esem, msem, ssem, and shmem.
- Take option 5 for &app and check that the following directories are empty: isem, esem, msem, ssem, and shmem.
-
If a QMGR must be shut down manually, the recommended order of ending jobs (ENDJOB) is shown in the list that follows. Wait a few minutes for AMQA* or AMQZ* jobs to tidy up.
- Load and apply a PTF
Parent topic: Applying and removing maintenance on IBM i