Page 1 of 49

Installing MQ 9.1.0.3 LTS to coexist with MQ 8.0.0.9 in x86 64-bit, including applying Fix Packs 8.0.0.14 and 9.1.0.4

https://www.ibm.com/support/pages/node/2800923

Date last updated: 18-Feb-2020

Angel Rivera – [email protected] IBM MQ Support

+++ Objective

This techdoc shows all the steps to install MQ 9.1.0.3 LTS in Linux x86 64-bit, while co-existing ("side-by-side") with MQ 8.0.0.9. Furthermore, the steps include the installation of the Fix Packs 8.0.0.14 and 9.1.0.4.

None of the installations are designated as “Primary”. Therefore, you must use “setmqenv” to setup the MQ environment for the desired installation.

NOTE regarding MQ 9.0: The principles discussed in this techdoc apply also to MQ 9.0. Keep in mind that the End Of Support (EOS) for MQ 8.0 is 30-Apr-2020 and for MQ 9.0 is 30-Sep-2021. At the time this tutorial was written, the EOS for MQ 9.1 has not been announced yet.

An important aspect of this feature of multiple installations of MQ (multi-install) in the same host, is that this type of installation does not require that the MQ 8.0 queue managers and applications need to be stopped when doing activities with MQ 9.1. That is, the installation of MQ 9.1 does not affect the running MQ 8.0 applications. This is helpful when you try to do a staging upgrade of the MQ 8.0 queue managers to MQ 9.1.

The equivalent document for Windows is: https://www.ibm.com/support/pages/node/2800929 Installing MQ 9.1.0.0 LTS to coexist with MQ 8.0.0.9 in Windows, including applying Fix Packs 8.0.0.14 and 9.1.0.4

Except for the installation chapters that use the Linux rpm command, the rest of the chapters apply to other UNIX distributions: AIX and Solaris Keep in mind that MQ 9.1 is the LAST version that provides support for Solaris.

Page 2 of 49

The chapters are:

Chapter 1: Summary of rpm commands: install, uninstall, querying Chapter 2: Installing MQ 9.1 LTS side-by-side to MQ 8.0 Chapter 3: Need to run setmqenv to use MQ 9.1 or MQ 8.0 commands Chapter 4: Creating a queue manager under MQ 9.1 Chapter 5: Remote access to the new MQ 9.1 queue manager Chapter 6: Migrating an MQ 8.0 queue manager to MQ 9.1 Chapter 7: Installing Fix Pack 8.0.0.14 Chapter 8: Installing Fix Pack 9.1.0.4 Chapter 9: Uninstallation

+++ Using MQ 9.1 Long Term Support (LTS) for this tutorial

Starting with MQ 9.0, there are 2 branches for delivering the code. Here is a SUMMARY of when to use Long Term Support (LTS) and when to use Continu- ous Delivery (CD): a) Use LTS if you want STABILITY and you are willing to sacrifice new features that may come with CD. You are not willing to tolerate the bugs that may come with the new features. You will have fix packs that can be applied on top of LTS. In our experience, customers want LTS for the PRODUCTION queue managers. b) Use CD if you want NEW FEATURES and you are willing to tolerate the bugs that may come with the new features. There are NO fix packs that can be applied on top of a CD release (but there might be interim fixes). In a sense, the next CD release, such as MQ 9.1.2, is the fix pack for MQ 9.1.1 and has new features and fixes for bugs. If you are using 9.1.1 CD, you MUST UNINSTALL 9.1.1 in order to install the new 9.1.2 CD (this action does NOT change the data of the queue manager). In our experience, customers want CD for the DEVELOPMENT queue managers.

Note: For more details see: http://www-01.ibm.com/support/docview.wss?uid=swg27047919 IBM MQ FAQ for Long Term Support (LTS) and Continuous Delivery (CD) releases

Page 3 of 49

+++ Hardware and software used for this tutorial

Red Hat Enterprise Linux (RHEL) 7.6 on x86-64-bit Hostname: aztlan1.fyre.ibm.com

Queue Managers: QM80 => Created with MQ 8.0.0. To remain at 8.0.0 QMMIG => Created with MQ 8.0.0. To be migrated to 9.1.0 QM910 => Created with MQ 9.1.0. To remain at 9.1.0

The MQ 8.0 code was installed as the only installation of MQ in the Linux host in: /opt/mqm

… by following the instructions from this tutorial: http://www.ibm.com/support/docview.wss?uid=ibm10719561 Installing MQ 9.0.0.1 LTS, applying Fix Pack 9.0.0.4, Uninstalling MQ in Linux

The MQ 8.0 installation is NOT designated as Primary.

The *Msg* (message catalogs) filesets were NOT installed.

The MQ 8.0.0.9 rebased code was downloaded from IBM Passport Advantage and it has the cumulation of MQ 8.0.0.0 + 8.0.0.1 + … + 8.0.0.9 https://www.ibm.com/support/pages/downloading-ibm-mq-version-80 Downloading IBM MQ Version 8.0

The Part Number is: CNS91ML WebSphere MQ V8.0.0.9 for Linux on x86 64-bit eImage

The installation file was downloaded into a temporary directory:

+++ROOT+++ aztlan1.fyre.ibm.com: /downloads/mq8009 # ls WS_MQ_V8.0.0.9_LINUX_ON_X86_64_IM.tar.gz

Here is a subset of the rpm filesets that are installed:

+++ROOT+++ aztlan1.fyre.ibm.com: /root # rpm -qa | grep -i mq | grep "8\.0" MQSeriesJava-8.0.0-9.x86_64 MQSeriesFTService-8.0.0-9.x86_64 MQSeriesAMS-8.0.0-9.x86_64 MQSeriesClient-8.0.0-9.x86_64 MQSeriesJRE-8.0.0-9.x86_64 MQSeriesServer-8.0.0-9.x86_64

Page 4 of 49

MQSeriesAMQP-8.0.0-9.x86_64 MQSeriesXRService-8.0.0-9.x86_64 MQSeriesGSKit-8.0.0-9.x86_64 MQSeriesMan-8.0.0-9.x86_64 MQSeriesSDK-8.0.0-9.x86_64 MQSeriesRuntime-8.0.0-9.x86_64

This is the output of dspmqver: [email protected]: /home/mqm $ dspmqver Name: WebSphere MQ Version: 8.0.0.9 Level: p800-009-180321.1 BuildType: IKAP - (Production) Platform: WebSphere MQ for Linux (x86-64 platform) Mode: 64-bit O/S: Linux 3.10.0-1062.4.1.el7.x86_64 InstName: Installation1 InstDesc: Primary: No InstPath: /opt/mqm DataPath: /var/mqm MaxCmdLevel: 802 LicenseType: Production

This is the output of dspmqinst (which displays the MQ installations in the server): [email protected]: /home/mqm $ dspmqinst InstName: Installation1 InstDesc: Identifier: 1 InstPath: /opt/mqm Version: 8.0.0.9 Primary: No State: Available

Display the existing MQ 8.0 queue managers and the installation, version and status: $ dspmq -o installation -s QMNAME(QM80) STATUS(Running) INSTNAME(Installation1) INSTPATH(/opt/mqm) INSTVER(8.0.0.9) QMNAME(QMMIG) STATUS(Ended immediately) INSTNAME(Installation1) INSTPATH(/opt/mqm) INSTVER(8.0.0.9)

Page 5 of 49

+ Customization scripts to facilitate working with multiple MQ installations

The following tutorial has a zip file that has several scripts that can be installed in /usr/local/bin and that can be useful. https://www.ibm.com/support/pages/node/1402581 Customization of a Linux RHEL host or VM for using MQ

For example, you could have reused the script in /usr/local/bin : set-mq-80

… and customized it as follows: # Purpose: to setup the environment to run MQ 8.0 . /opt/mqm/bin/setmqenv -n Installation1

Then, the file $HOME/bashrc.mqm for the user “mqm” could have been customized to issue the above set-mq script upon login. ## Set default MQ version: . set-mq-80

Then when user “mqm” logs in, the bashrc.mqm file is execute, which invokes the set-mq-80 script which sets the MQ environment variables for MQ 8.0. Version: 8.0.0.9 [email protected]: /home/mqm (20)

The following command shows the queue managers created under MQ 8.0: [email protected]: /home/mqm (20) dspmq QMNAME(QM80) STATUS(Running) QMNAME(QMMIG) STATUS(Running)

The following script from /usr/local/bin displays the queue managers created under MQ 8.0, including the InstallationName, the path and version. [email protected]: /home/mqm (21) dspmq80 QMNAME(QM80) STATUS(Running) INSTNAME(Installation1) INSTPATH(/opt/mqm) INSTVER(8.0.0.9) QMNAME(QMMIG) STATUS(Running) INSTNAME(Installation1) INSTPATH(/opt/mqm) INSTVER(8.0.0.9)

Page 6 of 49

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +++ Chapter 1: Summary of rpm commands: install, uninstall, querying ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Login as user: root a) Installing the MQ rpm filesets for the first installation. This is first installation in a Linux host and the default location is used (/opt/mqm) Example: MQ 8.0.0.9 in /opt/mqm

* Download tar.gz file into a directory such as /downloads/mq/8.0.0.9/ * Unpack the tar.gz file, such as: tar -zxvf WS_MQ_V8.0.0.9_LINUX_ON_X86_64_IM.tar.gz cd /downloads/mq/8.0.0.9/MQServer ./mqlicense.sh -accept rpm -ivh MQ*.rpm

b) Querying the installed MQ rpm filesets. Query for all the filesets. rpm -qa | grep -i mq

) Querying the installed MQ rpm filesets. Query for only the MQ 8.0 filesets. rpm -qa | grep -i mq | grep "8\.0"

d) Installing (for the first time) all the MQ rpm filesets for a second installation. Need to do 2 tasks: - Use crtmqpkg to rename the filesets with an Installation Identifier - Use --prefix in rpm to specify the non-default directory.

Example: MQ 9.1.0.3 in /opt/mqm910, using Installation Identifier 2.

* Download tar.gz file into a directory such as /downloads/mq/8.0.0.9/ * Unpack the tar.gz file, such as: tar -zxvf IBM_MQ_9.1.0.3_LINUX_X86-64.tar.gz cd /downloads/mq/9.1.0.3/MQServer ./mqlicense.sh -accept ./crtmqpkg 2 cd /var/tmp/mq_rpms/2/x86_64 rpm --prefix /opt/mqm910 -ivh MQ*.rpm

Page 7 of 49

e) Querying the installed MQ rpm filesets. Query for only the MQ 9.1 filesets. rpm -qa | grep -i mq | grep "9\.1"

Because MQ 9.1 was installed in Installation2 and the Installation Identifier “2” was used, another way to query for the installed filesets for MQ 9.1 is: rpm -qa | grep -i mq | grep "_2"

f) Installing Fix Packs for Installation1 (MQ 8.0 in this case) * Download tar.gz file into a directory such as /downloads/mq/8.0.0.14/ * Unpack the tar.gz file, such as: tar -zxvf 8.0.0-WS-MQ-LinuxX64-FP0014.tar.gz rpm -ivh MQ*.rpm

g) Installing Fix Packs for Installation2 (MQ 9.1 in this case). Fix Pack id is U9104. * Download tar.gz file into a directory such as /downloads/mq/9.1.0.4/ * Unpack the tar.gz file, such as: tar -zxvf 9.1.0-IBM-MQ-LinuxX64-FP0004.tar.gz ./crtmqfp 2 cd /var/tmp/mq_rpms/2/x86_64 rpm --prefix /opt/mqm910 -ivh MQSeries*U9104*.rpm

h) Uninstalling only a fix pack For more details see: Chapter 9: Uninstallation

Specify the desired Fix Pack Identifier, such as U9104: rpm -ev `rpm -qa | grep -i mq | grep U9104`

i) Uninstalling all the filesets for a version (such as 9.1) For more details see: Chapter 9: Uninstallation

If your goal is to uninstall all the fix packs and the base for a given version, such as MQ 9.1, then it could be tedious to try to uninstall every fix pack at a time, in reverse order in which they were installed (such as 9.1.0.4, 9.1.0.3, 9.1.0.2, etc) and the un- install the base one. Instead, a single command could be used that isolates all the MQ 9.1 filesets to be in- stalled (without affecting the ones for MQ 8.0), and in that way, the uninstall process will be faster and more efficient.

Specify the desired Installation Identifier, such as _2: rpm -ev `rpm -qa | grep -i mq | grep "_2" `

Page 8 of 49

j) Uninstalling every fileset for MQ for all installed versions.

If your goal is to uninstall all the fix packs and the base for all the installed versions (MQ 8.0 and MQ 9.1) then it could be tedious to try to uninstall every fix pack at a time, in reverse order in which they were installed (such as 9.1.0.4, 9.1.0.3, 9.1.0.2, etc) and the uninstall the base one, and repeat the process for the other versions. Instead, you could do the full install in a single step and it is explained below. rpm -ev `rpm -qa | grep -i mq`

Page 9 of 49

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +++ Chapter 2: Installing MQ 9.1 side-by-side to MQ 8.0 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

The MQ 9.1 installation will NOT be designated as Primary.

++ The installation tasks are done as user: root

Note: The user “mqm” does not have the proper authority to install the MQ code.

++ All queue manager data is stored in a common directory structure

Even though the executable code for each version of MQ is stored in a different direc- tory structure, the data for all the queue managers, regardless of the version, is stored in: /var/mqm

++ Downloading the MQ 9.1 code

Download the code from IBM Passport Advantage. Consult the following technote for the Part Numbers that you can use to quickly iden- tify the MQ 9.1 downloadable components for installation: https://www-01.ibm.com/support/docview.wss?uid=swg24044776 Downloading IBM MQ Version 9.1

The MQ 9.1.0.3 rebased code was downloaded from IBM Passport Advantage and it has the cumulation of MQ 9.1.0.0 + 9.1.0.1 + … + 9.1.0.3 The Part Number is: CC2NYML IBM MQ V9.1.0.3 for Linux on x86 64-bit eImage

The downloaded file is named: IBM_MQ_9.1.0.3_LINUX_X86-64.tar.gz

++ Current setup of MQ 8.0

MQ 8.0 is already installed in the default location: /opt/mqm

++ Installing MQ 9.1 into /opt/mqm910

Login as userid root in order to install the code.

To be installed in: /opt/mqm910

Page 10 of 49

The downloaded code from Passport Advantage into a temporary directory, such as: /downloads/mq/9.1.0.3 Unzip the downloaded file: # cd /downloads/mq/9.1.0.3 # tar -zxvf IBM_MQ_9.1.0.3_LINUX_X86-64.tar.gz Go to the newly created subdirectory: # cd MQServer

Accept the license: # ./mqlicense.sh -accept … Agreement accepted: Proceed with install.

The installation instructions indicate that the utilities "pax" and "rpmbuild" must be installed in order to run the crtmqpkg which is needed when installing the code in a directory other than /opt/mqm.

In this system, the utility pax is located in: # which pax /usr/bin/pax

… and it is provided by the following rpm command which displays the name of the RPM package that installed a file. You need to specify the full path of the file. # rpm -qf /usr/bin/pax spax-1.5.2-13.el7.x86_64

And the utility rpmbuild is located in: # which rpmbuild /usr/bin/rpmbuild

… and it is provided by the rpm package … # rpm -qf /usr/bin/rpmbuild rpm-build-4.11.3-40.el7.x86_64

NOTES! - Because this installation is not the first installation on the system, then MQ command "crtmqpkg" must be used to create a unique set of packages to install on the system. - It will take few minutes for the utility to finish. It will display a set of # characters to indicate the progress. - Once it finishes, it will display a completion message.

The crtmqpkg and crtmqfp utilities expect an "Installation identifier" (also called the installation suffix).

Page 11 of 49

It corresponds to the 3rd line in the stanza for each installation under the output of the command "dspmqinst".

For example, the Identifier for Installation1 is: 1 [root@aztlan1 downloads]# /opt/mqm/bin/dspmqinst InstName: Installation1 InstDesc: Identifier: 1 InstPath: /opt/mqm Version: 8.0.0.9 Primary: No State: Available

Another way to look at it is that the identifier, is the last character in the name of the installation. In the above example, Installation1 ends with the number 1, and thus, the identifier or suffix is 1.

For the scenario in this document, the number 1 was already used for installing 8.0. Thus, the number 2 is for installing the next version: 9.1

The input argument "2" is a qualifier and it will be appended to the appropriate file names as "_2".

At this point in the tutorial you are user “root” and in this location: cd /downloads/mq/9.1.0.3/MQServer

Now issue:

./crtmqpkg 2

You will see:

Repackaging IBM MQ for "x86_64" using suffix "2" #  Note: This is NOT the system prompt!! It is just a progress indicator!!

After few minutes you may notice that there are more marks, indicating that the task is progressing: Repackaging IBM MQ for "x86_64" using suffix "2" ####

Wait several minutes and you will see the information message that the Repackaging has completed.

Repackaging IBM MQ for "x86_64" using suffix "2" ########################################### Repackaging complete - rpms are at "/var/tmp/mq_rpms/2/x86_64"

Page 12 of 49

Now cd to the directory mentioned in the output from crtmqpkg, in this case: # cd /var/tmp/mq_rpms/2/x86_64

This is the partial list of the rpms (showing only few entries to avoid cluttering the tutorial with long listings): # ls -1 *.rpm

MQSeriesAMQP_2-9.1.0-3.x86_64.rpm MQSeriesAMS_2-9.1.0-3.x86_64.rpm MQSeriesBCBridge_2-9.1.0-3.x86_64.rpm MQSeriesClient_2-9.1.0-3.x86_64.rpm MQSeriesExplorer_2-9.1.0-3.x86_64.rpm MQSeriesFTAgent_2-9.1.0-3.x86_64.rpm MQSeriesFTBase_2-9.1.0-3.x86_64.rpm

Notice that the filenames have been modified: an _2 has been added after the com- ponent name but before the version:

For example, this is the original name: MQSeriesAMQP-9.1.0-3.x86_64.rpm Now this is the modified name after running crtmqpkg: MQSeriesAMQP_2-9.1.0-3.x86_64.rpm

It is recommended that you invoke the "rpm" command with all the filesets that you want to install, instead of invoking "rpm" separately for each fileset, in that way, you avoid the need to specify the strict order to install the filesets, because some are pre- requisites for others. When you include all the filesets at once, the "rpm" command finds out which is the proper order of installation and proceeds to execute the installation in the precise or- der.

Notes about licenses: - Even though you can install the MQ filesets for AMS, MFT and Telemetry at this time, keep in mind that you will need to purchase specific licenses for these features:

One license for AMS: MQSeriesAMS_2-9.1.0-3.x86_64.rpm

Another license for MFT: MQSeriesFTAgent_2-9.1.0-3.x86_64.rpm MQSeriesFTBase_2-9.1.0-3.x86_64.rpm MQSeriesFTLogger_2-9.1.0-3.x86_64.rpm MQSeriesFTService_2-9.1.0-3.x86_64.rpm MQSeriesFTTools_2-9.1.0-3.x86_64.rpm

Page 13 of 49

Another license for Telemetry: MQSeriesXRService_2-9.1.0-3.x86_64.rpm

- If you do not need the message catalogs other than English, you can delete the cor- responding file sets (*Msg*.rpm). For this techdoc, the installation of the rpm's is performed without including the mes- sage catalog files (MQSeriesMsg*).

- The location of the installed code is specified via the rpm parameter: --prefix /opt/mqm910 Notice that you do not have to create the directory “/opt/mqm910” because the rpm command will create it, if it does not exist already.

Here is the command to install the rpm filesets from crtmqpkg in the directory /

# rpm --prefix /opt/mqm910 -ivh MQ*.rpm

Preparing... ################################# [100%] Updating / installing... 1:MQSeriesRuntime_2-9.1.0-3 ################################# [ 5%] 2:MQSeriesJRE_2-9.1.0-3 ################################# [ 10%] 3:MQSeriesJava_2-9.1.0-3 ################################# [ 14%] 4:MQSeriesServer_2-9.1.0-3 ################################# [ 19%]

WARNING: System settings for this system do not meet recommendations for this product See the log file at "/tmp/mqconfig.32472.log" for more information

5:MQSeriesFTBase_2-9.1.0-3 ################################# [ 24%] 6:MQSeriesFTAgent_2-9.1.0-3 ################################# [ 29%] 7:MQSeriesFTService_2-9.1.0-3 ################################# [ 33%] 8:MQSeriesFTLogger_2-9.1.0-3 ################################# [ 38%] 9:MQSeriesFTTools_2-9.1.0-3 ################################# [ 43%] 10:MQSeriesAMQP_2-9.1.0-3 ################################# [ 48%] 11:MQSeriesAMS_2-9.1.0-3 ################################# [ 52%] 12:MQSeriesWeb_2-9.1.0-3 ################################# [ 57%] 13:MQSeriesXRService_2-9.1.0-3 ################################# [ 62%] 14:MQSeriesBCBridge_2-9.1.0-3 ################################# [ 67%] 15:MQSeriesSFBridge_2-9.1.0-3 ################################# [ 71%] 16:MQSeriesExplorer_2-9.1.0-3 ################################# [ 76%] 17:MQSeriesClient_2-9.1.0-3 ################################# [ 81%] 18:MQSeriesGSKit_2-9.1.0-3 ################################# [ 86%] 19:MQSeriesMan_2-9.1.0-3 ################################# [ 90%] 20:MQSeriesSamples_2-9.1.0-3 ################################# [ 95%] 21:MQSeriesSDK_2-9.1.0-3 ################################# [100%]

Page 14 of 49

The MQ utility “mqconfig” is included with the product and it is ran at the installation time. For more information on this utility see: http://www.ibm.com/support/docview.wss?rs=171&uid=swg21271236 How to configure UNIX and Linux systems for IBM MQ (scrip: mqconfig)

CAVEAT about mqconfig: The mqconfig script provides advice on which settings need to be changed based on our MINIMUM requirements. Just because the script shows that a particular setting meets the minimum require- ments, it does not mean that that is the best value for that setting for your system. You will need configure the parameters to best fit your workload, system resources, etc. Please notice that this script does not take into consideration the workload, etc. of your system.

In this test, the output file mentioned by mqconfig ("/tmp/mqconfig.32472.log") indi- cates the following: mqconfig: Analyzing Red Hat Enterprise Linux Server release 7.6 (Maipo) settings for IBM MQ V9.1

System V Semaphores semmsl (sem:1) 250 semaphores IBM>=32 PASS semmns (sem:2) 19 of 32000 semaphores (0%) IBM>=4096 PASS semopm (sem:3) 32 operations IBM>=32 PASS semmni (sem:4) 5 of 128 sets (3%) IBM>=128 PASS

System V Shared Memory shmmax 18446744073692774399 bytes IBM>=268435456 PASS shmmni 72 of 4096 sets (1%) IBM>=4096 PASS shmall 83772 of 18446744073692774399 pages (0%) IBM>=2097152 PASS

System Settings file-max 2240 of 183638 files (1%) IBM>=524288 FAIL pid_max 325 of 32768 processids (0%) IBM>=32768 PASS threads-max 325 of 14519 threads (2%) IBM>=32768 FAIL

Current User Limits (root) nofile (-Hn) 10240 files IBM>=10240 PASS nofile (-Sn) 10240 files IBM>=10240 PASS nproc (-Hu) 176 of 7259 processes (2%) IBM>=4096 PASS nproc (-Su) 176 of 7259 processes (2%) IBM>=4096 PASS

Page 15 of 49

The tool did not highlight in the report those items that are Warnings or that Failed to pass the minimum requirements, but for illustration purposes, the 2 items are high- lighted above. https://www.ibm.com/support/knowledgecenter/en/SSFKSJ_9.1.0/com.ibm.mq.ins. doc/q008550_.htm IBM MQ 9.1.x / IBM MQ / Installing and uninstalling / Installing and uninstalling IBM MQ on Linux / Preparing the system on Linux / Configuring and tuning the operating system on Linux

Maximum open files. + begin excerpt The maximum number of open file-handles in the system is controlled by the parame- ter fs.file-max

The minimum value for this parameter for a system with two moderate sized queue managers is 524288.

If you intend to run more than two queue managers, or the queue managers are to process a significant workload, you might need to increase this value.

To view the current value of a parameter, log on as a user with root authority, and type sysctl fs.file-max. To add or alter these values, log on as a user with root authority. Open the file /etc/sysctl.conf with a text editor, then add or change the following entry to your chosen value: fs.file-max = 524288 Then save and close the file.

To load these sysctl values immediately, enter the following command sysctl -p. + end exceprt . Similarly for the parameter: kernel.threads-max = 32768

I am including additional entries that are commonly highlighted by mqconfig + begin excerpt

To report the maximum number of open file descriptors per process for the mqm user, login as the mqm user and enter the following values: ulimit -n

Page 16 of 49

For a standard MQ queue manager, set the nofile value for the mqm user to 10240 or more. To set the maximum number of open file descriptors for processes running un- der the mqm user, add the following information to the /etc/security/limits.conf file: mqm hard nofile 10240 mqm soft nofile 10240 + end excerpt

As user "root", I added the above 2 lines into the /etc/security/limits.conf file

Then I logged in as user "rivera", which is an MQ administrator (belongs to the group "mqm"), and which is the userid that is used for most of the MQ administration tasks in the test system and I noticed that the values for the maximum number of open files was not changed:

$ ulimit -Sn 1024 $ ulimit -Hn 8192

As user root, I had to add also the above 2 lines into the /etc/security/limits.conf file customized for "rivera": + begin added contents to the /etc/security/limits.conf file mqm hard nofile 10240 mqm soft nofile 10240 rivera hard nofile 10240 rivera soft nofile 10240 + end

Then I logged out and logged in again as user 'rivera' and issued again the commands: ulimit -Hn 10240 ulimit -Sn 10240

I then ran the "mqconfig" again and this time all the minimum requirements were met. # /opt/mqm910/bin/mqconfig

Page 17 of 49

+ Listing all of the MQ rpms for all versions installed in the host

This list is a bit long, but it could be helpful if you contact IBM MQ Support in case of an installation error. The MQ*Runtime* filesets are highlighted, in order to provide contrast between their names.

MQSeriesRuntime_2-9.1.0-3.x86_64 MQSeriesRuntime-8.0.0-9.x86_64

+++ROOT+++ aztlan1.fyre.ibm.com: /root # rpm -qa | grep -i mq MQSeriesJava-8.0.0-9.x86_64 MQSeriesFTService-8.0.0-9.x86_64 MQSeriesAMS-8.0.0-9.x86_64 MQSeriesClient-8.0.0-9.x86_64 MQSeriesRuntime_2-9.1.0-3.x86_64 MQSeriesFTBase_2-9.1.0-3.x86_64 MQSeriesFTTools_2-9.1.0-3.x86_64 MQSeriesXRService_2-9.1.0-3.x86_64 MQSeriesClient_2-9.1.0-3.x86_64 MQSeriesSDK_2-9.1.0-3.x86_64 MQSeriesJRE-8.0.0-9.x86_64 MQSeriesServer-8.0.0-9.x86_64 MQSeriesFTAgent-8.0.0-9.x86_64 MQSeriesFTLogger-8.0.0-9.x86_64 MQSeriesAMQP-8.0.0-9.x86_64 MQSeriesXRService-8.0.0-9.x86_64 MQSeriesGSKit-8.0.0-9.x86_64 MQSeriesMan-8.0.0-9.x86_64 MQSeriesSDK-8.0.0-9.x86_64 MQSeriesJRE_2-9.1.0-3.x86_64 MQSeriesServer_2-9.1.0-3.x86_64 MQSeriesFTAgent_2-9.1.0-3.x86_64 MQSeriesFTLogger_2-9.1.0-3.x86_64 MQSeriesAMQP_2-9.1.0-3.x86_64 MQSeriesWeb_2-9.1.0-3.x86_64 MQSeriesExplorer_2-9.1.0-3.x86_64 MQSeriesGSKit_2-9.1.0-3.x86_64 MQSeriesSamples_2-9.1.0-3.x86_64 MQSeriesRuntime-8.0.0-9.x86_64 MQSeriesFTBase-8.0.0-9.x86_64 MQSeriesFTTools-8.0.0-9.x86_64 MQSeriesExplorer-8.0.0-9.x86_64 MQSeriesSamples-8.0.0-9.x86_64 MQSeriesJava_2-9.1.0-3.x86_64

Page 18 of 49

MQSeriesFTService_2-9.1.0-3.x86_64 MQSeriesAMS_2-9.1.0-3.x86_64 MQSeriesMan_2-9.1.0-3.x86_64

+ Listing the MQ rpms for only one version: 9.1

# rpm -qa | grep -i mq | grep "9\.1" MQSeriesRuntime_2-9.1.0-3.x86_64 MQSeriesFTBase_2-9.1.0-3.x86_64 MQSeriesFTTools_2-9.1.0-3.x86_64 MQSeriesXRService_2-9.1.0-3.x86_64 MQSeriesClient_2-9.1.0-3.x86_64 MQSeriesSDK_2-9.1.0-3.x86_64 MQSeriesJRE_2-9.1.0-3.x86_64 MQSeriesServer_2-9.1.0-3.x86_64 MQSeriesFTAgent_2-9.1.0-3.x86_64 MQSeriesFTLogger_2-9.1.0-3.x86_64 MQSeriesAMQP_2-9.1.0-3.x86_64 MQSeriesWeb_2-9.1.0-3.x86_64 MQSeriesBCBridge_2-9.1.0-3.x86_64 MQSeriesExplorer_2-9.1.0-3.x86_64 MQSeriesGSKit_2-9.1.0-3.x86_64 MQSeriesSamples_2-9.1.0-3.x86_64 MQSeriesJava_2-9.1.0-3.x86_64 MQSeriesFTService_2-9.1.0-3.x86_64 MQSeriesAMS_2-9.1.0-3.x86_64 MQSeriesSFBridge_2-9.1.0-3.x86_64 MQSeriesMan_2-9.1.0-3.x86_64

Page 19 of 49

+++++++++++++++++++++++++++++++++++++++++++++++++++++++ +++ Chapter 3: Need to run setmqenv to use MQ 9.1 or MQ 8.0 commands ++++++++++++++++++++++++++++++++++++++++++++++++++++++++

None of the MQ installations have been designated as “Primary”.

Now that we have finished with the user root activities, we can login as an MQ administrator (user “mqm”).

You can verify that you have 2 directories that have MQ code: [email protected]: /home/mqm (26) cd /opt [email protected]: /opt (27) ls -dl mqm* dr-xr-xr-x 19 mqm mqm 265 Mar 21 2018 mqm dr-xr-xr-x 22 mqm mqm 297 Feb 4 06:02 mqm910

There is a global file in /etc which provides information on the installations of MQ in the machine: /etc/opt/mqm/mqinst.ini

Let's display the contents of the file: $ cat /etc/opt/mqm/mqinst.ini

+ begin contents of file Installation: Name=Installation1 Description= Identifier=1 FilePath=/opt/mqm Installation: Name=Installation2 Description= Identifier=2 FilePath=/opt/mqm910 + end contents

Page 20 of 49

Do NOT manually alter the contents of this file.

You can use the following MQ command to display all the available installations (the command queries the above mentioned file): [email protected]: /opt (29) dspmqinst InstName: Installation1 InstDesc: Identifier: 1 InstPath: /opt/mqm Version: 8.0.0.9 Primary: No State: Available

InstName: Installation2 InstDesc: Identifier: 2 InstPath: /opt/mqm910 Version: 9.1.0.3 Primary: No State: Available

Notice that the name "Installation1" refers to MQ 8.0 installed in /opt/mqm Notice that the name "Installation2" refers to MQ 9.1 installed in /opt/mqm910

++ Question: How can we display the version of the new installation for MQ 9.1? Answer: Because none of the MQ installation has been designated as “Primary”, you need to specify the “setmqenv” command to setup the proper MQ environment. In this case, run the "setmqenv" command and specify Installation2.

Attempt 1: INCORRECT (the full path was not provided) Notice that setmqenv is not found in the default PATH. $ setmqenv -n Installation2 If 'setmqenv' is not a typo you can run the following command to lookup the package that contains the binary: command-not-found setmqenv -bash: setmqenv: command not found

Attempt 2: INCORRECT (the leading dot and space were not used, thus script was not “sourced”) You will need to specify the full path for setmqenv. In this case, you need to include the new directory for MQ 9.1: $ /opt/mqm910/bin/setmqenv -n Installation2 AMQ8595: The setmqenv command was not preceded by the source command.

Page 21 of 49

Attempt 3: CORRECT (full path and specifying leading dot and space) What went wrong with the previous attempt? You need to "source" (run "inline") the utility setmqenv by specifying a leading . (dot) and a blank: . /opt/mqm910/bin/setmqenv -n Installation2 | | | +--- blank +--- dot

Note: The . (dot) character used at the beginning of each command makes the setmqenv script run in the current shell. Therefore, the environment changes made by the setmqenv script are applied to the current shell. Without the . character, the environment variables are changed in another shell, and the changes are not applied to the shell from which the command is issued.

Now that we issued the correct setmqenv, let's try again to display the version:

$ dspmqver Name: IBM MQ Version: 9.1.0.3 Level: p910-003-190717 BuildType: IKAP - (Production) Platform: IBM MQ for Linux (x86-64 platform) Mode: 64-bit O/S: Linux 3.10.0-1062.4.1.el7.x86_64 InstName: Installation2 InstDesc: Primary: No InstPath: /opt/mqm910 DataPath: /var/mqm MaxCmdLevel: 910 LicenseType: Production Note there are a number (1) of other installations, use the '-i' parameter to display them.

Before running "setmqenv", the following command did not return any entries for en- vironment variables that have "MQ" or "mq" in the names:

$ set | grep -i mq (no items returned)

Page 22 of 49

After running ". /opt/mqm910/bin/setmqenv -n Installation2", now the set command shows the environment for using the MQ 9.1.0 code:

$ set | grep -i mq CLASSPATH=.:/opt/mqm910/java/lib/com.ibm.mq.jar:/opt/mqm910/java/lib/com.ib m.mqjms.jar:/opt/mqm910/java/lib/com.ibm.mq.allclient.jar:/opt/mqm910/samp/ wmqjava/samples:/opt/mqm910/samp/jms/samples MANPATH=/opt/mqm910/man::/usr/man MQ_DATA_PATH=/var/mqm MQ_ENV_MODE=64 MQ_INSTALLATION_NAME=Installation2 MQ_INSTALLATION_PATH=/opt/mqm910 MQ_JAVA_DATA_PATH=/var/mqm MQ_JAVA_INSTALL_PATH=/opt/mqm910/java MQ_JAVA_LIB_PATH=/opt/mqm910/java/lib64 MQ_JRE_PATH=/opt/mqm910/java/jre64/jre MQ_RETVAL=0 PATH=/opt/mqm910/bin:/usr/lib64/qt- 3.3/bin:/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/usr/local/bin:/home /mqm/bin:.:/sbin::/home/mqm/.local/bin:/home/mqm/bin

+ Hint: You can create a script that will run the setmqenv command. If you have installed the samples in /usr/local/bin, then you can use set-mq-910.

======begin script # Name: set-mq-910 # Purpose: to setup the environment to run MQ 9.1.0 . /opt/mqm910/bin/setmqenv -n Installation2 # Additional MQ directories for the PATH export PATH=$PATH:$MQ_INSTALLATION_PATH/java/bin:$MQ_INSTALLATION_PATH/samp/bi n:$MQ_INSTALLATION_PATH/samp/jms/samples: # Add local directory for running Java/JMS programs export CLASSPATH=$CLASSPATH:. # Display the full fix pack level dspmqver -f 2 # end ======end of script Notice that additional directories are included in the PATH. This is going to be ex- plained later. The setmqenv will setup the proper directory for MQ_INSTALLATION_PATH.

Page 23 of 49

You will need to invoke the script with the leading dot!

. set-mq-910 | | | +--- blank +--- dot

+++ Hint for your bashrc or profile

To help you remember which command to execute to set the desired MQ environ- ment, you can add the following lines into your bashrc or profile:

# MQ 8.0 and 9.1 echo "For MQ 8.0 run: . set-mq-80" echo "For MQ 9.1.0 run: . set-mq-910"

Page 24 of 49

++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +++ Chapter 4: Creating a queue manager under 9.1 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Before we create a queue manager under 9.1, let's show the current queue managers created under MQ 8.0

Ensure to use the MQ 9.1.0 code: [email protected]: /home/mqm $ . set-mq-910 Version: 9.1.0.3 [email protected]: /opt $ dspmq QMNAME(QM80) STATUS(Running) QMNAME(QMMIG) STATUS(Running)

The following invocation shows additional information for the queue managers: - the installation name: INSTNAME(Installation1) - the path of the MQ 8.0 code: INSTPATH(/opt/mqm) - and the version: INSTVER(8.0.0.9)

$ dspmq -o installation QMNAME(QM80) INSTNAME(Installation1) INSTPATH(/opt/mqm) INSTVER(8.0.0.9) QMNAME(QMMIG) INSTNAME(Installation1) INSTPATH(/opt/mqm) INSTVER(8.0.0.9)

Let's create a new queue manager.

Notice the new line shown in bold font that indicates that Installation2 is used:

$ crtmqm -u SYSTEM.DEAD.LETTER.QUEUE QM910 IBM MQ queue manager created. Directory '/var/mqm/qmgrs/QM910' created. The queue manager is associated with installation 'Installation2'. Creating or replacing default objects for queue manager 'QM910'. Default objects statistics : 84 created. 0 replaced. 0 failed. Completing setup. Setup completed.

Page 25 of 49

Then start the queue manager. Notice the lines that indicate the installation and the version under which the queue manager is running:

$ strmqm QM910 IBM MQ queue manager 'QM910' starting. The queue manager is associated with installation 'Installation2'. 5 log records accessed on queue manager 'QM910' during the log replay phase. Log replay for queue manager 'QM910' complete. Transaction manager state recovered for queue manager 'QM910'. IBM MQ queue manager 'QM910' started using V9.1.0.3.

Let's display again the installed queue managers and showing the installation, code path and version. Notice the values for the new queue manager, which reflect the as- sociation with the MQ 9.1.0 installation.

$ dspmq -o installation QMNAME(QM80) INSTNAME(Installation1) INSTPATH(/opt/mqm) INSTVER(8.0.0.9) QMNAME(QMMIG) INSTNAME(Installation1) INSTPATH(/opt/mqm) INSTVER(8.0.0.9) QMNAME(QM910) INSTNAME(Installation2) INSTPATH(/opt/mqm910) INSTVER(9.1.0.3)

Page 26 of 49

++ Cannot use MQ 9.1.0 administrative commands to run an MQ 8.0 queue manager

You cannot use MQ 9.1.0 administrative commands to run an MQ 8.0 queue manager

Corollary: And vice versa, you cannot use MQ 8.0 administrative commands to run an MQ 9.1.0 queue manager.

Just for the sake of illustrating that each queue manager needs to be run with the proper level of the code, the following shows the error message when trying to use the MQ 9.1.0 endmqm command on a queue manager that was started with MQ 8.0:

Right now, the environment has been set to use MQ 9.1.0 commands.

$ . set-mq-910 Version: 9.1.0.3

$ endmqm -i QM80 AMQ5691E: Queue manager 'QM80' is associated with a different installation ('Installation1').

Similarly, if we enable now the MQ 8.0 commands …

$ . set-mq-80 Version: 8.0.0.9

$ endmqm -i QM910 AMQ5691: Queue manager 'QM910' is associated with a different installation ('Installation2').

Page 27 of 49

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +++ Chapter 5: Remote access to the new MQ 9.1 queue manager ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Let's customize the queue manager to allow it to be monitored remotely by the MQ Explorer and to create a local queue Q1 for initial testing. The following tutorial provides more details. https://www.ibm.com/support/pages/node/1135522 Configuring MQ to use a dedicated Listener, Channel and Queue in Linux

Here is an excerpt of the commands.

$ runmqsc QM91

## Define a listener for all users. The default is port 1414. define listener(LISTENER) trptype(tcp) control(qmgr) port(1414) start listener(LISTENER)

## Define a channel to be used by a remote MQ Explorer define channel(SYSTEM.ADMIN.SVRCONN) chltype(SVRCONN)

## Define test queue: define qlocal(Q1)

## Security note: the following ALTER is not suitable for PRODUCTION but might be suitable for TEST queue managers. ## For testing queue managers: disable userid/password for remote users ALTER AUTHINFO(SYSTEM.DEFAULT.AUTHINFO.IDPWOS) + AUTHTYPE(IDPWOS) CHCKCLNT(OPTIONAL) REFRESH SECURITY TYPE(CONNAUTH)

## Security note: the following CHLAUTH records may not be suitable for PRODUCTION but might be suitable for TEST queue managers. ## For testing queue managers: allow MQ Administrator to remotely access the queue manager SET CHLAUTH(*) TYPE(BLOCKUSER) USERLIST('nobody','*MQADMIN') SET CHLAUTH(SYSTEM.ADMIN.*) TYPE(BLOCKUSER) USERLIST('nobody') SET CHLAUTH(SYSTEM.DEF.SVRCONN) TYPE(ADDRESSMAP) ADDRESS(*) + USERSRC(CHANNEL) SET CHLAUTH(SYSTEM.DEF.*) TYPE(BLOCKUSER) USERLIST('nobody') end

Now you start the MQ Explorer from a remote host, using a userid that is an MQ Administrator in the host that has the newly created queue manager.

Page 28 of 49

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +++ Chapter 6: Migrating an MQ 8.0 queue manager to MQ 9.1 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

After installing MQ 9.1, you now want to migrate/upgrade an MQ 8.0 queue manager to be used with MQ 9.1.

It is necessary to perform 2 steps: 1: Use “setmqm” to associate the queue manager with the desired installation (MQ version). 2: Use “strmqm” under the desired version, which will update the data of the queue manager for the new version.

For this tutorial, the queue manager QMMIG which was created with MQ 8.0 is going to be used as illustration of the upgrade procedure.

+ Take a backup of the queue manager:

Once a queue manager has been migrated to MQ 9.1, it is no longer possible to use it with the previous version of MQ. The migration process changes a number of files and object definitions, and it is not possible to go back. If you are running MQ 8.0 and you want to upgrade to MQ 9.1, then you must do a backup before upgrading. When you use the first strmqm to start the queue manager at version 9.1, the strmqm program will change the formats of certain MQ object files and this cannot be reversed.

For more information on the backup and restore activities, please see: https://www.ibm.com/support/knowledgecenter/SSFKSJ_9.1.0/com.ibm.mq.con.doc /q018580_.htm

IBM MQ 9.1.x / IBM MQ / Configuring / Configuring high availability, recovery and re- start / Backing up and restoring IBM® MQ queue manager data

+ For MQ 7.0: Use the “saveqmgr” utility from the SupportPac MS03

Use the saveqmgr command to capture the object definitions and authorities. This utility is provided with the following supportpac: http://www-1.ibm.com/support/docview.wss?rs=171&uid=swg24000673 MS03: WebSphere MQ - Save Queue Manager object definitions using PCFs

Page 29 of 49

Example: The following saves both the objects and the authority records (each in one single line):

UNIX: saveqmgr -m QMgr -f /tmp/mq/qm_data.mqs -z /tmp/mq/qm_auth.sh

Windows: saveqmgr.exe -m QMgr -f C:\temp\mq\qm_data.mqs -z C:\temp\mq\qm_auth.bat + For MQ 7.1 or later: Use new feature dmpmqcfg

The dmpmqcfg tool is new in MQ 7.1 and it is an alternative to the SupportPac MS03. Here are the main references from the MQ 7.1 Information Center. https://www.ibm.com/support/knowledgecenter/SSFKSJ_9.1.0/com.ibm.mq.ref.adm .doc/q083160_.htm IBM MQ 9.1.x / IBM MQ / Reference / Administration reference / IBM MQ control commands reference / dmpmqcfg (dump queue manager configuration) https://www.ibm.com/support/knowledgecenter/SSFKSJ_9.1.0/com.ibm.mq.con.doc /q018650_.htm IBM MQ 9.1.x / IBM MQ / Configuring / Configuring high availability, recovery and re- start / Backing up and restoring IBM MQ queue manager data Backing up queue manager configuration

Summary:

Default - only attributes that are different than the default (except setmqaut, which are not included in the output) dmpmqcfg -m QMgr > QMgr.dmpmqcfg.out.mqsc

Specify all attributes, including default ones (except setmqaut, which are not includ- ed in the output) dmpmqcfg -m QMgr -a > QMgr.dmpmqcfg.out.all.mqsc

Capture the authentication records in setmqaut format Windows: dmpmqcfg -m QMgr -o setmqaut > QMgr.dmpmqcfg.setmqaut.bat Unix: dmpmqcfg -m QMgr -o setmqaut > QMgr.dmpmqcfg.setmqaut.sh

Note: The output file that has the setmqaut commands, includes the name of the queue manager in each command. Thus, if you want to restore the commands into a different queue manager, you will need to edit the file and specify the desired queue manager name.

Page 30 of 49

To restore - play back the commands for runmqsc:

runmqsc Qmgr < QMgr.dmpmqcfg.out.mqsc or runmqsc Qmgr < QMgr.dmpmqcfg.out.all.mqsc

To restore the setmqaut commands: Windows: QMgr.dmpmqcfg.setmqaut.bat Unix: chmod 755 QMgr.dmpmqcfg.setmqaut.sh ./ QMgr.dmpmqcfg.setmqaut.sh

Because the queue manager to be migrated is at MQ 8.0, you need to run the script that sets the running environment to MQ 8.0:

$ . set-mq-80

$ dspmqver Name: WebSphere MQ Version: 8.0.0.9

Ensure that the queue manager is running:

$ which dspmq /opt/mqm/bin/dspmq

$ dspmq -m QMMIG QMNAME(QMMIG) STATUS(Running)

Notice that the value for the attribute CMDLEVEL for the queue manager is 800:

$ runmqsc QMMIG display qmgr cmdlevel version 1 : display qmgr cmdlevel AMQ8408: Display Queue Manager details. QMNAME(QMMIG) CMDLEVEL(800) VERSION(08000009) end

Notice that the qmstatus.ini has a short amount of information for QMMIG in the stan- za " QueueManagerStatus":

$ cat /var/mqm/qmgrs/QMMIG/qmstatus.ini … QueueManagerStatus: CurrentStatus=Running PermitStandby=No

Page 31 of 49

PermitFailover=Yes PlatformSignature=20497 PlatformString=Linux 3.10.0-1062.4.1.el7.x86_64 Version=8.0.0.9 MinimumRequiredVersion=8.0.0.0 …

Stop the queue manager

$ endmqm -i QMMIG WebSphere MQ queue manager 'QMMIG' ending. WebSphere MQ queue manager 'QMMIG' ended. Change the environment to run the MQ 9.1 commands

$ . set-mq-910

$ dspmqver Name: IBM MQ Version: 9.1.0.3

Display the status of the queue managers.

$ which dspmq /opt/mqm910/bin/dspmq

$ dspmq QMNAME(QM80) STATUS(Running) QMNAME(QMMIG) STATUS(Ended immediately) QMNAME(QM910) STATUS(Running)

Use strmqm to start the queue manager. Because the queue manager was last used with MQ 8.0, then the strmqm at MQ 9.1 will proceed to upgrade the queue manager.

$ strmqm QMMIG AMQ5691E: Queue manager 'QMMIG' is associated with a different installation ('Installation1').

Hum, what happened! Why did the strmqm program from MQ 9.1 did not handle the request as expected? Because the queue manager QMMIG is still associated with MQ 8.0. It is necessary to reassign QMMIG from MQ 8.0 to MQ 9.1 via the command setmqm.

Page 32 of 49

+ The following MQ command: dspmqinf QMMIG … shows the stanza for the desired queue manager that exists in the file that has the index of the queue managers… /var/mqm/mqs.ini

In this case, the output is:

$ dspmqinf QMMIG QueueManager: Name=QMMIG Directory=QMMIG Prefix=/var/mqm InstallationName=Installation1

Notice that this queue manager is associated with Installation1

To find out the MQ version for Installation1, use:

$ dspmqinst -n Installation1 InstName: Installation1 InstDesc: Identifier: 1 InstPath: /opt/mqm Version: 8.0.0.9 Primary: No State: Available

OK, the previous 2 commands indicate that the queue manager QMMIG is associated with Installation1, which is the installation for MQ 8.0.0.9.

To see all the MQ installations, you can use the following command:

$ dspmqinst InstName: Installation1 InstDesc: Identifier: 1 InstPath: /opt/mqm Version: 8.0.0.9 Primary: No State: Available

InstName: Installation2 InstDesc: Identifier: 2 InstPath: /opt/mqm910

Page 33 of 49

Version: 9.1.0.3 Primary: No State: Available

Notice that Installation2 is for MQ 9.1.

Therefore, we need to: - disassociate the queue manager QMMIG from Installation1 (MQ 8.0) and - associate it with Installation2 (MQ 9.1).

+ Question: What action needs to be done to associate the desired queue manager to the installa- tion for MQ 9.1?

Answer: Need to specify the MQ command: setmqm

The following command associates the desired queue manager with Installation2 (MQ 9.1):

$ setmqm -m QMMIG -n Installation2 The setmqm command completed successfully.

Now the queue manager is associated with Installation2.

$ dspmqinf QMMIG QueueManager: Name=QMMIG Directory=QMMIG Prefix=/var/mqm InstallationName=Installation2

Proceed to start the queue manager. Because this is the first time that the MQ strmqm 9.1 command is being issued on a queue manager that a prior use with an older release (8.0), then it will do a migra- tion:

$ strmqm QMMIG IBM MQ queue manager 'QMMIG' starting. The queue manager is associated with installation 'Installation2'. 5 log records accessed on queue manager 'QMMIG' during the log replay phase. Log replay for queue manager 'QMMIG' complete. Transaction manager state recovered for queue manager 'QMMIG'. Migrating objects for queue manager 'QMMIG'. Default objects statistics : 5 created. 0 replaced. 0 failed. IBM MQ queue manager 'QMMIG' started using V9.1.0.3.

Page 34 of 49

Notice the version information in the qmstatus.ini

$ cat /var/mqm/qmgrs/QMMIG/qmstatus.ini … QueueManagerStatus: CurrentStatus=Running PermitStandby=No PermitFailover=Yes PlatformSignature=20497 PlatformString=Linux 3.10.0-1062.4.1.el7.x86_64 Version=9.1.0.3 MinimumRequiredVersion=9.1.0.0 …

Now display the attributes for the queue manager using runmqsc. Notice the CMDLEVEL and the new VERSION fields:

$ runmqsc QMMIG display qmgr cmdlevel version 1 : display qmgr cmdlevel version AMQ8408I: Display Queue Manager details. QMNAME(QMMIG) CMDLEVEL(910) VERSION(09010003) end

+ For more information on the new attributes and queues that were added in MQ 9.0 and MQ 9.1, see the following technotes: http://www.ibm.com/support/docview.wss?uid=swg21578742 New WebSphere MQ 7.1, 7.5, 8.0, 9.0 and 9.1 attributes in DISPLAY QMGR for new or migrated queue managers http://www.ibm.com/support/docview.wss?uid=swg21608033 New SYSTEM queues added in WebSphere MQ 7.1, 7.5, 8.0, 9.0, 9.0.1 and 9.1 http://www-01.ibm.com/support/docview.wss?uid=swg21620936 New objects and new attributes for objects in WebSphere MQ 7.1, 7.5, 8.0, 9.0, 9.0.1 and 9.1

Page 35 of 49

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +++ Chapter 7: Installing Fix Pack 8.0.0.14 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

This chapter describes the steps to install the fix pack 8.0.0.14 on top of the installed 8.0.0.9 on a system that has multi-version installations of MQ.

For this scenario, there is another installed version (9.1) and the queue managers running under that other version will NOT be stopped in order to demonstrate that you can continue using those other versions while performing maintenance activities for 8.0.x.x.

In this case, QMMIG and QM910 are running under MQ 9.1, while QM80 is running under MQ 8.0: $ dspmq -o installation -s QMNAME(QM80) STATUS(Running) INSTNAME(Installation1) INSTPATH(/opt/mqm) INSTVER(8.0.0.9) QMNAME(QMMIG) STATUS(Running) INSTNAME(Installation2) INSTPATH(/opt/mqm910) INSTVER(9.1.0.3) QMNAME(QM910) STATUS(Running) INSTNAME(Installation2) INSTPATH(/opt/mqm910) INSTVER(9.1.0.3)

++ Need to stop the MQ 8.0 processes before installing the fix pack

The following section of the MQ 8.0 online documentation describes the steps to stop the MQ processes prior to performing maintenance to the MQ code (such as applying a fix pack). https://www.ibm.com/support/knowledgecenter/en/SSFKSJ_8.0.0/com.ibm.mq.mig. doc/q008050_.htm IBM MQ 8.0.0 / IBM MQ / Migrating and upgrading IBM MQ / IBM MQ maintenance tasks (On platforms other than z/OS ) / Applying and removing maintenance level updates (On platforms other than z/OS ) / Linux: Applying maintenance level updates on IBM MQ

Here is a summary and excerpt of the main steps.

Log in as a user in group mqm. a) If you created the shell script "set-mq-80" mentioned earlier in this document, then issue it: . set-mq-80 b) If you did not create the script, then issue the following command: . /opt/mqm/bin/setmqenv -n Installation1

Stop all applications using the MQ installation for 8.0. In this case we know that the queue manager QM80 is running under MQ 8.0 endmqm -i QM80

Page 36 of 49

++ Downloading the fix pack

The following technote announces the fix pack 8.0.0.14 and provides links to the IBM Fix Central to download the appropriate filesets: https://www.ibm.com/support/pages/node/712857 Recommended Fixes for IBM MQ

In particular for MQ 8.0.0.14, the link is: https://www.ibm.com/support/pages/node/1282120 Fix Pack 8.0.0.14 for WebSphere MQ v8

In this scenario, the file set for 8.0.0.14 for Linux x86 64-bit was downloaded into the following directory:

/downloads/mq80014fp

Log in as root.

+++ROOT+++ aztlan1.fyre.ibm.com: /downloads/mq80014fp # ls 8.0.0-WS-MQ-LinuxX64-FP0014.tar.gz

You can issue the following command to extract the files: tar -zxvf 8.0.0-WS-MQ-LinuxX64-FP0014.tar.gz

You will see many files that are extracted: crtmqfp MQSeriesAMQP-U80014-8.0.0-14.x86_64.rpm MQSeriesAMS-U80014-8.0.0-14.x86_64.rpm MQSeriesClient-U80014-8.0.0-14.x86_64.rpm …

The following technote has links to different technotes that list the fixes addressed in a given fix pack. http://www.ibm.com/support/docview.wss?rs=171&uid=swg21254675 Fixes by version for WebSphere MQ

In particular for MQ 8.0: https://www.ibm.com/support/pages/node/713099 Fix list for IBM MQ Version 8.0

Page 37 of 49

++ Installing the code

To find out which packages are installed on your machine, enter the following:

Notice that the list includes filesets for all versions and fix packs:

# rpm -qa | grep -i mq MQSeriesJava-8.0.0-9.x86_64 MQSeriesFTService-8.0.0-9.x86_64 MQSeriesAMS-8.0.0-9.x86_64 MQSeriesClient-8.0.0-9.x86_64 MQSeriesRuntime_2-9.1.0-3.x86_64 MQSeriesFTBase_2-9.1.0-3.x86_64 ...

To filter the list for the MQ 8.0.0.x filesets, an extended command is used.

# rpm -qa | grep -i mq | grep "8\.0" MQSeriesJava-8.0.0-9.x86_64 MQSeriesFTService-8.0.0-9.x86_64 ...

Because this Fix Pack is intended to be for Installation1, then do NOT perform the step for “crtmqfp”, which is the step needed for preparing the Fix Packs for installa- tions other than Installation1.

In this scenario, the *Msg* rpm files were not installed previously, and thus, they will be deleted:

# rm -f *Msg*rpm

Because the MQ 8.0.0.14 filesets have the unique identifier of U80014, then it can be used for the wildcard:

# rpm -ivh MQSeries*U80014*.rpm

Notes: - You must apply all packages in a maintenance update that correspond to those packages that are currently installed on your system.

You will see a similar output that shows the installation progress.

Preparing... ################################# [100%] Updating / installing... 1:MQSeriesRuntime-U80014-8.0.0-14 ################################# [ 6%] 2:MQSeriesJRE-U80014-8.0.0-14 ################################# [ 11%]

Page 38 of 49

3:MQSeriesJava-U80014-8.0.0-14 ################################# [ 17%] 4:MQSeriesServer-U80014-8.0.0-14 ################################# [ 22%] 5:MQSeriesFTBase-U80014-8.0.0-14 ################################# [ 28%] 6:MQSeriesFTAgent-U80014-8.0.0-14 ################################# [ 33%] 7:MQSeriesFTService-U80014-8.0.0-14################################# [ 39%] 8:MQSeriesFTLogger-U80014-8.0.0-14 ################################# [ 44%] 9:MQSeriesFTTools-U80014-8.0.0-14 ################################# [ 50%] 10:MQSeriesAMQP-U80014-8.0.0-14 ################################# [ 56%] 11:MQSeriesAMS-U80014-8.0.0-14 ################################# [ 61%] 12:MQSeriesXRService-U80014-8.0.0-14################################# [ 67%] 13:MQSeriesGSKit-U80014-8.0.0-14 ################################# [ 72%] 14:MQSeriesClient-U80014-8.0.0-14 ################################# [ 78%] 15:MQSeriesExplorer-U80014-8.0.0-14 ################################# [ 83%] 16:MQSeriesMan-U80014-8.0.0-14 ################################# [ 89%] 17:MQSeriesSamples-U80014-8.0.0-14 ################################# [ 94%] 18:MQSeriesSDK-U80014-8.0.0-14 ################################# [100%].

Now let’s query for the recently installed filesets:

# rpm -qa | grep -i mq | grep "U80014" MQSeriesServer-U80014-8.0.0-14.x86_64 MQSeriesFTLogger-U80014-8.0.0-14.x86_64 MQSeriesXRService-U80014-8.0.0-14.x86_64 MQSeriesMan-U80014-8.0.0-14.x86_64 ...

Logoff as root

++ Upgrading a queue manager 8.0.0.9 to 8.0.0.14

Logon as an MQ administrator.

Setup the MQ environment to the installation that corresponds to 8.0.

$ . set-mq-80

Verify that dspmqver shows that the level is fix pack 8.0.0.14:

$ dspmqver

Name: WebSphere MQ Version: 8.0.0.14

Page 39 of 49

Start the desired MQ 8.0 queue manager. $ strmqm QM80 WebSphere MQ queue manager 'QM80' starting. The queue manager is associated with installation 'Installation1'. 5 log records accessed on queue manager 'QM80' during the log replay phase. Log replay for queue manager 'QM80' complete. Transaction manager state recovered for queue manager 'QM80'. WebSphere MQ queue manager 'QM80' started using V8.0.0.14. Verify that the level of the queue manager is now 8.0.0.14:

$ runmqsc QM80 display qmgr cmdlevel version 1 : display qmgr cmdlevel version AMQ8408: Display Queue Manager details. QMNAME(QM80) CMDLEVEL(800) VERSION(08000014)

Notice that the value in the attribute VERSION needs to be interpreted as with dots separating every 2nd digit: 08.00.00.14

Page 40 of 49

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +++ Chapter 8: Installing Fix Pack 9.1.0.4 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

This chapter describes the steps to install the fix pack 9.1.0.4 on top of the installed 9.1.0.3 on a system that has multi-version installations of MQ.

For this scenario, there is another installed version (8.0) and the queue managers running under that other version will NOT be stopped in order to demonstrate that you can continue using those other versions while performing maintenance activities for 9.1.0.x.

In this case, QMMIG and QM910 are running under MQ 9.1, while QM80 is running under MQ 8.0:

$ dspmq -o installation -s QMNAME(QM80) STATUS(Running) INSTNAME(Installation1) INSTPATH(/opt/mqm) INSTVER(8.0.0.14) QMNAME(QMMIG) STATUS(Running) INSTNAME(Installation2) INSTPATH(/opt/mqm910) INSTVER(9.1.0.3) QMNAME(QM910) STATUS(Running) INSTNAME(Installation2) INSTPATH(/opt/mqm910) INSTVER(9.1.0.3)

++ Need to stop the MQ 9.1 processes before installing the fix pack

The following section of the MQ 9.1 online documentation describes the steps to stop the MQ processes prior to performing maintenance to the MQ code (such as applying a fix pack). https://www.ibm.com/support/knowledgecenter/en/SSFKSJ_9.1.0/com.ibm.mq.mig. doc/q008050_.htm IBM MQ 9.1.x / IBM MQ / Maintaining and migrating / Applying maintenance to IBM MQ / Applying and removing maintenance on UNIX and Linux / Applying maintenance level updates on Linux

Here is a summary and excerpt of the main steps.

Log in as a user in group mqm.

If you created the shell script "set-mq-910" mentioned earlier in this document, then issue it: . set-mq-910

If you did not create the script, then issue the following command: . /opt/mqm/bin/setmqenv -n Installation2

Page 41 of 49

Stop all applications using the MQ installation for 9.1. In this case we know that the queue managers QMMIG and QM910 are running under MQ 9.1 endmqm -i QMMIG endmqm -i QM910

++ Downloading the fix pack

The following technote announces the fix pack 9.1.0.4 and provides links to the IBM Fix Central to download the appropriate filesets: https://www.ibm.com/support/pages/node/712857 Recommended Fixes for IBM MQ

In particular for MQ 9.1.0.4, the link is: https://www.ibm.com/support/pages/node/1119051 Downloading IBM MQ Version 9.1.0.4

In this scenario, the file set for 9.1.0.4 for Linux x86 64-bit was downloaded into the following directory:

/downloads/mq9104fp

Log in as root.

+++ROOT+++ aztlan1.fyre.ibm.com: /downloads/mq80014fp # ls 9.1.0-IBM-MQ-LinuxX64-FP0004.tar.gz

You can issue the following command to extract the files: tar -zxvf 9.1.0-IBM-MQ-LinuxX64-FP0004.tar.gz

You will see many files that are extracted:

Advanced crtmqfp MQSeriesAMQP-U9104-9.1.0-4.x86_64.rpm MQSeriesAMS-U9104-9.1.0-4.x86_64.rpm MQSeriesBCBridge-U9104-9.1.0-4.x86_64.rp …

Page 42 of 49

The following technote has links to different technotes that list the fixes addressed in a given fix pack. http://www.ibm.com/support/docview.wss?rs=171&uid=swg21254675 Fixes by version for WebSphere MQ

In particular for MQ 9.1: https://www.ibm.com/support/pages/node/740167 Fix list for IBM MQ Version 9.1 LTS

++ Installing the code

To find out which packages are installed on your machine, enter the following:

Notice that the list includes filesets for all versions and fix packs:

# rpm -qa | grep -i mq MQSeriesJava-8.0.0-9.x86_64 MQSeriesRuntime_2-9.1.0-3.x86_64 MQSeriesServer-U80014-8.0.0-14.x86_64 ...

To filter the list for the MQ 9.1.0.x filesets, an extended command is used. The string to search for is "_2" (underscore 2), because the number "2" was used origi- nally when the MQ 9.1 "crtmqpkg 2" command was issued to indicate that the suffix for the MQ 9.1 files will be "_2". This identifier 2 is the number used in the Installation Name: Installation2

# rpm -qa | grep -i mq | grep _2 MQSeriesRuntime_2-9.1.0-3.x86_64 MQSeriesFTBase_2-9.1.0-3.x86_64 MQSeriesFTTools_2-9.1.0-3.x86_64 ...

Because this fix pack is to be applied on a installation which is not the first installa- tion on the system (in this case is Installation2), run the crtmqfp (not the crtmqpkg) command to create and use a unique set of packages to install on the system. In order for the crtmqfp command to run on Linux, the pax command must be in- stalled.

Enter the command “crtmqfp suffix” where suffix should be same as the suffix used during renaming of base level MQ installation. Note: In this case, the suffix is "2".

Page 43 of 49

Change to the directory where the MQ 8.0.0.1 tar.gz file was downloaded and ex- tracted:

# cd /downloads/mq9104fp

In this scenario, the *Msg* rpm files were not installed previously, and thus, they will be deleted:

# rm -f *Msg*rpm

Run the crtmqfp command.

Note!!: It will take few minutes for the utility to finish. It will display a set of # characters to indicate the progress. Once it is finished, it will display a completion message.

+++ROOT+++ aztlan1.fyre.ibm.com: /downloads/mq9104fp # ./crtmqfp 2 Repackaging IBM MQ for "x86_64" using suffix "2" #  This is NOT the system prompt!! It is just a progress indicator!!

After few minutes you may notice that there are more marks, indicating that the task is progressing: Repackaging IBM MQ for "x86_64" using suffix "2" ####

Wait several minutes and you will see the information message that the Repackaging has completed.

Repackaging IBM MQ for "x86_64" using suffix "2" ########################################### Repackaging complete - rpms are at "/var/tmp/mq_rpms/2/x86_64"

Set your current directory to the location specified when the crtmqfp command com- pletes. This directory is a subdirectory of /var/tmp/mq_rpms, in which the unique set of packages is created. The packages have the suffix value contained within the file- name. cd /var/tmp/mq_rpms/2/x86_64

Note that the list includes all other filesets for MQ 9.1 that were created by crtmqfp.

# ls MQSeriesAMQP_2-9.1.0-3.x86_64.rpm MQSeriesAMQP_2-U9104-9.1.0-4.x86_64.rpm … (and many more)

Page 44 of 49

During the actual installation process it is necessary to narrow down the list for 9.1.0.4, which have a unique identifier of U9104.

The MQ 9.1 code was NOT installed in the default location /opt/mqm (MQ 8.0 was in- stalled there). It is necessary to confirm the location. As user “root” you can issue the following command:

# /opt/mqm/bin/dspmqinst -n Installation2 InstName: Installation2 InstDesc: Identifier: 2 InstPath: /opt/mqm910 Version: 9.1.0.3 Primary: No State: Available

Notice that the InstPath refers to the Installation Path and in this case is: /opt/mqm910

To install on non-default location, use the “rpm --prefix” option and specify the loca- tion. In this case, the non-default location is /opt/mqm910.

# rpm --prefix /opt/mqm910 -ivh MQSeries*U9104*.rpm

Notes: - You must apply all packages in a maintenance update that correspond to those packages that are currently installed on your system.

You will see a similar output that shows the installation progress.

Preparing... ################################# [100%] Updating / installing... 1:MQSeriesRuntime_2-U9104-9.1.0-4 ################################# [ 5%] 2:MQSeriesJRE_2-U9104-9.1.0-4 ################################# [ 10%] 3:MQSeriesJava_2-U9104-9.1.0-4 ################################# [ 14%] 4:MQSeriesServer_2-U9104-9.1.0-4 ################################# [ 19%] 5:MQSeriesFTBase_2-U9104-9.1.0-4 ################################# [ 24%] 6:MQSeriesFTAgent_2-U9104-9.1.0-4 ################################# [ 29%] 7:MQSeriesFTService_2-U9104-9.1.0-4################################# [ 33%] 8:MQSeriesFTLogger_2-U9104-9.1.0-4 ################################# [ 38%] 9:MQSeriesFTTools_2-U9104-9.1.0-4 ################################# [ 43%] 10:MQSeriesAMQP_2-U9104-9.1.0-4 ################################# [ 48%] 11:MQSeriesAMS_2-U9104-9.1.0-4 ################################# [ 52%] 12:MQSeriesXRService_2-U9104-9.1.0-4################################# [ 57%] 13:MQSeriesBCBridge_2-U9104-9.1.0-4 ################################# [ 62%] 14:MQSeriesSFBridge_2-U9104-9.1.0-4 ################################# [ 67%]

Page 45 of 49

15:MQSeriesClient_2-U9104-9.1.0-4 ################################# [ 71%] 16:MQSeriesExplorer_2-U9104-9.1.0-4 ################################# [ 76%] 17:MQSeriesGSKit_2-U9104-9.1.0-4 ################################# [ 81%] 18:MQSeriesMan_2-U9104-9.1.0-4 ################################# [ 86%] 19:MQSeriesSamples_2-U9104-9.1.0-4 ################################# [ 90%] 20:MQSeriesSDK_2-U9104-9.1.0-4 ################################# [ 95%] 21:MQSeriesWeb_2-U9104-9.1.0-4 ################################# [100%]

Now query the filesets for MQ that have the installation identifier of “_2”:

# rpm -qa | grep -i mq | grep _2 MQSeriesGSKit_2-U9104-9.1.0-4.x86_64 MQSeriesFTBase_2-9.1.0-3.x86_64 ...

Logoff as root

++ Upgrading a queue manager 9.1.0.3 to 9.1.0.4

Logon as an MQ administrator.

Setup the MQ environment to the installation that corresponds to 9.1. If you created the shell script "set-mq-910" mentioned earlier in this document, then issue it:

$ . set-mq-910

Verify that dspmqver shows that the level is fix pack 9.1.0.4:

$ dspmqver Name: IBM MQ Version: 9.1.0.4

Start the desired MQ 9.1 queue manager:

$ strmqm QM910 IBM MQ queue manager 'QM910' starting. The queue manager is associated with installation 'Installation2'. 5 log records accessed on queue manager 'QM910' during the log replay phase. Log replay for queue manager 'QM910' complete. Transaction manager state recovered for queue manager 'QM910'. IBM MQ queue manager 'QM910' started using V9.1.0.4.

Page 46 of 49

Verify that the level of the queue manager is now 9.1.0.4:

$ runmqsc QM910 display qmgr cmdlevel version 1 : display qmgr cmdlevel version AMQ8408I: Display Queue Manager details. QMNAME(QM910) CMDLEVEL(910) VERSION(09010004)

Notice that the value in the attribute VERSION needs to be interpreted as with dots separating every 2nd digit: 09.01.00.04

Page 47 of 49

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +++ Chapter 9: Uninstallation ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

You need to login as an MQ Administrator to stop all the MQ activity for the desired version (or versions) that you want to perform uninstallation activities.

You need to login as root in order to perform the actual rpm uninstallation com- mands.

++ Uninstalling only a fix pack

Example fileset for FixPack 9.1.0.4: MQSeriesServer_2-U9104-9.1.0-4.x86_64

Specify the desired Fix Pack Identifier, such as U9104: rpm -ev `rpm -qa | grep -i mq | grep U9104`

The above single command uninstalls the rpms for MQ Fix Pack 9.1.0.4 (Id U9104).

It is really a combination of 2 rpm commands: the inner one gets all the MQ filesets for the fix pack, and the outer one does the uninstall (by providing the complete list of filesets, the rpm command will know how to handle the proper sequence for uninstalling them).

Notice that the inner rpm is surrounded by a pair of the special character: back quote (in an English keyboard, the key is the one on the upper left corner of the keyboard, to the left of the number 1, below the Esc key) rpm -ev `rpm -qa | grep -i mq | grep U9104` | | | inner rpm | +-- back quotes ------+ |------outer rpm ------|

Page 48 of 49

++ Uninstalling all the filesets for a version (such as 9.1)

If your goal is to uninstall all the fix packs and the base for a given version, such as MQ 9.1, then it could be tedious to try to uninstall every fix pack at a time, in reverse order in which they were installed (such as 9.1.0.4, 9.1.0.3, 9.1.0.2, etc) and the un- install the base one. Instead, a single command could be used that isolates all the MQ 9.1 filesets to be in- stalled (without affecting the ones for MQ 8.0), and in that way, the uninstall process will be faster and more efficient. Example filesets for 9.1: MQSeriesServer_2-U9104-9.1.0-4.x86_64 MQSeriesRuntime_2-9.1.0-3.x86_64 Specify the desired Installation Identifier, such as _2: rpm -ev `rpm -qa | grep -i mq | grep "_2" `

The above single command uninstalls the rpms for MQ 9.1.0.x.

It is really a combination of 2 rpm commands: the inner one gets all the MQ filesets for the fix pack, and the outer one does the uninstall (by providing the complete list of filesets, the rpm command will know how to handle the proper sequence for uninstalling them).

Notice that the inner rpm is surrounded by a pair of the special character: back quote (in an English keyboard, the key is the one on the upper left corner of the keyboard, to the left of the number 1, below the Esc key) rpm -ev `rpm -qa | grep -i mq | grep "_2" ` | | | inner rpm | +-- back quotes ------+ |------outer rpm ------|

Page 49 of 49

++ Uninstalling every fileset for MQ for all installed versions.

If your goal is to uninstall all the fix packs and the base for all the installed versions (MQ 8.0 and MQ 9.1) then it could be tedious to try to uninstall every fix pack at a time, in reverse order in which they were installed (such as 9.1.0.4, 9.1.0.3, 9.1.0.2, etc) and the uninstall the base one, and repeat the process for the other versions.

Instead, you could do the full install in a single step and it is explained below. The following single command uninstalls all the rpms for MQ for all the fix packs and the base. It is really a combination of 2 rpm commands: the inner one gets all the MQ filesets that are installed, and the outer one does the uninstall (by providing the complete list of installed filesets, the rpm command will know how to handle the proper sequence for uninstalling them). Notice that the inner rpm is surrounded by a pair of the special character: back quote (in an English keyboard, the key is the one on the upper left corner of the keyboard, to the left of the number 1, below the Esc key) rpm -ev `rpm -qa | grep -i mq` | | | inner rpm | +-- back quotes -----+ |------outer rpm ------|

+++ end +++