0% found this document useful (0 votes)
41 views27 pages

MQ Questions

The document provides an overview of Distributed Queue Management (DQM) setup, detailing the necessary components and configurations for message transfer between queue managers. It explains various queue types, triggering mechanisms, and client-server connections in IBM MQ, along with troubleshooting tips for common issues. Additionally, it covers installation, uninstallation, logging, and error handling in IBM MQ on Linux systems.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
41 views27 pages

MQ Questions

The document provides an overview of Distributed Queue Management (DQM) setup, detailing the necessary components and configurations for message transfer between queue managers. It explains various queue types, triggering mechanisms, and client-server connections in IBM MQ, along with troubleshooting tips for common issues. Additionally, it covers installation, uninstallation, logging, and error handling in IBM MQ on Linux systems.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 27

1) What is DQM(or) Explain DQM setup (or) Point to point

➢ Ans: DQM stands for distributed queue management. Sending Messages from

➢ One queue manager to another queue manager.

▪ To Confirure DQM setup requited components are:

➢ Two queue managers one is for source and another is for destination.

➢ First we need to create objects in Destination

➢ LOCAL QUEUE

➢ RCVR CHANNEL

➢ LISTENER

➢ Objects we need to create in Source queue manager are

➢ Transmission queue

➢ Remote queue

➢ SDR channel

❖ Application always puts messages in Remote queue.Remote queue doesn’t hold


messages

❖ It add “TXHEADER”(rname,rqmname). And transfers to XMITQ.

❖ SDR CHANNEL takes messages from XMITQ and gives to RCVR CHANNEL.

❖ RCVR CHANNEL reads TXHEADER and keeps message in destination local queue and
removes TXHEADER.

❖ THUMB RULES

❖ SDR CHANNEL NAME AND RCVR CHANNEL MUST BE IDENTICAL

❖ REMOTE QMGR NAME AND XMITQ QUEUE NAME MUST IDENTICAL

❖ ONE XMITQ PER ONE SDR CHANNEL

❖ 4)ONE REMOTE QUEUE PER ONE XMITQ QUEUE

❖ ONE REMOTE QUEUE PER ONE DESTIONATION LOCAL QUEUE


2) what is Transmission queue:

➢ Transmission queue is a special type of local queue.

➢ Once we Usage (XMITQ) property this acts as the transmission queue.

3) . What is Alias queue?

❖ Alias queue does not hold the messages. It routes the message queues Original base
queue.

❖ Advantages of Alias queue

❖ 1)security is hides from clients

❖ 2)uses in gateway queue manager to solve cluster name conflict

❖ 3)it Solves persistent conflict

4) What is Initiation queue?

❖ Initiation queue is a special type of local queue. It is used for Triggerig

❖ Default initiation queue for channel Triggring is SYSTEM.CHANNE.INITQ

❖ Default initiation queue for Application Triggring is SYSTEM.DEFAULT.INITIATION.QUEUE

5) In which situation channel goes to ‘Paused State’?

❖ When the destination local queue is full the channel goes to Paused state.

❖ First check Ipprocs if its zero we need to inform application team to get the messages.
(or)

❖ If we increase the maxdepth of the queue channel will come to running state.

6) How many Applications connect in my queue?

❖ Display qs(queuename) ipprocs opprocs

7) How to find which application is connected to my queue manager

❖ Display qs(queue) type(handle) opentype(input)

8) In which causes channel goes to retrying state?


❖ When channel goes to retying state we can find the exact reason in qmgr
logs(/var/mqm/qmgrs/qmdir/error)

❖ Possible resons why channel goes to retring state are :

❖ Remote queue manager is down

❖ Listener Might now started

❖ Bad SSL configuration

❖ Sequence number mismatched

❖ Fiewall may be blocking

9) What are the Attribute we create require remote queue.

❖ Define qremote(name) rname() rqmname() xmitq()

10) Messages struck in local queue. What are the possible reasons?

➢ Message too big for queue.

➢ Application not connects the queue to get the messages.

➢ May be application does not have been get permission.

➢ Channel went to retying state

➢ Message too big for channel.

➢ Trigger Monitor fails(refresh the trigger by the below commands)

➢ alter qL(queuename) notrigger , alter qL(queuename) trigger

11) What is difference between Persistence and Non-Persistence?

➢ Persistence messages still available on queue even after QMGR restart.

❖ Persistence messages save in Transaction logs(/var/mqm/log/qmgrdir/active)

➢ Non-Persistence messages Discarded during queue manager restart.

❖ Non Persistence message will save in queue buffer

12) What is message channel?


❖ Message channel enables communication between Two QMGR’S.

❖ It is uni-directional channel.

❖ Sender channel and Receiver channel name must be identical.

13) How many types of Channel states? Explain.

➢ Inactive

➢ Running

➢ Retrying

➢ Paused

➢ Stopped

➢ Binding

o Inactive: Channel default status is inactive.

o Once channel object is created irrespective of the type channel status is


inactive.

▪ Running: If sender channel enables connection to remote QMGR,


channel status updated as running.

o Once channel status is running source and destination QMGR will start
exchanging Msg’s.

o Stopped: Stopped is nothing but disabled.

o Paused:

o Retriying:

o Binding:One if we start the channel .Channel went to binding state if every


thing good channel channel goes to running state if there is problem channel
will goes to retying state.

Triggering
14) Did you work on triggering?

❖ We have two types of triggering, there are

➢ Channel triggering

➢ Application triggering

❖ Channel triggering:

➢ Channel triggering used to starts channel automatically.

➢ To configuring channel triggering require components are transmission queue.

• Initiation queue(system.channel.initq)

▪ Channel initiator

▪ Sender channel

▪ Transmission queue

❖ We need to alter the trigger property on triggering queue

❖ ALTER QLOCAL (Transmission queue) TRIGGER TRIGTYPE (FIRST) TRIGDPTH (1) TRIGDATA
(CHANNEL NAME) INITQ (SYSTEM.CHANNEL.INITQ)

❖ Once Transmission queue receives message and channel is in inactive state.Then queue
manage is going to send trigger condition to Initiation queue(system.channel.initq).

❖ Once initiation queue(system.channel.initq) receives Trigger condition it enables channel


initiator .channel initiator will starts the sender channels.

❖ B.Applicatin triggering:

❖ *Application triggering starts an application automatically.

❖ They require components are:

❖ Application

❖ Process destination

❖ Local queue

❖ Trig monitor
❖ Service object,

❖ Initiation queue(system.default.initiation.queue)

❖ Once local queues receives message If trigger condition is true queue manager is going
to send trigger condition to Initiation queue(system.default.initiation.queue).

❖ Once initiation queue receives trigger condition its enables trigger moitor.Trigger monior
will starts the application.

• CLIENT AND SERVER

❖ 1)How many ways client can connect to server:

❖ Ans: In three ways client can connect to server

❖ 1)Mq environment

❖ 2)CCDT File

❖ 3)Binding Mode

❖ Mq environnent :

❖ IF one application wants to connect with One queue manager we can MQ


environment Variable.

❖ Required components to configure Client and sever are

❖ Server side sever software

❖ Queue manager

❖ Local or Business queue


❖ SVR CONN channel

❖ Listener

❖ And for client side we required

❖ Client software

❖ And for MQ environmental variable we need to set

❖ Set MQSERVER=TO.CHANNEL/TCP/ipaddress(portno)

❖ CCDT File

❖ If one application wants to connect with Multiple queue managers we can confirgure
with CCDT FILE

❖ CCDT:CLIENT CONNECTION CHANNEL DEFINATATIONS TABLE

❖ CCDT FILE LOCATION :/var/mqm/qmgrs/qmdir/@ipcc

❖ CCDT FILENAME:AMQCLCHL.TAB

❖ In any one queue manger we need to create all CLIENT CONNECTION CHANNELS

❖ After that we need to move CCDT file to CLIENT SERVER

❖ In Client server we need set the

❖ SET MQCHLIB=CCDTFILEPATH

❖ SET MQCHLTAB=CCDTFILENAME

❖ BINDING MODE:

❖ If client and server are installed in same server then this is called as Binding Mode.

❖ Q: How to give permissions to user or application

❖ A: SETMQAUT –m QMGRNAME –t qmgr –p username +connect


➢ SETMQAUT –m QMGRNAME -n QUEUENAME –t q –p username +put +get

❖ Q: How to check the permission for user

❖ A: dspmqaut –m QMGRNAMR –t qmgr –p username

➢ Dspmqaut –m QMGRNAME –n QUEUENAME –t q –p username

❖ Q: How to see authentication all users

❖ A dmpmqaut –m QMGRNAME –t qmgr

➢ Dmpmqaut –m QMGRNAMR –n QUEUENAME –t q

❖ Q:Client not able to connect to queue manager ?

❖ A 1) May be permessions are not there check with dspmqaut and give the permission

➢ 2)CCDT file was not updated properly

➢ 3) May be client was blocked using (set mqchlauth)

❖ 4) Max channels are reached

❖ 5)Command server is down(DSPMQCSV)

❖ Q) MAX ACTIVE CHANNEL REACHED:

➢ If max active channels reached we can find out in logs

▪ restart the server connection channel it will fix.

▪ If same problem is repeating again Increase Max channels in qm.ini file and
restart the queue manager.

❖ Q) Some application names :

▪ Gmax

➢ CPH(Corporate payment hub)

➢ ACH(Accounting centralized hub)

➢ GIML
➢ STP(State through and payment)

➢ AMD(account master Data)

❖ MultiHopping:

❖ Multi hoping sending messages to one QMGR to another QMGR via intermediate
QMGR’S its called has Multihoping.

❖ To configure multihoping on 3 queue managers (A,B AND C)

❖ In ‘C’ QMGR create the components.

• Local queue

• Receiver channel

• Listener

❖ In ‘B’ QMGR create the components.

• Sender channel

• Listener

• Xmitq

• Receiver channel

❖ In ‘A’ QMGR create the components are,

❖ Remote queue

❖ Transmission queue

❖ Sender channel.

❖ Dead Letter Queue


❖ Dead Letter Queue is a special type of local queue. It holds the undelivered messages.
❖ By using dead letter handler. We can process dead letter message to local queue.

❖ Possible Reason messages come to dead letter queue:

❖ Queue full (2053)

❖ Message too big for queue (2030)

❖ Put inhibited (2051)

❖ Not-Authorized (2035)

❖ By using dead letter handler we can process dead letter messages to destination queue

❖ Dead letter handler

❖ Runmqdlq deadletterqueuename QMGRNAME

❖ Wait(No/Yes/Time in Secs)

❖ Reason (MQRC Q Full) Actin(fwd) fwdq(&Destq) fwdqm(&DestQM) Header(No)

❖ BACKOUT QUEUE

❖ Back queue holds error or poisonous messages.

❖ Alter ql(queuename) boqname(boqname) botresh(1)

❖ Once messages landed on backout queue we will take messages backup with rfh utlity
and gives that messages to application team.

❖ Some time we will load messages to desination local queue or some times we will clear
the messages . depends upon application team.

❖ IBM MQ INSTALLATION ON LINUX

❖ *Ensure login user as “root”.(linux team will provide temporary root password while
installation)
❖ *Check pre-requisites like hardware & software requirements.

❖ Find free disk space (df –h)

❖ Find os type & its bit type (Uname –na)

❖ Find os release & version (Cat /etc/redhat–release)

❖ Check the Linux kernel parameters are upto ibm standard or not .(/etc/ sysctl )

❖ kernel.shmmni = 4096
❖ kernel.shmall = 2097152
❖ kernel.shmmax = 268435456
❖ kernel.sem = 500 256000 250 1024
❖ fs.file-max = 524288
❖ kernel.pid-max = 12000
❖ kernel.threads-max = 48000

❖ If per requisites are satisfied now need to bring the mq build to server using
winscp

❖ Unzip IBM MQ software Build


➢ Gunzip <Build name>
❖ Untar IBM MQ software Build
➢ tar –xvf <Build name>
❖ Accept MQ product license
❖ ./mqlicense.sh –accept

❖ Install IBM MQ rpm packages using “rpm” command.

▪ rpm –ivh <package name> <package name> …….

❖ Set current installation as primary


▪ cd /opt/.mqm/bin

▪ ./setmqinst –I –p /opt/mqm

❖ How to Uninstall IBM MQ on Linux


❖ Ensure login user as “root”.

❖ Switch as “mqm” user (su mqm)

❖ Take Queue Managers and authentications Backup


❖ Dmpmqcfg –m QMGRNAME >/Path/Filename.MQSC

❖ Dmpmqcfg -m QMNAME –o setmqaut >/Path/Filename.sh

❖ End the QMGR’S.

❖ Please check if MQ process if running

❖ ps –ef | grep MQ

❖ if any process is running kill the process

❖ Kill -9 PID

❖ Find out list of Rpm’s installed.

▪ rpm –qa | grep MQ

❖ Uninstall the rpm’s.

❖ rpm -ev <package name>

❖ Fix Packs
➢ Please uninstall recently install fix packs.

➢ Take the QMGRS backups.

 Dmpmqcfg –m QMNAME >/Path/Filename.MQSC

 Dmpmqcfg -m QMNAME –o setmqaut >/Path/Filename.sh

▪ End the QMGR’S.

▪ Please check if MQ process if running

• ps –ef | grep MQ

▪ if any process is running kill the process

• Kill -9 PID

▪ Bring the fix pack build.

➢ Unzip IBM MQ software Build


• gunzip <Build name>

▪ Untar IBM MQ software Build

▪ tar –xvf <Build name>

▪ Install the rpm’s

• Rpm –ivh <package name> <package name>

❖ List some rpm names:

❖ MQSERIES RUNTIME

❖ *MQSERIES JAVA

❖ *MQSERIES JRE

❖ *MQSERIES CLIENT

❖ *MQSERIES SERVER

❖ *MQSERIES EXPLORE

❖ LOGS

❖ In MQ there are 2 types of logs

❖ Error logs

❖ Transaction logs

❖ Error logs:

▪ Error logs are of two types

➢ MQ error logs (var/mqm/error)


➢ QMGR error logs (var/mqm/qmgr/qmgrdir/error)

➢ MQ error logs:

❖ MQ error logs contain system related errors.

▪ Ex: MQ version not supported

• Fix pack not supported

• Sever rebooted

• Queue manager ended abnormally

• Semaphores Problem

➢ QMGR error logs:

• QMGR error logs contain QMGR related errors

❖ Ex: Listener down,cannel retrying sequence number mismatched etc..

❖ Transaction logs:

❖ In Transaction logs are of two types.

➢ Primary logs

➢ Secondary logs

❖ Transaction logs path is /var/mqm/log/qmgrdir/active

❖ Logging:

❖ Logging are of two types.

❖ *Circular logging
❖ *Linear logging

❖ Circular logging:

❖ In Circular Logging logs are written in circular passion .

❖ It supports only restart recovery

❖ Linear logging:

❖ In Linear Logging logs are written in Linear Passion. It supports restart recovery and
media recovery.

❖ What is media recovery?

❖ Recreating the damaged objects.

❖ RCRMQOBJ –m QMGR name –t objects type object name

❖ In your environment which type of logging you’re using?

❖ In our environment we are using both logging

❖ Some queue managers are in Linear Logging and some queue managers are in Circular
Logging.

❖ How to compress transaction logs?

❖ Rcdmqimg –m qmgrname –t **

❖ How to check inactive logs?

❖ Display QMstatus all

❖ What is cold restart?


❖ When transaction logs are corrupted or damaged we are performing cold restart.

❖ Steps:

➢ Create new dummy qmgr with old qmgr configuration.

➢ Move dummy transaction logs to original qmgr trasaction logs.

➢ Start the old qmgr.

❖ Cold restart disadvantage:

❖ Messages will be loss either persistence or non-persistence

❖ Cold restart Critical issue:

➢ Check with the application team whether critical messages are then or not.

➢ If Critical Messages are there we need to raise PMR to IBM team.

➢ If there are no critical messages we can perform the cold restart.

❖ FDC File (Failure Data Capture) or FFST (First failure support technology).

❖ FDC files are generated in MQ error logs (var/mqm/error)

❖ How you solve FDC files?

❖ If you open FDC file s there will be Prob ID:********

❖ By using Prob ID solve the FD c files.

❖ What are the required attributes to qmgr?

➢ QMGR Name
➢ Logging type

➢ Primary logs

➢ Secondary logs

➢ Log file size

➢ Dead letter queue

❖ qm.ini File:

❖ qm.ini file is a QMGR configuration file.

❖ Path: /Var/mqm/qmgr/qmgrdir/

❖ Per every Qmgr one qm.ini file is must.

❖ qm.ini file contains below values

➢ QMGR Name

➢ Primary logs

➢ Secondary logs

➢ Logging type

➢ Log path

➢ Max channel

➢ Max active channel

❖ mqs.ini

❖ mqs.ini: MQS.ini file is a system configuration file.Is contains all queue managers
information.
❖ Clustering
❖ How to configuring setup in MQ?

▪ Clustering is a group of connection of queue managers, logically connection to


each other

➢ To configuring the clustering setup the required component are,

➢ Full repository

➢ Partial repository

➢ Clustering channel

➢ Clustering queues

➢ Let as consider QUEUE MANAGERS QMGR1,QMGR2,QMGR3,QMGR4

➢ To Configure the clustering any one QMGRs must be full repository. But IBM
recommends too.

▪ Let us assume QMGR1 is full repository

▪ Alter QMGR repose (cluster name)

➢ And we need to components cluster receive channel(CLUSRCVR). No need to create


the cluster sender channel auto cluster sender channel enables.

➢ In rest all QMGRs we need to create to create clustering receiver


channel(CLUSRCVR), sender channel(CLUSSDR)

➢ In CLUSRCVR channel we need give its own ip address and port number.

➢ In cluster sender channel we need give full repository ipaddress and port number.

❖ How to add a new qmgr to cluster setup


❖ Ans: To add New queue manager to cluster setup we need create compnonets like

❖ Listener,CLUSRCVR,CLUSSDR

❖ In Cluster receiver channel conname property we need to define its own ip address and
own port number

❖ In Cluster Sender channel we need to define FULL REPOSITORY IP address and Port
number.

❖ How to suspend QMGR from cluster?

➢ Suspend QMGR cluster(clustername)

➢ Alter channel(channel name) chltype (chltype) cluster() clusnl()

➢ Alter queue local(queue name) cluster() clusnl()

❖ How to add suspended queue manager back to cluster.

❖ Resume QMGR cluster (clustername).

❖ How to remove a QMGR completely cluster setup?

➢ Suspend QMGR cluster(clustername)

➢ Alter channel(channel name) chltype (chltype) cluster() clusnl()

➢ Alter queue local(queue name) cluster() clusnl()

• Go to the full repository and

▪ Reset cluster (cluster name) QMGR (QMGR Name) action (force name) Queues
(yes/no)

 (Or)

▪ Reset cluster (cluster name) QMGRID (QMGR ID) Action (force remove) Queues
(yes/no)

❖ How to add removed queue manager back to cluster?


❖ Refresh cluster (cluster name) repos (No)

❖ How to list cluster QMGRs?

❖ Display clusQMGR (*)

❖ How to list only full repository QMGRs?

❖ Display clusQMGR (*) where (QMtype EQ Repos)

❖ How to list only partial repository QMGRs?

❖ Display clusQMGR(*) where (QMtype EQ Normal)

❖ Work load balancing OR Work load sharing

❖ To achieve work load balancing or work load sharing we need to alter the properties to
all the queues in cluster

❖ ALTER QL(QUEUE NAME) CLWLUSEQ(ANY) DEFBIND(NOTFIXED)

❖ Rank vs. Priority:

➢ We can define the rank and priority up to 0 to 9.

➢ If highest rank QMGR is down messages will not go to other rank( it might struck in
SYSTEM.CLUSTER.TRANSMIT.QUEUE)

➢ If highest priority QMGR down the messages will go to next priority.

❖ Work load wait:

❖ CLWLWAIT ( )
❖ This property is in CLUSRCVR channel. If we want share messages percentage basics
need to use.

❖ 2189 error situations:

➢ Full repository is down.

➢ Cluster queue is not found.

➢ Partial repository is not updated in full repository.

▪ If every thing is fine then do the following

▪ Refresh the cluster(refresh qmgr cluster(clustername)

▪ Restart the queue manager.

❖ How to connect two cluster networks?

❖ By using Gateway setup

❖ In Gateway queue manager we need to create the objects like

❖ Listener

❖ two cluster sender channels(CLUSSDR) One for cluster1 Full repository and another for
cluster2 full repository

❖ Namelist (define namelist(clusname) names(cluster1,cluster2)

❖ And need to define CLUSRCVR with CLUSNL() property

❖ And need to define alias queue for sharing messages from cluster1 to cluster2

❖ MIGRATION

❖ In MQ Migrationa are od Three types there are

➢ Version to Version
➢ Server to Server

➢ Parallel

❖ Version to Version:

➢ Take the backup of the QMGR’s and authentications.

▪ Command: DMPMQCFG –M QMGR > /PATH/FILE.MQSC

➢ DMPMQCFG –M QMGR –O SETMQAUT >FILE NAME.SH

➢ End the QMGR’s.

➢ Check if any process is runnig is kill the process.

➢ Check the install list of RPM’s.

▪ Rpm –qa | grep MQ

➢ Uninstall the packages.

• rpm –ev <package name>

➢ Bring the new MQ build to the server Unzip and Untar build name.

➢ Accept MQ licence.

➢ Install the RPM’s.

➢ Make it as Primary installation switch as mqm and start QMGR.

❖ Server to Server:

➢ Take the backup of the QMGR’s and Authentications.

• Command: DMPMQCFG –M QMGR > /PATH/FILE.MQSC

▪ DMPMQCFG –M QMGR –O SETMQAUT >FILE NAME.SH

➢ Move the backup files to an New server


➢ Bring New Build to the server

❖ unzip IBM MQ software Build


➢ Gunzip <Build name>
❖ Untar IBM MQ software Build
➢ tar –xvf <Build name>
❖ Accept MQ product license
❖ ./mqlicense.sh –accept

❖ Install IBM MQ rpm packages using “rpm” command.

▪ rpm –ivh <package name> <package name> …….

❖ Set current installation as primary


▪ cd /opt/.mqm/bin

▪ ./setmqinst –I –p /opt/mqm

❖ Create the new queue manager with Old queue manager configuration and run the
below command.

▪ Runmqsc QMGRNAME </path/filename.mqsc

❖ Parallel:(Multiple Installation)
➢ Bring new build to the server

➢ Unzip the build(gunzip build name)

➢ Untar the build(tar –xvf Buildname)

➢ Accept the lisence(./mqlisence accept)

➢ Install IBM Mq in user defined directory(rpm –prefix /pathname –ivh *.rpm)

➢ Move queue manages from Installation1 to installation2(setmqm –m QMGRNAME –n


installation2)

➢ Make installation1 as secondary(./setmqinst –x –p /opt/mqm)

➢ Make installation2 as Primary(./setmqinst –i –p /opt/ibm).


❖ .

You might also like