MQ Questions
MQ Questions
➢ Ans: DQM stands for distributed queue management. Sending Messages from
➢ Two queue managers one is for source and another is for destination.
➢ LOCAL QUEUE
➢ RCVR CHANNEL
➢ LISTENER
➢ Transmission queue
➢ Remote queue
➢ SDR channel
❖ 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
❖ Alias queue does not hold the messages. It routes the message queues Original base
queue.
❖ 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.
10) Messages struck in local queue. What are the possible reasons?
❖ It is uni-directional channel.
➢ Inactive
➢ Running
➢ Retrying
➢ Paused
➢ Stopped
➢ Binding
o Once channel status is running source and destination QMGR will start
exchanging Msg’s.
o Paused:
o Retriying:
Triggering
14) Did you work on triggering?
➢ Channel triggering
➢ Application triggering
❖ Channel triggering:
• Initiation queue(system.channel.initq)
▪ Channel initiator
▪ Sender channel
▪ Transmission 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).
❖ B.Applicatin triggering:
❖ 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.
❖ 1)Mq environment
❖ 2)CCDT File
❖ 3)Binding Mode
❖ Mq environnent :
❖ Queue manager
❖ Listener
❖ Client software
❖ 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 FILENAME:AMQCLCHL.TAB
❖ In any one queue manger we need to create all CLIENT CONNECTION CHANNELS
❖ SET MQCHLIB=CCDTFILEPATH
❖ SET MQCHLTAB=CCDTFILENAME
❖ BINDING MODE:
❖ If client and server are installed in same server then this is called as Binding Mode.
❖ A 1) May be permessions are not there check with dspmqaut and give the permission
▪ If same problem is repeating again Increase Max channels in qm.ini file and
restart the queue manager.
▪ Gmax
➢ GIML
➢ STP(State through and payment)
❖ MultiHopping:
❖ Multi hoping sending messages to one QMGR to another QMGR via intermediate
QMGR’S its called has Multihoping.
• Local queue
• Receiver channel
• Listener
• Sender channel
• Listener
• Xmitq
• Receiver channel
❖ Remote queue
❖ Transmission queue
❖ Sender channel.
❖ Not-Authorized (2035)
❖ By using dead letter handler we can process dead letter messages to destination queue
❖ Wait(No/Yes/Time in Secs)
❖ BACKOUT QUEUE
❖ 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.
❖ *Ensure login user as “root”.(linux team will provide temporary root password while
installation)
❖ *Check pre-requisites like hardware & software requirements.
❖ 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
▪ ./setmqinst –I –p /opt/mqm
❖ ps –ef | grep MQ
❖ Kill -9 PID
❖ Fix Packs
➢ Please uninstall recently install fix packs.
• ps –ef | grep MQ
• Kill -9 PID
❖ MQSERIES RUNTIME
❖ *MQSERIES JAVA
❖ *MQSERIES JRE
❖ *MQSERIES CLIENT
❖ *MQSERIES SERVER
❖ *MQSERIES EXPLORE
❖ LOGS
❖ Error logs
❖ Transaction logs
❖ Error logs:
➢ MQ error logs:
• Sever rebooted
• Semaphores Problem
❖ Transaction logs:
➢ Primary logs
➢ Secondary logs
❖ Logging:
❖ *Circular logging
❖ *Linear logging
❖ Circular logging:
❖ Linear logging:
❖ In Linear Logging logs are written in Linear Passion. It supports restart recovery and
media recovery.
❖ Some queue managers are in Linear Logging and some queue managers are in Circular
Logging.
❖ Rcdmqimg –m qmgrname –t **
❖ Steps:
➢ Check with the application team whether critical messages are then or not.
❖ FDC File (Failure Data Capture) or FFST (First failure support technology).
➢ QMGR Name
➢ Logging type
➢ Primary logs
➢ Secondary logs
❖ qm.ini File:
❖ Path: /Var/mqm/qmgr/qmgrdir/
➢ QMGR Name
➢ Primary logs
➢ Secondary logs
➢ Logging type
➢ Log path
➢ Max 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?
➢ Full repository
➢ Partial repository
➢ Clustering channel
➢ Clustering queues
➢ To Configure the clustering any one QMGRs must be full repository. But IBM
recommends too.
➢ 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.
❖ 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.
▪ 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)
❖ To achieve work load balancing or work load sharing we need to alter the properties to
all the queues in cluster
➢ If highest rank QMGR is down messages will not go to other rank( it might struck in
SYSTEM.CLUSTER.TRANSMIT.QUEUE)
❖ CLWLWAIT ( )
❖ This property is in CLUSRCVR channel. If we want share messages percentage basics
need to use.
❖ Listener
❖ two cluster sender channels(CLUSSDR) One for cluster1 Full repository and another for
cluster2 full repository
❖ And need to define alias queue for sharing messages from cluster1 to cluster2
❖ MIGRATION
➢ Version to Version
➢ Server to Server
➢ Parallel
❖ Version to Version:
➢ Bring the new MQ build to the server Unzip and Untar build name.
➢ Accept MQ licence.
❖ Server to Server:
▪ ./setmqinst –I –p /opt/mqm
❖ Create the new queue manager with Old queue manager configuration and run the
below command.
❖ Parallel:(Multiple Installation)
➢ Bring new build to the server