Message Queuing To Participate in Message-Driven Processing. Application Programs Can Communicate
Message Queuing To Participate in Message-Driven Processing. Application Programs Can Communicate
com/site/activexpert/Home
Ans. MQ stands for MESSAGE QUEUEING. WebSphere MQ allows application programs to use
message queuing to participate in message-driven processing. Application programs can communicate
across different platforms by using the appropriate message queuing software products.
Ans . When messages arrive on a queue, they can automatically start an application using triggering.
If necessary, the applications can be stopped when the message (or messages) have been processed.
Ans. 1. Integration.
2. Asynchrony
3. Assured Delivery
4. Scalability.
Ans. Because the MQ is independent of the Operating System you use i.e. it may be Windows,
Solaris,AIX.It is independent of the protocol (i.e. TCP/IP, LU6.2, SNA, NetBIOS, UDP).It is not required
that both the sender and receiver should be running on the same platform
What is Asynchrony?
Ans. With message queuing, the exchange of messages between the sending and receiving programs
is independent of time. This means that the sending and receiving application programs are
decoupled; the sender can continue processing without having to wait for the receiver to acknowledge
receipt of the message. The target application does not even have to be running when the message is
sent. It can retrieve the message after it is has been started.
What are the hardware and Software requirements for MQ Installation in AIX?
Ans. WebSphere MQ for AIX, V5.3 runs on any machine that supports the AIX V4.3.3 PowerPC®
32.bit, or AIX® V5.1 Power 32 bit only operating system.
1 Server installation: 50 MB
2. Client installation: 15 MB
Software Requirements:
Operating system: The operating systems supported by WebSphere MQ for AIX, V5.3 are:
1. AIX V4.3.3, with PTF U472177, running in a 32 bit environment, on 32 or 64 bit hardware.
2. AIX V5.1, with PTFs U476879, U477366, U477367 and U477368, and APAR fix IY29345 running 32
bit kernel running on 32 or 64 bit hardware.
3. AIX V5.1, with PTF U476879, U477366, U477367 and U477368, and APAR fix IY29345 running 64
bit kernel running on 64 bit hardware.
Connectivity The network protocols supported by WebSphere MQ for AIX, V5.3 are:
1. TCP/IP
2. SNA LU 6.2.
Oracle 8i and 9i
Java: If you want to use the Java Messaging Support, you need the Java Runtime Environment
Version 1.3 or later
What are the software and hardware requirements for installing MQ on Windows?
1 Server installation: 50 MB
2. Client installation: 15 MB
Connectivity The network protocols supported by WebSphere MQ for AIX, V5.3 are:
1. TCP/IP
2. SNA LU 6.2.
3. LU 6.2
4. NetBIOS
Java: If you want to use the Java Messaging Support, you need the Java Runtime Environment
Version 1.3 or later
Ans: A message is a string of bytes that is meaningful to the applications that use it. Messages are
used to transfer information from one application program to another (or between different parts of
the same application). The applications can be running on the same platform, or on different
platforms.
1. The application data. The content and structure of the application data is defined by the
application programs that use it.
2. A message descriptor. The message descriptor identifies the message and contains additional
control information, such as the type of message and the priority assigned to the message by the
sending application. WebSphere MQ defines the format of the message descriptor. For a complete
description of the message descriptor,
Ans: The default maximum message length is 4 MB, although you can increase this to a maximum
length of 100 MB (where 1 MB equals 1 048 576 bytes).
Ans: In Web Sphere MQ, messages can be either persistent or non persistent. Persistent messages
are logged and can be recovered in the event of a WebSphere MQ failure. Thus, persistent messages
are guaranteed to be delivered once and only once. Nonpersistent messages are not logged. Web
Sphere still guarantees to deliver them not more than once, but it does not promise to deliver them
once.
Ans: Persistent messages are usually logged. Logging messages reduces the performance of your
application, so use persistent messages for essential data only. If the data in a message can be
discarded if the queue manager stops or fails, use a nonpersistent message.
WebSphere MQ messages:
Types of messages?
Ex COA/COD
Sizes ?
Ans: MaxMsgLength
What is MQ Client?
Ans: A Web Sphere MQ client is a component that allows an application running on a system to issue
MQI calls to a queue manager running on another system. The output from the call is sent back to the
client, which passes it back to the application.
What is MQ Server?
Ans: A Web Sphere MQ server is a queue manager that provides queuing services to one or more
clients. All the Web Sphere MQ objects, for example queues, exist only on the queue manager
machine (the Web Sphere MQ server machine), and not on the client. A Web Sphere MQ server can
also support local Web Sphere MQ
Applications
Ans: 1414
MQSC Commands - These commands are used to handle the admin related functions for the
components that are present in the MQ Series. In general MQSC commands are used for creating and
maintaining Message channels, Queue Managers, Clusters etc…
Control Commands - These commands are used to manage the processes and services that are helpful
in the functioning of the MQ Series. In general these commands are used for Channel listener, Channel
Initiator, Trigger monitor etc…
Ans: MQSC commands, including their attributes, can be written in uppercase or lowercase. Object
names in MQSC commands are folded to uppercase (that is, QUEUE and queue are not differentiated),
unless the names are enclosed within single quotation marks. If quotation marks are not used, the
object is processed with a name in uppercase.
SCRIPT COMMANDS:-
· PING :-to check whether other side channel / queue manager is ready to accept our
request.
· REFRESH :-used to refresh the security every time after giving or executing, set mgr or
command for queue manager or object
Ans: For commands that have too many parameters to fit on one line, use continuation characters to
indicate that a command is continued on the following line:
1. A minus sign ( ) indicates that the command is to be continued from the start of _ the following
line.
2. A plus sign (+) indicates that the command is to be continued from the first nonblank character on
the following line.
These commands are issued from a programme for local or remote administration done by
programmers.
What are commands used for creating the Queue manager from the Command prompt?
Here -q used to define the Queue manager QM1 as a Default Queue manager
-d is used to define the default transmission Queue -u is used to define the default dead letter queue.
How can U make the existing Queue Manager as an default Queue Manager?
Ans: On Windows systems, use the Web Sphere MQ Services snap-in to display the properties of the
queue manager, and check the Make queue manager the default box. You need to stop and restart the
queue manager for the change to take effect.
Where are the backup files are present after creating the Queue Manager?
Ans: Windows systems: If you use Web Sphere MQ for Windows NT and Windows 2000,
configuration information is stored in the Windows Registry.
UNIX Systems: 1. When you install the product, the Web Sphere MQ configuration file (mqs.ini) is
created. It contains a list of queue managers that is updated each time you create or delete a queue
manager. There is one mqs.ini file per node.
2. When you create a new queue manager, a new queue manager configuration file (qm.ini) is
automatically created. This contains configuration parameters for the queue manager.
The command waits until all applications have stopped and the queue manager has ended.
endmqm –i QMName
This type of shutdown does not wait for applications to disconnect from the queue manager.
What is Queue?
Ans: A queue is a data structure used to store messages. A queue manager owns each queue. The
queue manager is responsible for maintaining the queues it owns, and for storing all the messages it
receives onto the appropriate queues
Ans 5000
Types of Queues?
Queue: A safe place to store messages for Prior-To-Delivery, it belongs to the Qmgr to which the
application is connected.
Model Queue: Model queue is a template of a queue definition that uses when creating a dynamic
queue.
Alias Queue: Queue definition, which is Alias to an actual Local or Remote Q. Used for security and
easy maintenance.
Remote Queue: Object that defines a Queue belongs to another Q Manager (Logical Def).
Initiation Queue: An initiation queue is a local queue to which the queue manager writes a trigger
message when certain conditions are met on another local queue
Dynamic Queue: Such a queue is defined “on the fly” when the application needs it. Dynamic queues
may be retained by the queue manager or automatically deleted when the application program ends.
Use- To store intermediate results.
Cluster Queue: Custer queue is a local queue that is known throughout a cluster of queue managers.
Reply-To-Queue: A request message must contain the name of the queue into which the responding
program must put the Reply Message.
Queue Manager: Provides Messaging services and manages the Queues, Channels, and Processes
that belongs to it.
Alias Q Manager: Queue-manager aliases, are created using a remote-queue definition with a blank
RNAME.
What are the attributes required for the Remote Queue Definition?
Ans: Transmission queues are queues that temporarily store messages that are destined for a remote
queue manager. You must define at least one transmission queue for each remote queue manager to
which the local queue manager is to send messages directly.
Ans: Initiation queues are queues that are used in triggering. A queue manager puts a trigger
message on an initiation queue when a trigger event occurs. A trigger event is a logical combination of
conditions that is detected by a queue manager.
Ans: A dead-letter (undelivered-message) queue is a queue that stores messages that cannot be
routed to their correct destinations. This occurs when, for example, the destination queue is full. The
supplied dead-letter queue is called SYSTEM.DEAD.LETTER.QUEUE. For distributed queuing, define
a dead-letter queue on each queue manager involved.
1. Predefined queues are created by an administrator using the appropriate MQSC or PCF
commands. Predefined queues are permanent; they exist independently of the applications that use
them and survive Web Sphere MQ restarts.
2 Dynamic queues are created when an application issues an MQOPEN request specifying the name
of a model queue. The queue created is based on a template queue definition, which is called a model
queue.
What is the Algorithm followed in retrieving the Messages from the Queue?
2.Message priority, as defined in the message descriptor. Messages that have the same
priority are retrieved on a FIFO basis.
What is Process Definition and what are the attributes does it contain?
Ans: A process definition object defines an application that starts in response to a trigger event on a
WebSphere MQ queue manager. The process definition attributes include the application ID, the
application type, and data specific to the application.
What is Intercommunication?
Ans: In Web Sphere MQ, intercommunication means sending messages from one Queue manager to
another. The receiving queue manager could be on the same machine or another; nearby or on the
other side of the world. It could be running on the same platform as the local queue manager, or
could be on any of the platforms supported by Web Sphere MQ. This is called a distributed
environment.
Channel-exit programs
Web Sphere MQ handles communication in a distributed environment such as this using DQM.The local
queue manager is sometimes called the source queue manager and the remote queue manager is
sometimes called the target queue manager or the partner queue manager.
Ans: Channels are objects that provide a communication path from one queue manager to another.
Channels are used in distributed queuing to move messages from one queue manager to another.
They shield applications from the underlying communications protocols. The queue managers might
exist on the same, or different, platforms. Different types of Channels:
1. Sender-Receiver Channels
2. Requester-Server Channels
5. Cluster Sender.
MQI channels are the channels that carry messages from MQ Client application to the MQ server and
vice versa.They are Bi-directional Channels
1. Server-connection 2. Client-connection
1. Inactive 3.Retrying
2. Running 4.Stopped
Ans: Before running state first the channel will initializes the listener & Binds with the Receiver
Channel then it goes into running mode.
Batch Heartbeat Interval (BATCHHB): This heartbeat interval allows a sending channel to verify that
the receiving channel is still active just before committing a batch of messages. If the receiving
channel is not active, the batch can be backed out rather than becoming in-doubt, Batch interval
(BATCHINT), Batch size (BATCHSZ), Channel type (CHLTYPE), Cluster (CLUSTER), Cluster namelist
(CLUSNL), Connection name (CONNAME), Convert message (CONVERT), Disconnect interval
(DISCINT), Heartbeat interval (HBINT), KeepAlive Interval (KAINT), Long retry count (LONGRTY),
Long retry interval (LONGTMR), Maximum message length (MAXMSGL)
If a message is places in DLQ because of put inhibited or queue full condition, the DLQ handler
attempts to put the message back to the destination queue. This interval is called as RETRYINT by
default the retry interval is 60 seconds.
This is a time-out attribute, specified in seconds, for the server, cluster-sender, and cluster-receiver
channels. The interval is measured from the point at which a batch ends, that is when the batch size is
reached or when the batch interval expires and the transmission queue becomes empty. If no
messages arrive on the transmission queue during the specified time interval, the channel closes down
BATCHSIZE denotes the maximum number of messages that can be sent through a channel before
taking a checkpoint. This parameter is valid only for channels with a channel type (CHLTYPE) of SDR,
SVR, RCVR, RQSTR, CLUSSDR, or CLUSRCVR. The value must be in the range 1 through 9999.
Ans: The batch heartbeat interval allows a sending channel to verify that the receiving channel is still
active just before committing a batch of messages, so that if the receiving channel is not active, the
batch can be backed out rather than becoming in-doubt, as would otherwise be the case. By backing
out the batch, the
messages remain available for processing so they could, for example, be redirected to another
channel.
Ans: Specify the maximum number of times that the channel is to try allocating a session to its
partner. If the initial allocation attempt fails, the short retry count number is decremented and the
channel retries the remaining number of times.
A queue manager to communicate with another queue manager uses message channel. The
components of a message channel are
1. Sender Message channel agent: Sender MCA is a program that transfers messages from a
transmission queue to a communication link
2. Receiver MCA: It transfers messages from the communication link into the target queue
Ans: A message channel agent (MCA) is a program that controls the sending and receiving of
messages. There is one message channel agent at each end of a channel. One MCA takes messages
from the transmission queue and puts them on the communication link. The other MCA receives
messages and delivers them onto a queue on the remote queue manager.
A message channel agent is called a caller MCA if it initiated the communication; otherwise it is called
a responder MCA.
appropriate sender channel. You can also start server channels in this way if you specified the
connection name of the partner in the channel definition. This means that channels can be started
automatically, based upon messages arriving on the appropriate transmission queue.
You need a listener program to start receiving (responder) MCAs. Responder MCAs are started in
response to a startup request from the caller MCA; the channel listener detects incoming network
requests and starts the associated channel.
Channel Errors?
Channel-exit programs are called at defined places in the processing carried out by MCA programs
Security Exit: You can use security exit programs to verify that the partner at the other end of a
channel is genuine
Message Exit: Message Exit can be used for Encryption on the link, message data conversion,
validation of user ID,
Message-retry Exit: Message-retry exit is called when an attempt to open the target queue is
unsuccessful
Sender and receiver Exit: You can use the send and receive exits to perform tasks such as data
compression and decompression
1. Circular: The circular logging is used for restart recovery. It is the default logging method. Circular
is used in Development and Testing Queues. Circular logging keeps all restart Data in a ring of log
files. Logging fills the first file in the ring, then moves on to the and so on, until all the files are full. It
then goes back to the first file in the ring and starts This continues as long as the product is in use,
and has the advantage that you never run out of log files.
2. Linear: Linear logging gives you both restart recovery and media recovery. It is used in Production.
Linear logging keeps the log data in a continuous Sequence of files. Space is not reused, so you can
always retrieve any record logged from the time that the queue manager was created. As disk space is
finite, you might have to think about some form of archiving. It is an administrative task to manage
your disk space for the log, reusing Or extending the existing space as necessary.
What is the Default location where the logs are stored and mention the default sizes?
Ans: Default location:
UNIX: /var/mqm/log
Ans: In Web Sphere MQ for Windows NT and Win 2000, the minimum value is 32, and the maximum
is 16 384. The default value is 256, giving a default log size of 1 MB.
In Web Sphere MQ for UNIX systems, the minimum value is 64, and the maximum is 16 384. The
default value is 1024, giving a default log size of 4 MB.
Ans ; You cannot change the log file size. For this you need to drop and re-create the queue manager.
The number of log files primary & secondary can be changed but you need to restart the Q manager
for the changes to take effect.
what is the number for log primary and secondary file allocated?
Ans: Primary log files: The number of primary log files to be allocated is 3 by default the minimum
is 2 and MAX in Win 253 / Unix 510
Secondary log files: The number of secondary log files to be allocated is 2 by default the minimum
is 1 and MAX in Win 252 / Unix 509
Ans: amqmdain
Ans: If the target queuemanager doesn.t contain the dead letter queue defined and if the messages
are running on a fast channel and of non persistant,Then there is a chance of the message loss.
What is the command that is used to provide authorization for the clients?
What are the common errors u get in DQM? Explain how to resolve ?
Ans: 1.Binding mode: In binding mode, also known as server connection, the communication to the
queue manager utilizes inter-process communications. One of the key factors that should be kept in
mind is that binding mode is available only to programs running on the MQSeries server that hosts the
queue manager. A program using binding mode will not run from an MQSeries client machine. Binding
mode is a fast and efficient way to interact with MQSeries. Certain Facilities, such as XA transaction
co-ordination by queue manager, are available only in binding mode.
2. Client Connection: Client connection uses a TCP/IP connection to the MQSeries Server and
enables communications with the queue manager. Programs using client connections can run on an
MQSeries client machine as well as on an MQSeries server machine. Client connections use client
channels on the queue manager to communicate with the queue manager. The client connection does
not support XA transaction coordination by the queue manager.
Ans: JMS applications use either the point-to-point (PTP) or publish/subscribe style of messaging.
Point-to-Point: Point-to-point messaging involves working with queues of messages. The sender
sends messages to a specific queue to be consumed normally by a single receiver. In point-to-point
communication, a message has at most one recipient. A sending client addresses the message to the
queue that holds the messages for the intended (receiving) client.
Is It Possible to use one transmission Queue for the multiple message channels?
Ans: It is possible to define more than one channel per transmission queue, but only one of these
channels can be active at any one time. This is recommended for the provision of alternative routes
between queue managers for traffic balancing and link failure corrective action. A transmission queue
cannot be used by another channel if the previous channel to use it terminated leaving a batch of
messages in-doubt at the sending end.
What is the command used to test whether the channel is active or not?
What are the administrative commands that are used in Publish and Subscribe?
Ans: The strmqbrk command is used to start a broker. The first time this command is run on a
queue manager, all the relevant MQSeries objects are automatically created.
——–strmqbrk -m MYQMGRNAME
The dspmqbrk command is used to check the status of the broker. Possible states are: starting,
running, stopping, quiescing, not active and ended abnormally.
——–dspmqbrk -m MYQMGRNAME
The endmqbrk command is used to stop a broker. There are two options: -c requests a controlled
shutdown (default), -i requests an immediate shutdown.
——-endmqbrk -i -m MYQMGRNAME
Ans: If there is no direct communication link between the source queue manager and the target
queue manager, it is possible to pass through one or more intermediate queue managers on the way
to the target queue manager. This is known as a multi-hop.
Local Administration: Means carrying out administration tasks on any queue managers you have
defined on your local system.
Remote Administration: This allows you to issue commands from your local system that are
processed on another system. For example, you can issue a remote command to change a queue
definition on a remote queue manager. You do not have to log on to that system, although you do
need to have the appropriate channels defined. The queue manager and command server on the
target system must be running
Control commands on are case sensitive other OS but Windows they can be used any way.
The MQPUT1 call always operates as though MQOO_BIND_NOT_FIXED were in effect, that is, it always
invokes the workload management routine.
If dead letter queue are not defined the Messages are placed on the Transmission Queue and the
Queue Manager become Inactive
These are definitions for queues that are owned by another queue manager
Advantages: The advantage of remote queue definitions is that they enable an application to put a
message to a remote queue without having to specify the name of the remote queue or the remote
queue manager, or the name of the transmission queue. This gives you location independence.
What happens if channel terminates when fast non-persistent messages are in transit?
If a channel terminates while fast, non-persistent messages are in transit, the messages are lost and
it is up to the application to arrange for their recovery if required. If the receiving channel cannot put
the message to its destination queue then it is placed on the dead letter queue, if one has been
defined. If not, the message is discarded.
Message-retry: If the MCA is unable to put a message to the target queue for a reason that could be
transitory (for example, because the queue is full), the MCA has the option to wait and retry the
operation later
Dead-letter queue: If a message cannot be delivered or returned, it is put on to the dead-letter queue
(DLQ). You can use the DLQ handler to process the message
Recovery scenario –Disk Drive Full, damaged Queue manager object, Damaged single object,
Automatic media recovery failure
MQ ensures that messages are not lost by maintaining records (logs) of the activities of the queue
managers that handle the receipt, transmission, and delivery of messages
How to Process Messages from the Dead-letter-Queue?
We can Process the DLQ messages using runmqdlq command for sending messages to the destination
Queues or target Queues. Use the runmqdlq command to start the dead-letter queue (DLQ) handler,
which monitors and handles messages on a dead-letter queue.
The runmqdlq command takes its input from stdin. When the command is processed, the results and a
summary are put into a report that is sent to stdout.
Which field of the MQDLH structure contains a reason code that identifies why the message
is on the DLQ?
Reason field
Completion code gives the status of the current transaction it can be 0, 1, 2. 0- for Successful
completion (MQCC_OK), 1- Warning (MQCC_WARNING), 2- call failed (MQCC_FAILED). Reason code is
that which gives the reason for which the transaction fails it can be MQRC_NONE,
MQRC_BACKED_OUT etc.
This is a byte string that the application can use to relate one message to another, or to relate the
message to other unit of work that the application is performing. The correlation identifier is a
permanent property of the message, and persists across restarts of the queue manager
When a program puts a message on a queue within a unit of work, that message is made visible to
other programs only when the program commits the unit of work.
Commit: To commit a unit of work, all updates must be successful to preserve data integrity. If the
program detects an error and decides that the put operation should not be made permanent, it can
back out the unit of work.
Back Out: When a program performs a back out, WebSphere MQ restores the queue by removing the
messages that were put on the queue by that unit of work. The way in which the program performs
the commit and back out operations depends on the environment in which the program is running
BackoutCount (MQLONG)?
This is a count of the number of times that the message has been previously returned by the MQGET
call as part of a unit of work, and subsequently backed out. BackoutCount is the number of times the
application tried and failed to put the messages in the Queue
A namelist is a WebSphere MQ object that contains a list of other WebSphere MQ objects. Typically,
namelists are used
àBy trigger monitors, where they are used to identify a group of queues.
àNamelists are also used with queue manager clusters to maintain a list of clusters referred to by
more than one WebSphere MQ object.
The name service is an installable service that provides support to the queue manager for looking up
the name of the queue manager that owns a specified queue.
What is Local units of work (uses a single-phase commit process) and Global unit of Work
(uses a two-phase commit process)?
Local unit of work: Units of work that involve only the queue manager are called local units of work.
Syncpoint coordination is provided by the queue manager itself (internal coordination) using a single-
phase commit process.
Use global units of work when you also need to include updates to resources belonging to other
resource managers. Here the coordination can be internal or external to the queue manager uses a
two-phase commit
Depending on the value of the queue manager attribute, SCMDSERV, the command server is either
started automatically when the queue manager starts, or must be started manually.
When we use CCSID attribute of the ALTER QMGR command to change the CCSID of the QM
what are the components that need to be restarted?
Stop and restart the queue manager, stop and restart command server (A command server processes
command messages) and channel programs
A qm.ini file is held in the root of the directory tree occupied by the queue manager. For example, the
path and the name for a configuration file for a queue manager called QMNAME is:
/var/mqm/qmgrs/QMNAME/qm.ini A directory name is generated based on the queue manager name.
This process is known as name transformation.
Contains information relevant to all the queue managers on the node. It is created automatically
during installation (The WebSphere MQ configuration file, mqs.ini, contains information relevant to all
the queue managers on the node. It is created automatically during installation. The mqs.ini file for
WebSphere MQ for UNIX systems is in the /var/mqm directory. It contains: v The names of the queue
managers v The name of the default queue manager The location of the files associated with each of
them)
Automatically using commands that change the configuration of queue managers on the node,
Manually using a standard text editor
Connecting to the queue manager (MQCONN or MQCONNX calls), Opening the object (MQOPEN or
MQPUT1 calls), Putting and getting messages (MQPUT or MQGET calls), Closing the object (MQCLOSE)
What is FFST?
First Failure Support Technology For MQSeries for UNIX systems, FFST information is recorded in a file
in the /var/mqm/errors directory. These errors are normally severe, unrecoverable errors, and
indicate either a configuration problem with the system or an MQSeries internal error. The files are
named AMQnnnnn.mm.FDC, where: nnnnn Is the ID of the process reporting the error mm Is a
sequence number, normally 0 When a process creates an FFST record, it also sends a record to syslog.
The record contains the name of the FFST file to assist in automatic problem tracking
1.Rcdmqimg: Use this command to write an image of an object, or group of objects, to the log for use
in media recovery. This command can only be used when using linear logging.
Use the associated command rcrmqobj to recreate the object from the image.
2.Rcrmqobj: Use this command to recreate an object, or group of objects, from their images
contained in the log. This command can only be used when using linear logging
Use the associated command, rcdmqimg, to record the object images to the log.
Types of recovery:
\errors
Access control à The access control service protects critical resources in a system by limiting access
only to authorized users and their applications.
Confidentiality à The confidentiality service protects sensitive information from unauthorized disclosure
Data integrity à The data integrity service detects whether there has been unauthorized modification
of data. There are two ways in which data might be altered: accidentally, through hardware and
transmission errors, or because of a deliberate attack, Non-repudiation.
1.setmqaut: Command used to change the authorizations to a profile, object or class of objects.
Authorizations can be granted to, or revoked from, any number of principals or groups.
What are the different methods handled by MQ Series for securing a message?
Cryptography is the process of converting between readable text, called plaintext, and an unreadable
form, called cipher text.
The sender converts the plaintext message to cipher text. This part of the process is called encryption
(sometimes encipherment).The cipher text is transmitted to the receiver. The receiver converts the
cipher text message back to its plaintext form. This part of the process is called decryption
(sometimes decipherment).
The conversion involves a sequence of mathematical operations that change the appearance of the
message during transmission but do not affect the content. Cryptographic techniques can ensure
confidentiality and protect messages against unauthorized viewing (eavesdropping), because an
encrypted message is not understandable. Digital signatures, which provide an assurance of message
integrity, use encryption techniques.
Message digest: Is also known as a Message Authentication Code (MAC), because it can provide
assurance that the message has not been modified. The message digest is sent with the message
itself. The receiver can generate a digest for the message and compare it with the sender’s digest. If
the two digests are the same, this verifies the integrity of the message. Any tampering with the
message during transmission almost certainly results in a different message digest.
Digital certificates: Provide protection against impersonation, because a digital certificate binds a
public key to its owner, whether that owner is an individual, a queue manager, or some other entity.
Digital certificates are also known as public key certificates, because they give you assurances about
the ownership of a public key when you use an asymmetric key scheme.
The Secure Sockets Layer (SSL) provides an industry standard protocol for transmitting data in a
secure manner over an insecure network. The SSL protocol is widely deployed in both Internet and
Intranet applications. SSL defines methods for authentication, data encryption, and message integrity
for a reliable transport protocol, usually TCP/IP.
Cipher Suite: Is a suite of cryptographic algorithms used by an SSL connection. A suite comprises
three distinct algorithms. The key exchange and authentication algorithm, used during the SSL
handshake. The encryption algorithm, used to encipher the data.The MAC (Message Authentication
Code) algorithm, used to generate the message digest.
Cipher Spec: Identifies the combination of the encryption algorithm and MAC algorithm. Both ends of
an SSL connection must agree the same CipherSpec to be able to communicate.
What are the steps to be followed in working with SSL on an UNIX environment?
Ensure that the machine name does not contain any spaces. If you insatall in such a machine you
cannot create and Queue managers. Names for userId and group must no longer that 20 characters
What is CCSID?
This defines the character set of character data in the message. If you want to set this character set
to that of the queue manager, you can set this field to the constant MQCCSI_Q_MGR or
MQCCSI_INHERIT. When you get a message from a queue, compare the value of the CodedCharSetId
field with the value that your application is expecting. If the two values differ, you might need to
convert any character data in the message or use a data-conversion message exit if one is available
SYSTEM.DEFAULT.REMOTE.QUEUE SYSTEM.DEFAULT.ALIAS.QUEUE
SYSTEM.DEFAULT.INITIATION.QUEUE SYSTEM.DEAD.LETTER.QUEUE
SYSTEM.ADMIN.ACTIVITY.QUEUE
SYSTEM.ADMIN.COMMAND.QUEUE
SYSTEM.ADMIN.STATISTICS.QUEUE
SYSTEM.ADMIN.TRACE.ROUTE.QUEUE
SYSTEM.DEF.CLUSRCVR SYSTEM.DEF.CLUSSDR
SYSTEM.DEF.RECEIVER SYSTEM.DEF.REQUESTER
SYSTEM.DEF.SENDER SYSTEM.DEF.SERVER
SYSTEM.DEF.SVRCONN
Listeners: SYSTEM.DEFAULT.LISTENER.TCP
SYSTEM.DEFAULT.LISTENER.SPX
SYSTEM.DEFAULT.LISTENER.NETBIOS
SYSTEM.DEFAULT.LISTENER.LU62
SYSTEM.ADMIN.LOGGER.EVENT
SYSTEM.ADMIN.PERFM.EVENT
SYSTEM.ADMIN.QMGR.EVENT
When sending messages: Re mapping the queue-manager name when sending messages, Altering or
specifying the transmission queue when sending messages, Determining the destination when
receiving messages, Using a queue manager as a gateway into the cluster. Gives different application
different levels of access authority to the target Queue Allows different applications to work with the
same queue in different way Simplifies maintenance, migration and workload balance
What are the parameters required to put a message on a queue (or) putting a message on
queue parameters?
Requires a Connection handler (Hconn), a Queue handler (Hobj), a description of the message that
you want to put on the queue (MQMD), Control information, message length, the message data itself
You can remove a message from the queue so that other programs can no longer see the message,
you can copy a message, leaving the original message on the queue. This is known as browsing. You
can remove the message once you have browsed it. In both cases, you use the MQGET call, but first
your application must be connected to the queue manager, and you must use the MQOPEN call to
open the queue
The messages are put in the dead letter queue. If a channel is unable to put a message to the target
queue because that queue is full or put inhibited, the channel can retry the operation a number of
times (specified in the message-retry count attribute) at a given time interval (specified in the
message-retry interval attribute). Alternatively, you can write your own message-retry exit that
determines which circumstances cause a retry, and the number of attempts made. The channel goes
to PAUSED state while waiting for the message-retry interval to finish
What is syncpoints?
Syncpoint coordination is the process by which units of work are either committed or backed out with
data integrity. The decision to commit or back out the changes is taken, in the simplest case, at the
end of a transaction. However, it can be more useful for an application to synchronize data changes at
other logical points within a transaction.
These logical points are called syncpoints (or synchronization points) and the period of processing a
set of updates between two syncpoints is called a unit of work
An in-doubt channel is a channel that is indoubt with the remote channel about which messages has
been sent and received
Scenarios:
*Reason: On an MQCONN or MQCONNX call, the value specified for the QMgrName parameter is not
valid or not known
*Resolution: check for the Queue name in the QManager if not found define it.
*Investigation: Examine the contents of the dead-letter queue. Each message is contained in a
structure that describes why the message was put to the queue, and to where it was originally
addressed. Also look at previous error messages to see if the attempt to put messages to a dead-
letter queue failed.
*Resolution: change the channel size as required, if the channel is a cluster channel then do a
REFRESH cluster so that it will reflect to the other QM’s, then reprocess the message
*Resolution: SSL
*Authentication failure:
A certificate is corrupted
*Reason: A mismatch of name between a sending and receiving channels, Incorrect channel type
specified, A receiver channel might be in stopped state, the connection might not be defined Correctly,
there might be a problem with communication software.
*Resolution: Alter the Queue and REFRESH the cluster to reflect the change in the information stored
in the partial repository
Increase the Queue and Queue manager MaxMsgLength attributes, Use segmented messages
(Messages can be segmented by either the application or the Queue manager), use reference
message.
Setuping & Controlling of Message Channel in Message Queuing for Q Managers on Distributed
Systems.
Version 3.0
Nonpersistent message speed (NPMSPEED) It is used to specify the speed at which nonpersistent
messages are to be sent. It can take on two values either ‘normal’ or ‘fast’. The default is ‘fast’, which
means that nonpersistent messages on a channel are not transferred within transactions. Non
persistent messages are lost if there is a transmission failure or if the channel stops when the
messages are in transit.
What is SSL?
Secure Sockets Layer (SSL) is a protocol designed to allow the transmission of secure data over an
insecure network. SSL makes use of digital certificates to enable authentication of the partner. It also
uses encryption to prevent eavesdropping and hash functions to enable detection of tampering. It can
be used with both MCA channels for queue manager to queue manager communication and MQI
channels for client applications connecting to a queue manager
The key exchange and authentication algorithm, used during the SSL handshake
The MAC (Message Authentication Code) algorithm, used to generate the message digest
What is Triggering?
Ans: Web Sphere MQ enables you to start an application automatically when certain conditions on a
queue are met. For example, you might want to start an application when the number of messages on
a queue reaches a specified number. This facility is called triggering
EVERY: A trigger event occurs every time that a message arrives on the application queue. Use this
type of trigger if you want a serving program to process only one message, then end.
FIRST: A trigger event occurs only when the number of messages on the application queue changes
from zero to one. Use this type of trigger if you want a serving program to start when the first
message arrives on a queue, continue until there are no more messages to process, then end.
DEPTH: A trigger event occurs only when the number of messages on the application queue reaches
the value of the TriggerDepth attribute.
a) In the case of application triggering the components are Application queue: This is the message
queue associated with an application Process: A process definition defines the application to be used
to process messages from the application queue. Initiation queue: The queue manager moitors the
application queue. If the trigger type of the application queue is set to Every then whenever a
message is put to the application queue, the q manager looks into the process definition and puts a
message having the application name and other details to the initiation queue Trigger monitor: The
trigger monitor gets the trigger message from the initiation queue and starts the program specified.
b) For channel triggering the transmission queue is monitored and when messages are put in the
transmission queue, the q manager puts a message in the channel initiation queue. The channel
initiator is the program which monitors the initiation queue and starts the sender MCA. For the
message to reach the target queue, the channel listener has to be running in the target queue
manager
· Trigger ON
· Initiation queue(SYSTEM.CHANNEL.INITQ)
Channel Triggering Background process:
1. The local queue manager places a message from an application or from a message channel agent
(MCA) on the transmission queue.
2. When the triggering conditions are fulfilled, the local queue manager places a trigger message on
the initiation queue.
3. The long-running channel initiator program monitors the initiation queue, and retrieves messages
as they appear.
4. The channel initiator processes the trigger messages according to information contained in them.
This information may include the channel name, in which case the corresponding MCA is started.
5. The channel listener running in the target q mgr starts the receiving MCA
Trigger ON
Trigger type (first every depth)
Initiation queue (SYSTEM.DEFAULT.INITIATION.QUEUE our own defined local queue)
Process (NOTEPAD)
DEFINE QLOCAL (LQ) TRIGGER TRIGTYPE (EVERY) INITQ (IQ) PROCESS (NOTEPAD).
Runmqtrm –m QM1 –q IQ
BACKGROUND PROCESS:-
1. When ever the message comes to triggered local queue, queue manager will fire trigger message
with information called trigger type and the process definition (application which is to be triggered) in
to the initiation queue (IQ) (our own queue).
2. At the initiation queue a long running time program called trigger monitor will be watching
(monitoring) the initiation queue.
3. Whenever the trigger message occurs in the initiation the trigger monitor will pick the information
and starts the application which is defined in the process.
A trigger monitor is a continuously - running program that serves one or more initiation queues. When
a trigger message arrives on an initiation queue, the trigger monitor retrieves the message. The
trigger monitor uses the information in the trigger message. It issues a command to start the
corresponding application/channel
Part-2
To find the transformed file name associated with an MQSeries object, which
command should you use?
Ans DSPMQFLS
When an application opens a model queue, the application also must specify
whether the dynamic queue is temporary or permanent dynamic
Ans: False
Which of the following are valid channel types (message channel agents),
that can send data held in a tranmission queue ? (Two options from the list
are correct.)
Ans: SENDER, SERVER
2.Qmgr Q1 in london and Qmr2 in paris forms a cluster. for adding Qmgr3 in
washington into the cluster how many more channels need to be created in
Qmgr1 and Qmgr2?
4. two channel are defined with same xmitq, when one channel is started
what happens when you try to start the other.
9. MQGET fails and the message is still in the Queue. What command is used
to find the error caused?
13. channels defined btwn qm1 and qm2 are qm1.t.qm2 & qm2.t.qm1. how
to know the link status
9. When a message sending from one channel to another and if the message
needs to be changed in header of the message where do u change it?
10. If a channel is defined with TCP then which field will tell you the TCP
value?
Part-3
*) Will PCF commands cover the same range of functions provided by the
MQSC facility?
*) Which paramater is not required for defining the receiver channel at the
source queue manager
*) Will stopping a queue manager ends the command server associated with
it ?
*) When you have used the CCSID attribute of the ALTER QMGR command
to change the CCSID of the queue manager. What should be done to use
the changed CCSID value ?
*) do you need to be a member of the mqm group to issue MQI calls from
an application program (unless you want to use the fastpath bindings on the
MQCONNX call).
A. TRU
*) The OAM maintains an access control list (ACL) for each resource that it
controls. Authorization data is stored on which local queue?
*) Using runmqsc, which attribute of the queue manager will list the version
of the MQSeries currently being used?
*) When you use the LIKE attribute on a DEFINE command, you are copying
the queue attributes What about messages on that queue?
*) MQSeries provides a sample queue browser that you can use to look at
the contents of the messages on a queue. what two input parameters are
required to use it?
*) When a trigger event occurs, the queue manager puts a trigger message
on the initiation queue specified in the application queue definition. Do
Initiation queues need special settings ?
*) Which attribue of the DEFINE PROCESS command have the name of the
application executable file, specified as a fully qualified file name ?
===============================================
===============================================
==============================
===============================================
===============================================
==============================
D.Inform the QMs in cluster that the QM is leaving the cluster. So, Set the
cluster attribute of that cluster receiver channel object to blank.
F. Issue a refresh cluster command against the QM for the cluster that the
QM is leaving. This ensures that the information about the cluster is cleared
from repository held by the QM
The QM will become the member of the cluster and can share queue objects
within cluster by using cluster (CLUSTER) or cluster namelist (CLUSNL)
attributes. Existing queue objects can be altered and new ones can be
defined. This QM will have the knowledge of the resources hosted within the
cluster without explicit local definition for those resources.
If an attempt to start the channel has failed then the channel will go to retry
state
In unix,
If mq is the place where MQ is installed then log files will be in
Backing up of QM data:
End the queuemanager and take the copies of all the QM data and log file
directories (especially log control file and configuration file) in some other
machine for backup
Circular logging stores the log in a ring manner. When all the files are full it
goes back to first file in the ring and starts again. Hence during recovery,
any freed files prior to checkpoint can be reused. The primary log files might
eligible for reuse after filling the current file.
Linear logging keeps log data in a continuous sequence of files. Space is not
reused, so you can always retrieve any record logged in any log extent that
has not been deleted. During recovery, the freed log files are no longer
accessed and become inactive.
Q10) How to identify, how many logs are required for QM archiving
The size of the log depends, typically, on the number and size of the
persistent messages the queue manager needs to handle. You can change
the number of primary and secondary log files each time the queue manager
starts. You cannot change the log file size; you must determine it before
creating the queue manager.
After deciding whether the queue manager should use circular or linear
logging, you need to estimate the size of the log that the queue manager
needs. The size of the log is determined by the following log configuration
parameters:
LogFilePages
The sizes of each primary and secondary log file in units of 4K pages
LogPrimaryFiles
LogSecondaryFiles
The number of secondary log files that can be created for use when the
primary log files are full
While storing the MQ logs, for easy back-up, checkpoints are used. For
example while logging contents, after 10 transactions get completed a
checkpoint is issued. We can retrieve the stored information from the
checkpoint in case of recovery. A checkpoint is a point in time when the
record described in the log is same as record in queue. Checkpoint itself
consists of series of log records needed to restart QM. for eg: the state of all
transactions active at the time of checkpoint. Checkpoint record represents
the most recent point of consistency between log and data.
Both sender and RCVR MCAs maintain sequence number related to number
of messages successfully transferred over the channel.
If we are sending the messages in batches of 50, if the msg seq no is 50,
then need to commit the UOW else roll back. If all the 50 messages in batch
has successfully send through channels and received by the receiving QM
then the work should be committed.
The archive logs can be on tape or on disk. The archive logs are typically
created as disk GDG data sets.
Two QM's can act as full repos usually. so they should be tightly coupled.
So all the 4 QMs should have rcv channel with their own ip address. All the
QM should have SDR channel with repos QM's ip address so totally 4 SDR
and 4 RCVR should be defined.
Q17) What are Remote events (Not Auth EV, Q Full, Q Srvc Int Ev, Bridge
Started Ev, Unknown xmit Q Ev)
Other examples:
Q19) If dead letter queue is having messages with no reason code how can
you take decision?
I guess there is no scenario without the reason field in MQDLH. The Reason
field of the MQDLH structure contains a reason code that identifies why the
message is on the DLQ. When the queue manager puts a message on this
queue, it adds a header to the message, the format of which is described by
the dead-letter header (MQDLH) structure. This header includes the name of
the target queue and the reason the message was put on the dead-letter
queue
MQDLH contains,
The dead-letter queue header contains details of the destination queue name
and queue manager name.
Q20) How to change the log files type and log file size.
You can change the number of primary and secondary log files each time the
queue manager starts.
You cannot change the log file size or logfile type you must determine it
before creating the queue manager!!!
-lc Use circular logging. This is the default logging method in crtmqm option
MQGET call with open option "browse" is used to browse message sin the
queue.
Q22. QMGR Q1 in london and Qmr2 in paris forms a cluster. For adding
QMGR3 in washington into the cluster how many more channels need to be
created in QMGR1 and QMGR2?
No need of channel creation in QM1 and QM2.Sender channel and RCVR
channel should be set for only QM3
They will be running. But we cluster concepts wont work. You cannot put
message to remote QMGR using the clusters.
Q24. Two channel are defined with same xmitq, when one channel is started
what happens when you try to start the other.
Only one channel will up at a time if they both share a same xmitq. If the
second channel is started the already running first channel will go to "retry"
status
Q25. To find out the status of a remote queue manager what command is
used?
runmqsc -w is for checking remote runmqsc, if it fails then that QMGR may
not be in running status.
Security exit
Q28. MQGET fails and the message is still in the Queue. What command is
used to find the error caused?
In general reason codes will be generated for every API call, to find the
reason failure of that API call. Depending on the reason code, we can check
whether QMGR is running or queue exists. This related to MQ programming
and not to MQ sysadmin
The message will be in intermediate QMGR Q2 if link between QM2 and QM3
breaks
Q31. Channels defined btwn qm1 and qm2 are qm1.t.qm2 & qm2.t.qm1.
How to know the link status
Q33. How do you define when a message on a Queue to be shared on
Qmanagers QM1, QM2 and QM3?
Put the message in a cluster queue if all the 3 managers are in cluster
Messages should be put in unit of work; MQBACK api call will roll back the
message put in queue
Q35. When we try to put a message on a Queue and if it fails, with saying
as Queue is in use. Which command u use to find which application uses this
Queue?
When you give this command, opprocs value will be '1', if single application
is using that queue. So one application is using that queue
Q37. If the channel has to stop after 1 hour how do u define Disconnect
interval?
Q40. When a message sending from one channel to another and if the
message needs to be changed in header of the message where do u change
it?
User cannot change the message header, system will automatically change
it. Message header contains msgid and correlation id generated by system.
Q41. If a channel is defined with TCP then which field will tell you the TCP
value?