Oracle Middleware and IBM MQ Series – IBM MQ Installation

2

Overview

Around the summer 2015, I prepared a demo for a customer to show how Oracle Middleware and IBM MQ can interface. When I started to prepare the demo, I googled for a quick example, but I didn’t find one. As a side note: I did find again the JMS article series by John Brown Evans: https://blogs.oracle.com/soaproactive/entry/how_to_create_a_simple. That is still an excellent series of blog posts that will get you started with JMS easily!
What made the topic difficult is that you need to combine various areas: IBM MQ installation/configuration, WebLogic configuration for the JCA adapters, and making the code – for both BPEL and Service Bus.

Anyway, I thought I would share my notes with you. So a couple of train rides later, here’s the result…

Oh, and it is now upgraded to SOA Suite 12.2.1.

I have split up the topics over a couple of articles:

  1. IBM MQ Series Installation and Configuration
  2. Configuration of JMS and MQ Adapters in WebLogic
  3. Use case: JMS Adapter and MQ
  4. Use case: MQ Adapter
  5. Use case: MQ Transport

main
 

Goal

The goal of the article series is to get you easily started on combining Oracle Middleware with IBM MQ Series. As the JCA Adapters are also available for Service Bus, I combined both the Service Bus and BPEL into the use cases. I ended with a short article on the MQ Transport. The JMS over MQ transport is not covered.
The choice on what of the above options to use, depends on your customers use case. I recommend to spend some time on it. E.g. the simple statement that ‘the Service Bus MQ Transport does NOT support remote transactions’ should be taken into account. As well as several other properties. You should spend some time on carefully designing this!
Goal of these articles is to provide you with a simple configuration – to get you going:

  • No transaction support
  • Simple put/get of messages
  • No MQ request/reply
  • No encryption

I kept it simple so you will get to a working configuration. From that starting point, you can add/change features as you see fit.
Now it’s time to get going…


IBM MQ Installation

The IBM MQ Installation will consist of the following steps:

  1. Compatibility check
  2. Download MQ
  3. Prepare the Linux system
  4. Install IBM MQ

Compatibility check

Compatibility – Oracle FMW adapters and MQ
First topic to look into is that of IBM MQ compatibility: the solution has to be supported by Oracle.
The Oracle JCA Adapter for MQ Series (aka MQ Adapter) is certified for MQ Series 7.5:
http://docs.oracle.com/middleware/1221/adapters/develop-soa-adapters/GUID-4948ACC3-3413-4BF1-82B0-3DB00AA20CE3.htm#TKADP1564
Oracle is a bit less explicit about the Oracle JMS Adapter for MQ Series, but the Oracle documentation refers to MQ Series 7.5 here: https://docs.oracle.com/middleware/1213/adapters/develop-soa-adapters/GUID-2F26D2ED-BAE0-4009-9AE9-5A5889171C25.htm#TKADP1223
For both adapters, version IBM MQ 8.0 does not seem to be supported (yet?).
Compatibility – Operating System
There is an easy way to do a quick installation of IBM MQ by Roman Kharkovski:
http://whywebsphere.com/2014/01/23/install-websphere-mq-v7-5-on-red-hat-linux-in-under-1-minute-with-one-click/
I did this with Oracle Enterprise Linux 6.5 and SOA Suite 12.1.3 and found that the MQ installation is sufficient for development purposes.
The above article is based on the combination of RedHat Linux 6.5 Operating System with MQ Version 7.5.0.2.
Now, I will be using Oracle Enterprise Linux 7.2. Looking at the IBM support information, MQ must be patched to version is 7.5.0.5 (http://www-01.ibm.com/support/docview.wss?uid=swg27027462#Linux_Operating_Systems ).
For me, that was enough excuse to start a manual installation Smile
 

Installation step 1: Download MQ

With IBM, download: WebSphere MQ Version 7.5.0.2 Trail Edition:

Then, also download the patch MQ Version 7.5.0.5:

Use Product selector ‘WebSphere MQ’, Installed Version ‘7.5’ and Platform ‘Linux 64-bit x86_64’ to start searching for the fix.
 

Installation step 2: Prepare the Linux system

Starting point is a Linux system with a SOA Suite installation:

mq_001_operating_system

The system has:

  • Linux version OEL 7.2
  • SOA Suite 12.2.1, compact domain installation, Oracle XE 11g database

 
2.1 Add user and group mqm
 
Add user and group mqm, with mqm the primary group for user mqm. As user root:
[root@localhost ~]# groupadd mqm
[root@localhost ~]# adduser -d  /home/mqm -g mqm -p welcome01 mqm
[root@localhost ~]# usermod –groups mqm developer
The last line makes it possible for user ‘developer’ to run MQ commands. Note that I have a user ‘developer’ 😉
 
2.2 Kernel configuration
 
IBM requires the following minimum configuration:

kernel.shmmni = 4096<br>kernel.shmall = 2097152<br>kernel.shmmax = 268435456<br>kernel.sem = 500 256000 250 1024<br>fs.file-max = 524288<br>kernel.pid-max = 120000<br>kernel.threads-max = 48000 

This can be checked in the following way (as usder root):
[root@localhost ~]# cat /proc/sys/kernel/shmmni
4096
[root@localhost ~]# cat /proc/sys/kernel/shmall
2097152
[root@localhost ~]# cat /proc/sys/kernel/shmmax
4294967295
[root@localhost ~]# cat /proc/sys/kernel/sem
250    32000    100    128
[root@localhost ~]# cat /proc/sys/fs/file-max
6815744
[root@localhost ~]#
If required, update the file /etc/sysctl.conf. In our case, it was changed to:

###########<br># Oracle Database 11g Express Edition Recommended Values<br># The line below is the result of the XE install:<br># kernel.sem = 250 32000 100 128<br># It was changed for MQ to:<br>kernel.sem = 500 256000 250 1024<br>kernel.shmmax = 4294967295<br>fs.file-max = 6815744<br>########

Load and verify the changed setting:

[root@localhost ~]# sysctl –p<br>kernel.sem = 500 256000 250 1024<br>kernel.shmmax = 4294967295<br>fs.file-max = 6815744<br>[root@localhost ~]# cat /proc/sys/kernel/sem<br>500&nbsp;&nbsp;&nbsp; 256000&nbsp;&nbsp;&nbsp; 250&nbsp;&nbsp;&nbsp; 1024<br>[root@localhost ~]#

Moving on to the kernel settings:

[root@localhost ~]# cat /proc/sys/kernel/pid_max <br>32768<br>[root@localhost ~]# cat /proc/sys/kernel/threads-max <br>123184<br>[root@localhost ~]# echo 120000 &gt; /proc/sys/kernel/pid_max <br>[root@localhost ~]# cat /proc/sys/kernel/pid_max <br>120000<br>[root@localhost ~]#

 
2.3 User settings
 
Edit file /etc/security/limits.d/mqm.conf as user root:

# Security limits for members of the mqm group<br>mqm soft nofile 1048576<br>mqm hard nofile 1048576<br>mqm soft nproc&nbsp; 1048576<br>mqm hard nproc&nbsp; 1048576

There are many more settings / changes that can be done for tuning an MQ system, but for development purposes, the above should be sufficient. For more information, please refer to https://www-01.ibm.com/support/knowledgecenter/SSFKSJ_7.5.0/com.ibm.mq.ins.doc/q008490_.htm.

 

Installation step 3: Install the MQ components

3.1 Unzip the archive

First, the downloaded archive has to be unzip-ed. It was downloaded to directory /home/developer/stage. Unzip as user root.

[root@localhost ~]# cd /home/developer/stage/<br>[root@localhost stage]# ls<br>MQ_7.5.0.2_TRIAL_LNX_ON_X86_64_ML.tar.gz<br>[root@localhost stage]# tar xvf MQ_7.5.0.2_TRIAL_LNX_ON_X86_64_ML.tar.gz<br>...<br>...<br>[root@localhost stage]# ls<br>copyright&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MQSeriesMsg_es-7.5.0-2.x86_64.rpm<br>crtmqpkg&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MQSeriesMsg_fr-7.5.0-2.x86_64.rpm<br>lap&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MQSeriesMsg_hu-7.5.0-2.x86_64.rpm<br>licenses&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MQSeriesMsg_it-7.5.0-2.x86_64.rpm<br>MQ_7.5.0.2_TRIAL_LNX_ON_X86_64_ML.tar.gz&nbsp; MQSeriesMsg_ja-7.5.0-2.x86_64.rpm<br>mqlicense.sh&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MQSeriesMsg_ko-7.5.0-2.x86_64.rpm<br>MQSeriesAMS-7.5.0-2.x86_64.rpm&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MQSeriesMsg_pl-7.5.0-2.x86_64.rpm<br>MQSeriesClient-7.5.0-2.x86_64.rpm&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MQSeriesMsg_pt-7.5.0-2.x86_64.rpm<br>MQSeriesExplorer-7.5.0-2.x86_64.rpm&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MQSeriesMsg_ru-7.5.0-2.x86_64.rpm<br>MQSeriesFTAgent-7.5.0-2.x86_64.rpm&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MQSeriesMsg_Zh_CN-7.5.0-2.x86_64.rpm<br>MQSeriesFTBase-7.5.0-2.x86_64.rpm&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MQSeriesMsg_Zh_TW-7.5.0-2.x86_64.rpm<br>MQSeriesFTLogger-7.5.0-2.x86_64.rpm&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MQSeriesRuntime-7.5.0-2.x86_64.rpm<br>MQSeriesFTService-7.5.0-2.x86_64.rpm&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MQSeriesSamples-7.5.0-2.x86_64.rpm<br>MQSeriesFTTools-7.5.0-2.x86_64.rpm&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MQSeriesSDK-7.5.0-2.x86_64.rpm<br>MQSeriesGSKit-7.5.0-2.x86_64.rpm&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MQSeriesServer-7.5.0-2.x86_64.rpm<br>MQSeriesJava-7.5.0-2.x86_64.rpm&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MQSeriesXRClients-7.5.0-2.x86_64.rpm<br>MQSeriesJRE-7.5.0-2.x86_64.rpm&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MQSeriesXRService-7.5.0-2.x86_64.rpm<br>MQSeriesMan-7.5.0-2.x86_64.rpm&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; PreReqs<br>MQSeriesMsg_cs-7.5.0-2.x86_64.rpm&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; READMEs<br>MQSeriesMsg_de-7.5.0-2.x86_64.rpm&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; repackage<br>[root@localhost stage]# 

 
3.2 Accept the license
 
As user root:

[root@localhost stage]# pwd<br>/home/developer/stage<br>[root@localhost stage]# ./mqlicense.sh –accept<br>Licensed Materials - Property of IBM <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>5724-H72 <br>(C) Copyright IBM Corporation 1994, 2013 All rights reserved.<br>US Government Users Restricted Rights - Use, duplication or disclosure<br>restricted by GSA ADP Schedule Contract with IBM Corp.<br>&nbsp;<br>Agreement accepted:&nbsp; Proceed with install.<br>[root@localhost stage]# 

 
3.3 Install MQ 7.5.0.2
 
Now, MQ can be installed. Use /opt/mqm as the installation directory. As user root:

[root@localhost stage]# pwd<br>/home/developer/stage<br>[root@localhost stage]# rpm --prefix /opt/mqm -ivh MQSeriesRuntime-*.rpm MQSeriesServer-*.rpm MQSeriesClient-*.rpm MQSeriesSDK-*.rpm&nbsp; MQSeriesMan-*.rpm MQSeriesSamples-*.rpm MQSeriesJRE-*.rpm MQSeriesExplorer-*.rpm MQSeriesJava-*.rpm<br>Preparing...&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ################################# [100%]<br>Updating / installing...<br>&nbsp;&nbsp; 1:MQSeriesRuntime-7.5.0-2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ################################# [ 11%]<br>&nbsp;&nbsp; 2:MQSeriesJRE-7.5.0-2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ################################# [ 22%]<br>&nbsp;&nbsp; 3:MQSeriesExplorer-7.5.0-2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ################################# [ 33%]<br>&nbsp;&nbsp; 4:MQSeriesServer-7.5.0-2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ################################# [ 44%]<br>After the installation has completed, run the '/opt/mqm/bin/mqconfig' command, using the 'mqm' user ID.<br>For example, execute the following statement when running as the 'root' user:<br>&nbsp;&nbsp;&nbsp; su mqm -c "/opt/mqm/bin/mqconfig"<br>The 'mqconfig' command validates that the system configuration satisfies the<br>requirements for WebSphere MQ, and ensures that the settings for the 'mqm'<br>user ID are suitably configured.&nbsp; Other WebSphere MQ administrators in the<br>'mqm' group can run this command to ensure their user limits are also<br>properly configured to use WebSphere MQ.<br>If 'mqconfig' indicates that any of the requirements have not been met,<br>consult the installation section within the WebSphere MQ Information Center<br>for details about how to configure the system and user limits.<br>&nbsp;&nbsp; 5:MQSeriesClient-7.5.0-2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ################################# [ 56%]<br>&nbsp;&nbsp; 6:MQSeriesSDK-7.5.0-2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ################################# [ 67%]<br>&nbsp;&nbsp; 7:MQSeriesMan-7.5.0-2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ################################# [ 78%]<br>&nbsp;&nbsp; 8:MQSeriesSamples-7.5.0-2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ################################# [ 89%]<br>&nbsp;&nbsp; 9:MQSeriesJava-7.5.0-2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ################################# [100%]<br>[root@localhost stage]# 

 
3.4 Check the configuration
 

[root@localhost stage]# su mqm -c "/opt/mqm/bin/mqconfig"<br>mqconfig: Analyzing Red Hat Enterprise Linux Server release 7.2 (Maipo)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; settings for WebSphere MQ V7.5<br>System V Semaphores<br>&nbsp; semmsl&nbsp;&nbsp;&nbsp;&nbsp; (sem:1)&nbsp; 500 semaphores&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; IBM&gt;=500&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; PASS<br>&nbsp; semmns&nbsp;&nbsp;&nbsp;&nbsp; (sem:2)&nbsp; 105 of 256000 semaphores&nbsp;&nbsp; (0%)&nbsp;&nbsp;&nbsp; IBM&gt;=256000&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; PASS<br>&nbsp; semopm&nbsp;&nbsp;&nbsp;&nbsp; (sem:3)&nbsp; 250 operations&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; IBM&gt;=250&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; PASS<br>&nbsp; semmni&nbsp;&nbsp;&nbsp;&nbsp; (sem:4)&nbsp; 2 of 1024 sets&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (0%)&nbsp;&nbsp;&nbsp; IBM&gt;=1024&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; PASS<br>System V Shared Memory<br>&nbsp; shmmax&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 4294967295 bytes&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; IBM&gt;=268435456&nbsp;&nbsp;&nbsp; PASS<br>&nbsp; shmmni&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 8 of 4096 sets&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (0%)&nbsp;&nbsp;&nbsp; IBM&gt;=4096&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; PASS<br>&nbsp; shmall&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 10980 of 2097152 pages&nbsp;&nbsp;&nbsp;&nbsp; (0%)&nbsp;&nbsp;&nbsp; IBM&gt;=2097152&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; PASS<br>System Settings<br>&nbsp; file-max&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 13920 of 6815744 files&nbsp;&nbsp;&nbsp;&nbsp; (0%)&nbsp;&nbsp;&nbsp; IBM&gt;=524288&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; PASS<br>&nbsp; tcp_keepalive_time&nbsp; 7200 seconds&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; IBM&lt;=300&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; FAIL<br>Current User Limits (mqm)<br>&nbsp; nofile&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (-Hn)&nbsp; 1048576 files&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; IBM&gt;=10240&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; PASS<br>&nbsp; nofile&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (-Sn)&nbsp; 1048576 files&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; IBM&gt;=10240&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; PASS<br>&nbsp; nproc&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (-Hu)&nbsp; 9 of 1048576 processes&nbsp;&nbsp;&nbsp;&nbsp; (0%)&nbsp;&nbsp;&nbsp; IBM&gt;=4096&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; PASS<br>&nbsp; nproc&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (-Su)&nbsp; 9 of 1048576 processes&nbsp;&nbsp;&nbsp;&nbsp; (0%)&nbsp;&nbsp;&nbsp; IBM&gt;=4096&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; PASS<br>[root@localhost stage]# 

 
The tcp keep-alive setting is concerned with detecting dead pears and preventing disconnectioins due to network inactivity on tcp level. Since that is not very important for our demo environment, we leave it on the default value of 7200 secs.
 
3.5 Upgrading to MQ 7.5.0.5
 
Ensure that the upgrade file 7.5.0-WS-MQ-LinuxX64-FP0005.tar.gz is in the directory /home/developer/stage. Then unzip it:

[root@localhost ~]# cd /home//developer/stage/<br>[root@localhost stage]# pwd<br>/home/developer/stage<br>[root@localhost stage]# ls<br>7.5.0-WS-MQ-LinuxX64-FP0005.tar.gz<br>[root@localhost stage]# gunzip 7.5.0-WS-MQ-LinuxX64-FP0005.tar.gz <br>[root@localhost stage]# ls<br>7.5.0-WS-MQ-LinuxX64-FP0005.tar<br>[root@localhost stage]# tar xvf 7.5.0-WS-MQ-LinuxX64-FP0005.tar<br>...<br>...<br>./repackage/MQSeriesXRClients.spec<br>./repackage/MQSeriesXRService.spec<br>[root@localhost stage]# ls<br>7.5.0-WS-MQ-LinuxX64-FP0005.tar&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MQSeriesMsg_hu-U200533-7.5.0-5.x86_64.rpm<br>crtmqfp&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MQSeriesMsg_it-U200533-7.5.0-5.x86_64.rpm<br>MQSeriesAMS-U200533-7.5.0-5.x86_64.rpm&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MQSeriesMsg_ja-U200533-7.5.0-5.x86_64.rpm<br>MQSeriesClient-U200533-7.5.0-5.x86_64.rpm&nbsp;&nbsp;&nbsp;&nbsp; MQSeriesMsg_ko-U200533-7.5.0-5.x86_64.rpm<br>MQSeriesExplorer-U200533-7.5.0-5.x86_64.rpm&nbsp;&nbsp; MQSeriesMsg_pl-U200533-7.5.0-5.x86_64.rpm<br>MQSeriesFTAgent-U200533-7.5.0-5.x86_64.rpm&nbsp;&nbsp;&nbsp; MQSeriesMsg_pt-U200533-7.5.0-5.x86_64.rpm<br>MQSeriesFTBase-U200533-7.5.0-5.x86_64.rpm&nbsp;&nbsp;&nbsp;&nbsp; MQSeriesMsg_ru-U200533-7.5.0-5.x86_64.rpm<br>MQSeriesFTLogger-U200533-7.5.0-5.x86_64.rpm&nbsp;&nbsp; MQSeriesMsg_Zh_CN-U200533-7.5.0-5.x86_64.rpm<br>MQSeriesFTService-U200533-7.5.0-5.x86_64.rpm&nbsp; MQSeriesMsg_Zh_TW-U200533-7.5.0-5.x86_64.rpm<br>MQSeriesFTTools-U200533-7.5.0-5.x86_64.rpm&nbsp;&nbsp;&nbsp; MQSeriesRuntime-U200533-7.5.0-5.x86_64.rpm<br>MQSeriesGSKit-U200533-7.5.0-5.x86_64.rpm&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MQSeriesSamples-U200533-7.5.0-5.x86_64.rpm<br>MQSeriesJava-U200533-7.5.0-5.x86_64.rpm&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MQSeriesSDK-U200533-7.5.0-5.x86_64.rpm<br>MQSeriesJRE-U200533-7.5.0-5.x86_64.rpm&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MQSeriesServer-U200533-7.5.0-5.x86_64.rpm<br>MQSeriesMan-U200533-7.5.0-5.x86_64.rpm&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MQSeriesXRClients-U200533-7.5.0-5.x86_64.rpm<br>MQSeriesMsg_cs-U200533-7.5.0-5.x86_64.rpm&nbsp;&nbsp;&nbsp;&nbsp; MQSeriesXRService-U200533-7.5.0-5.x86_64.rpm<br>MQSeriesMsg_de-U200533-7.5.0-5.x86_64.rpm&nbsp;&nbsp;&nbsp;&nbsp; readme<br>MQSeriesMsg_es-U200533-7.5.0-5.x86_64.rpm&nbsp;&nbsp;&nbsp;&nbsp; repackage<br>MQSeriesMsg_fr-U200533-7.5.0-5.x86_64.rpm

Now, the new rpm’s can be installed:

[root@localhost stage]# rpm -ihv MQSeriesRuntime-*.rpm MQSeriesServer-*.rpm MQSeriesClient-*.rpm MQSeriesSDK-*.rpm&nbsp; MQSeriesMan-*.rpm MQSeriesSamples-*.rpm MQSeriesJRE-*.rpm MQSeriesExplorer-*.rpm MQSeriesJava-*.rpm<br>Preparing...&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ################################# [100%]<br>Updating / installing...<br>&nbsp;&nbsp; 1:MQSeriesRuntime-U200533-7.5.0-5&nbsp; ################################# [ 11%]<br>&nbsp;&nbsp; 2:MQSeriesServer-U200533-7.5.0-5&nbsp;&nbsp; ################################# [ 22%]<br>After the installation of this fix pack has completed, run the<br>'/opt/mqm/bin/mqconfig' command, using the 'mqm' user ID.<br>For example, execute the following statement when running as the 'root' user:<br>&nbsp;&nbsp;&nbsp; su mqm -c "/opt/mqm/bin/mqconfig"<br>The 'mqconfig' command validates that the system configuration satisfies the<br>requirements for WebSphere MQ, and ensures that the settings for the 'mqm'<br>user ID are suitably configured.&nbsp; Other WebSphere MQ administrators in the<br>'mqm' group can run this command to ensure their user limits are also<br>properly configured to use WebSphere MQ.<br>If 'mqconfig' indicates that any of the requirements have not been met,<br>consult the installation section within the WebSphere MQ Information Center<br>for details about how to configure the system and user limits.<br>&nbsp;&nbsp; 3:MQSeriesClient-U200533-7.5.0-5&nbsp;&nbsp; ################################# [ 33%]<br>&nbsp;&nbsp; 4:MQSeriesSDK-U200533-7.5.0-5&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ################################# [ 44%]<br>&nbsp;&nbsp; 5:MQSeriesMan-U200533-7.5.0-5&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ################################# [ 56%]<br>&nbsp;&nbsp; 6:MQSeriesSamples-U200533-7.5.0-5&nbsp; ################################# [ 67%]<br>&nbsp;&nbsp; 7:MQSeriesJRE-U200533-7.5.0-5&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ################################# [ 78%]<br>&nbsp;&nbsp; 8:MQSeriesExplorer-U200533-7.5.0-5 ################################# [ 89%]<br>&nbsp;&nbsp; 9:MQSeriesJava-U200533-7.5.0-5&nbsp;&nbsp;&nbsp;&nbsp; ################################# [100%]<br>[root@localhost stage]# 

Check again the configuration:

[root@localhost stage]# su mqm -c "/opt/mqm/bin/mqconfig"<br>mqconfig: Analyzing Red Hat Enterprise Linux Server release 7.2 (Maipo)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; settings for WebSphere MQ V7.5<br>System V Semaphores<br>&nbsp; semmsl&nbsp;&nbsp;&nbsp;&nbsp; (sem:1)&nbsp; 500 semaphores&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; IBM&gt;=500&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; PASS<br>&nbsp; semmns&nbsp;&nbsp;&nbsp;&nbsp; (sem:2)&nbsp; 105 of 256000 semaphores&nbsp;&nbsp; (0%)&nbsp;&nbsp;&nbsp; IBM&gt;=256000&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; PASS<br>&nbsp; semopm&nbsp;&nbsp;&nbsp;&nbsp; (sem:3)&nbsp; 250 operations&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; IBM&gt;=250&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; PASS<br>&nbsp; semmni&nbsp;&nbsp;&nbsp;&nbsp; (sem:4)&nbsp; 2 of 1024 sets&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (0%)&nbsp;&nbsp;&nbsp; IBM&gt;=1024&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; PASS<br>System V Shared Memory<br>&nbsp; shmmax&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 4294967295 bytes&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; IBM&gt;=268435456&nbsp;&nbsp;&nbsp; PASS<br>&nbsp; shmmni&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 8 of 4096 sets&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (0%)&nbsp;&nbsp;&nbsp; IBM&gt;=4096&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; PASS<br>&nbsp; shmall&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 10980 of 2097152 pages&nbsp;&nbsp;&nbsp;&nbsp; (0%)&nbsp;&nbsp;&nbsp; IBM&gt;=2097152&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; PASS<br>System Settings<br>&nbsp; file-max&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 13888 of 6815744 files&nbsp;&nbsp;&nbsp;&nbsp; (0%)&nbsp;&nbsp;&nbsp; IBM&gt;=524288&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; PASS<br>&nbsp; tcp_keepalive_time&nbsp; 7200 seconds&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; IBM&lt;=300&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; FAIL<br>Current User Limits (mqm)<br>&nbsp; nofile&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (-Hn)&nbsp; 1048576 files&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; IBM&gt;=10240&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; PASS<br>&nbsp; nofile&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (-Sn)&nbsp; 1048576 files&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; IBM&gt;=10240&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; PASS<br>&nbsp; nproc&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (-Hu)&nbsp; 9 of 1048576 processes&nbsp;&nbsp;&nbsp;&nbsp; (0%)&nbsp;&nbsp;&nbsp; IBM&gt;=4096&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; PASS<br>&nbsp; nproc&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (-Su)&nbsp; 9 of 1048576 processes&nbsp;&nbsp;&nbsp;&nbsp; (0%)&nbsp;&nbsp;&nbsp; IBM&gt;=4096&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; PASS<br>[root@localhost stage]# 

Which all looks OK, except for the already known tcp keep-alive setting.

3.6 Set primary installation

This MQ installation needs to be set as the primary installation:

[root@localhost stage]# /opt/mqm/bin/setmqinst -i -p /opt/mqm</p> <p>18 of 118 tasks have been completed successfullysuccessfuly.<br>'Installation1' (/opt/mqm) set as the Primary Installation.<br>[root@localhost stage]#

and list the version:

[root@localhost stage]# /opt/mqm/bin/dspmqver<br>Name:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; WebSphere MQ<br>Version:&nbsp;&nbsp;&nbsp;&nbsp; 7.5.0.5<br>Level:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; p750-005-150424<br>BuildType:&nbsp;&nbsp; IKAP - (Production)<br>Platform:&nbsp;&nbsp;&nbsp; WebSphere MQ for Linux (x86-64 platform)<br>Mode:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 64-bit<br>O/S:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Linux 3.8.13-118.2.2.el7uek.x86_64<br>InstName:&nbsp;&nbsp;&nbsp; Installation1<br>InstDesc:<br>Primary:&nbsp;&nbsp;&nbsp;&nbsp; Yes<br>InstPath:&nbsp;&nbsp;&nbsp; /opt/mqm<br>DataPath:&nbsp;&nbsp;&nbsp; /var/mqm<br>MaxCmdLevel: 750<br>LicenseType: Trial<br>[root@localhost stage]# 

 
3.7 Create QueueManager QM_AMIS
 
For the examples we will implement, we need a QueueManager, named QM_AMIS.
First, make the required directories (as user developer):

[developer@localhost ~]$ mkdir /var/mqm/QM_AMIS_DATA<br>[developer@localhost ~]$ chmod g+rwx /var/mqm/QM_AMIS_DATA<br>[developer@localhost ~]$ mkdir /var/mqm/QM_AMIS_LOG<br>[developer@localhost ~]$ chmod g+rwx /var/mqm/QM_AMIS_LOG

Now create the QueueManager.
The command for creating the QueueManager is:

crtmqm -q -u SYSTEM.DEAD.LETTER.QUEUE -lc -ld /var/mqm/QM_AMIS_LOG -lf 16384 -lp 16 -md /var/mqm/QM_AMIS_DATA QM_AMIS

The parameters have the following meaning:

-q&nbsp;&nbsp; Make this queue manager the default queue manager.<br>-u&nbsp;&nbsp; Dead-letter queue name.<br>-lc&nbsp; Use circular logging. <br>-ld&nbsp; Directory used to hold the log files for the queue manager.<br>-lf&nbsp; Log file size, specified in units of 4 KB pages. <br>-lp&nbsp; Primary log files allocated when the queue manager is created. <br>-md&nbsp; Directory used to hold the data files for the queue manager. 

Command execution (as user developer):

[developer@localhost mqm]$ crtmqm -q -u SYSTEM.DEAD.LETTER.QUEUE -lc -ld /var/mqm/QM_AMIS_LOG -lf 16384 -lp 16 -md /var/mqm/QM_AMIS_DATA QM_AMIS<br>There are 87 days left in the trial period for this copy of WebSphere MQ.<br>WebSphere MQ queue manager created.<br>Directory '/var/mqm/QM_AMIS_DATA/QM_AMIS' created.<br>The queue manager is associated with installation 'Installation1'.<br>Creating or replacing default objects for queue manager 'QM_AMIS'.<br>Default objects statistics : 74 created. 0 replaced. 0 failed.<br>Completing setup.<br>Setup completed.<br>[developer@localhost mqm]$

And set the default setting for the QueueManager. This is done using the command:

strmqm -c QM_AMIS

where the -c option means:

-c&nbsp;&nbsp; Redefine the default and system objects, then stop the queue manager. 

Output of the command:

[developer@localhost mqm]$ strmqm -c QM_AMIS<br>WebSphere MQ queue manager 'QM_AMIS' starting.<br>The queue manager is associated with installation 'Installation1'.<br>5 log records accessed on queue manager 'QM_AMIS' during the log replay phase.<br>Log replay for queue manager 'QM_AMIS' complete.<br>Transaction manager state recovered for queue manager 'QM_AMIS'.<br>Creating or replacing default objects for queue manager 'QM_AMIS'.<br>Default objects statistics : 1 created. 73 replaced. 0 failed.<br>Completing setup.<br>Setup completed.<br>[developer@localhost mqm]$

Look at status of the QueueManager:

[developer@localhost mqm]$ dspmq<br>QMNAME(QM_AMIS)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; STATUS(Ended immediately)<br>[developer@localhost mqm]$&nbsp; 

 
3.8 Create Queues, Listener and Channel

Queues have to be created for the use cases that will be implemented:

  • TEXT_MSG_REQUEST_Q
  • TEXT_MSG_REPLY_Q
  • JMS_MSG_REQUEST_Q
  • JMS_MSG_REPLY_Q

First, start the QueueManager:

[developer@localhost mqm]$ strmqm<br>There are 87 days left in the trial period for this copy of WebSphere MQ.<br>WebSphere MQ queue manager 'QM_AMIS' starting.<br>The queue manager is associated with installation 'Installation1'.<br>5 log records accessed on queue manager 'QM_AMIS' during the log replay phase.<br>Log replay for queue manager 'QM_AMIS' complete.<br>Transaction manager state recovered for queue manager 'QM_AMIS'.<br>WebSphere MQ queue manager 'QM_AMIS' started using V7.5.0.5.<br>[developer@localhost mqm]$ 

Create the queues (still as user developer):

[developer@localhost mqm]$ runmqsc QM_AMIS<br>5724-H72 (C) Copyright IBM Corp. 1994, 2011.&nbsp; ALL RIGHTS RESERVED.<br>Starting MQSC for queue manager QM_AMIS.<br>&nbsp;<br>define qlocal(TEXT_MSG_REQUEST_Q) maxdepth(5000)<br>&nbsp;&nbsp;&nbsp;&nbsp; 1 : define qlocal(TEXT_MSG_REQUEST_Q) maxdepth(5000)<br>AMQ8006: WebSphere MQ queue created.<br>define qlocal(TEXT_MSG_REPLY_Q) maxdepth(5000)<br>&nbsp;&nbsp;&nbsp;&nbsp; 2 : define qlocal(TEXT_MSG_REPLY_Q) maxdepth(5000)<br>AMQ8006: WebSphere MQ queue created.<br>define qlocal(JMS_MSG_REQUEST_Q) maxdepth(5000)<br>&nbsp;&nbsp;&nbsp;&nbsp; 3 : define qlocal(JMS_MSG_REQUEST_Q) maxdepth(5000)<br>AMQ8006: WebSphere MQ queue created.<br>define qlocal(JMS_MSG_REPLY_Q) maxdepth(5000)<br>&nbsp;&nbsp;&nbsp;&nbsp; 4 : define qlocal(JMS_MSG_REPLY_Q) maxdepth(5000)<br>AMQ8006: WebSphere MQ queue created.<br>define listener(L1) trptype(tcp) port(1420) control(qmgr)<br>&nbsp;&nbsp;&nbsp;&nbsp; 5 : define listener(L1) trptype(tcp) port(1420) control(qmgr)<br>AMQ8626: WebSphere MQ listener created.<br>start listener(L1)<br>&nbsp;&nbsp;&nbsp;&nbsp; 6 : start listener(L1)<br>AMQ8021: Request to start WebSphere MQ listener accepted.<br>alter channel(SYSTEM.DEF.SVRCONN) chltype(SVRCONN) sharecnv(0)<br>&nbsp;&nbsp;&nbsp;&nbsp; 7 : alter channel(SYSTEM.DEF.SVRCONN) chltype(SVRCONN) sharecnv(0)<br>AMQ8016: WebSphere MQ channel changed.<br>define channel(system.admin.svrconn) chltype(svrconn) mcauser('mqm') replace<br>&nbsp;&nbsp;&nbsp;&nbsp; 8 : define channel(system.admin.svrconn) chltype(svrconn) mcauser('mqm') replace<br>AMQ8014: WebSphere MQ channel created.<br>define channel(S_AMIS) chltype(svrconn) replace<br>&nbsp;&nbsp;&nbsp;&nbsp; 9 : define channel(S_AMIS) chltype(svrconn) replace<br>AMQ8014: WebSphere MQ channel created.<br>set clauth(*) type(BLOCKUSER) userlist('*MQADMIN') action(REMOVE) <br>&nbsp;&nbsp;&nbsp; 10 : set chlauth(*) type(blockuser) userlist('*MQADMIN') action(remove)<br>AMQ8877: WebSphere MQ channel authentication record set.<br>end<br>&nbsp;&nbsp;&nbsp; 11 : end<br>10 MQSC commands read.<br>No commands have a syntax error.<br>All valid MQSC commands were processed.<br>[developer@localhost mqm]$

 
Some comments to help the Oracle wrestlers to better understand the IBM thingies:
(for reference: https://www-01.ibm.com/support/knowledgecenter/SSFKSJ_7.5.0/com.ibm.mq.ref.adm.doc/q085130_.htm)

[developer@localhost ~]$ runmqsc QM_AMIS

runmqsc is used to send commands to a queue manager
   

 1 : define qlocal(TEXT_MSG_REQUEST_Q) maxdepth(5000)<br>&nbsp;&nbsp;&nbsp;&nbsp; 2 : define qlocal(TEXT_MSG_REPLY_Q) maxdepth(5000)<br>&nbsp;&nbsp;&nbsp;&nbsp; 3 : define qlocal(JMS_MSG_REQUEST_Q) maxdepth(5000)<br>&nbsp;&nbsp;&nbsp;&nbsp; 4 : define qlocal(JMS_MSG_REPLY_Q) maxdepth(5000)

First 4 commands create the required queues and set the max # msgs for the queue
   

 5 : define listener(L1) trptype(tcp) port(1420) control(qmgr)

Create listener L1, that:

  • uses tcp for transmission protocol on port 1420
  • and indicate that the listener is to be started/stopped together with the Queue Manager

   

 6 : start listener(L1)

Start channel listener
   

 7 : alter channel(SYSTEM.DEF.SVRCONN) chltype(SVRCONN) sharecnv(0)

changes the server channel ‘system.def.svrconn’ (this channel was automatically created with the QueueManager)
of channel type ‘svrconn’: server connection
Specifies no sharing of conversations over a TCP/IP channel instance.
(this is set to 0 for the MQ Adapter, as per Oracle documentation:
‘In addition, if you are using the Oracle MQ Series 7 Adapter , the new “SharingConversation” property of the MQ Series 7 Server Connection Channel has to be to set to zero’
  

&nbsp; 8 : define channel(system.admin.svrconn) chltype(svrconn) mcauser('mqm') replace

Create the channel system.admin.svrconn, which is needed for the MQ Explorer, user mqm
   

 9 : define channel(S_AMIS) chltype(svrconn) replace

Create a channel S_AMIS that the JMS adapter can use
   

10 : set chlauth(*) type(blockuser) userlist('*MQADMIN') action(remove)

Remove the default authentication record
  

 11 : end 

Done!
 
3.9 Re-start QueueManager QM_AMIS
 
A re-start is now required:

[developer@localhost mqm]$ endmqm QM_AMIS<br>Quiesce request accepted. The queue manager will stop when all outstanding work<br>is complete.<br>[developer@localhost mqm]$ strmqm QM_AMIS<br>There are 87 days left in the trial period for this copy of WebSphere MQ.<br>WebSphere MQ queue manager 'QM_AMIS' starting.<br>The queue manager is associated with installation 'Installation1'.<br>5 log records accessed on queue manager 'QM_AMIS' during the log replay phase.<br>Log replay for queue manager 'QM_AMIS' complete.<br>Transaction manager state recovered for queue manager 'QM_AMIS'.<br>WebSphere MQ queue manager 'QM_AMIS' started using V7.5.0.5.<br>[developer@localhost mqm]$ 

 
3.10 Start MQ Explorer
 
Now it’s time to start MQ Explorer:

[developer@localhost ~]$ /opt/mqm/bin/strmqcfg &amp;

Which shows the MQ Explorer start-up window.
 
mq_002_mq_explorer_first_time

Now, you can browse through QM_AMIS to verify the above described changes:
 
mq_003_mq_explorer_queues

About Author

Luc Gorissen works in IT since 1990. He has held various positions in many areas, and works since 2006 with Oracle Middleware. He likes the challenge of introducing new technologies in large companies. In the last couple of years, Business Process Management and Case Management are his main focus areas.

2 Comments

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.