You apply maintenance level updates on the latest release by stopping IBM® MQ and using the IBM i standard maintenance procedure.
Before you begin
To find out what version you have currently installed, use
the following commands:
Table 1. IBM MQ commands to display
the installed versions
IBM MQ Product |
Version command |
IBM MQ Server |
DSPMQMVER
|
IBM MQ Java |
IBM MQ classes for Java:
java com.ibm.mq.MQJavaLevel
Note: For
this command to work, you might need to set your environment classpath
to include:
/QIBM/ProdData/mqm/java/lib/com.ibm.mq.jar
IBM MQ classes for Java Message
Service:
java com.ibm.mq.jms.MQJMSLevel
Note: For
this command to work, you might need to set your environment classpath
to include:
- /QIBM/ProdData/mqm/java/lib/com.ibm.mq.jakarta.client.jar (Jakarta Messaging 3.0) or /QIBM/ProdData/mqm/java/lib/com.ibm.mq.allclient.jar (JMS 2.0)
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
Prepare to quiesce queue managers:
-
Read the cover letter carefully to see if you need to take any special actions.
-
Sign on to a new interactive IBM i session, ensuring that you are not accessing any IBM MQ objects.
-
Ensure that you have the following authorities:
*ALLOBJ
authority, or object management authority for the QMQM
library.
- Sufficient authority to use the ENDSBS command.
-
Warn all users that you are going to stop IBM MQ.
-
Stop the mqweb server by entering the following command:
Quiesce all queue managers:
-
Run the ENDMQM command:
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 running the following command:
ENDMQM MQMNAME( QMGRNAME ) OPTION(*IMMED)
Where
QMGRNAME
is the name of the queue manager.
Complete the tidying up of shared memory by running the following command:
ENDMQM MQMNAME(*ALL) OPTION(*IMMED) ENDCCTJOB(*YES) RCDMQMIMG(*NO)
TIMEOUT( 15 )
If the commands in the previous step do not complete, end the subsystem
immediately:
-
Run the following command:
ENDSBS SBS(QMQM) OPTION(*IMMED)
If the command in the previous step also does not complete, use the operating system
command ENDJOB to end all jobs in the subsystem QMQM:
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, end the jobs (ENDJOB) in the following order. 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
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
-
Run the following command:
ENDMQM MQMNAME( QMGRNAME ) OPTION(*IMMED)
-
Run 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.
Run 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.
Apply a PTF:
-
Load and apply a PTF.